diff --git a/im-platform/src/main/java/com/bx/implatform/controller/LoginController.java b/im-platform/src/main/java/com/bx/implatform/controller/LoginController.java index b1bed1f..c37253e 100644 --- a/im-platform/src/main/java/com/bx/implatform/controller/LoginController.java +++ b/im-platform/src/main/java/com/bx/implatform/controller/LoginController.java @@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject; import com.bx.implatform.dto.LoginDTO; import com.bx.implatform.dto.ModifyPwdDTO; import com.bx.implatform.dto.RegisterDTO; +import com.bx.implatform.enums.SettingEnum; import com.bx.implatform.result.Result; import com.bx.implatform.result.ResultUtils; import com.bx.implatform.service.IImSettingService; @@ -98,7 +99,7 @@ public class LoginController { BaiduTranslationUtils translator = baiduTranslationUtils; //如果代理有配置,则使用代理的百度配置 - if(ObjectUtil.isNull(settingService.getByToken())) { + if(!settingService.isUseBaidu()) { if (country == null || country.isEmpty()) { trans = translator.translate(str, "zh"); } else { diff --git a/im-platform/src/main/java/com/bx/implatform/enums/SettingEnum.java b/im-platform/src/main/java/com/bx/implatform/enums/SettingEnum.java new file mode 100644 index 0000000..961c50b --- /dev/null +++ b/im-platform/src/main/java/com/bx/implatform/enums/SettingEnum.java @@ -0,0 +1,8 @@ +package com.bx.implatform.enums; + +public enum SettingEnum { + //翻译配置 + TRANSLATION_SETTING, + //平台设置 + PLATFORM_SETTING, +} diff --git a/im-platform/src/main/java/com/bx/implatform/service/IImSettingService.java b/im-platform/src/main/java/com/bx/implatform/service/IImSettingService.java index 1f98228..9e87e70 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/IImSettingService.java +++ b/im-platform/src/main/java/com/bx/implatform/service/IImSettingService.java @@ -5,5 +5,7 @@ import com.bx.implatform.entity.ImSetting; public interface IImSettingService extends IService { - ImSetting getByToken(); + ImSetting getByTokenAndSettingName(String settingName); + + boolean isUseBaidu(); } diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/ImSettingServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/ImSettingServiceImpl.java index 9da6bb1..3fdbecb 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/impl/ImSettingServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/impl/ImSettingServiceImpl.java @@ -1,10 +1,13 @@ package com.bx.implatform.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bx.implatform.entity.ImSetting; import com.bx.implatform.entity.User; +import com.bx.implatform.entity.setting.domain.TranslationSetting; +import com.bx.implatform.enums.SettingEnum; import com.bx.implatform.mapper.ImSettingMapper; import com.bx.implatform.mapper.UserMapper; import com.bx.implatform.service.IImSettingService; @@ -23,7 +26,7 @@ public class ImSettingServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ImSetting::getUniqueToken, token); - + queryWrapper.eq(ImSetting::getSettingName, settingName); return baseMapper.selectOne(queryWrapper); } + + @Override + public boolean isUseBaidu() { + Long userId = SessionContext.getSession().getUserId(); + if(userId == null){ + return false; + } + + User user = userMapper.selectById(userId); + if(user == null || ObjectUtil.isNull(user)){ + return false; + } + + String token = user.getUniqueToken(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ImSetting::getUniqueToken, token); + queryWrapper.eq(ImSetting::getSettingName, SettingEnum.TRANSLATION_SETTING.name()); + ImSetting setting = baseMapper.selectOne(queryWrapper); + if(setting == null){ + return false; + } + + TranslationSetting baidu = JSONUtil.toBean(setting.getSettingValue(), TranslationSetting.class); + return baidu != null && baidu.getType().equals("1"); + } } diff --git a/im-platform/src/main/java/com/bx/implatform/util/BaiduTranslationUtils.java b/im-platform/src/main/java/com/bx/implatform/util/BaiduTranslationUtils.java index 8e86584..10921c8 100644 --- a/im-platform/src/main/java/com/bx/implatform/util/BaiduTranslationUtils.java +++ b/im-platform/src/main/java/com/bx/implatform/util/BaiduTranslationUtils.java @@ -8,6 +8,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.bx.implatform.entity.ImSetting; import com.bx.implatform.entity.setting.domain.TranslationSetting; +import com.bx.implatform.enums.SettingEnum; import com.bx.implatform.service.IImSettingService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -115,7 +116,7 @@ public class BaiduTranslationUtils { public String translateByAgentConfiguration(String query, String from, String to) { try { - ImSetting setting = settingService.getByToken(); + ImSetting setting = settingService.getByTokenAndSettingName(SettingEnum.TRANSLATION_SETTING.name()); TranslationSetting configuration = JSONUtil.toBean(setting.getSettingValue(), TranslationSetting.class); // 生成随机数 @@ -143,21 +144,21 @@ public class BaiduTranslationUtils { // 检查是否有错误 if (result.containsKey("error_code")) { log.error("百度翻译失败,错误码:{},错误信息:{}", result.getStr("error_code"), result.getStr("error_msg")); - return result.getStr("error_msg") == null ? "system error" : "system error:" + result.getStr("error_msg"); + return result.getStr("error_msg") == null ? "百度翻译失败" : "百度翻译失败:" + result.getStr("error_msg"); } // 获取翻译结果 List transResults = result.getBeanList("trans_result", JSONObject.class); if (transResults == null || transResults.isEmpty()) { log.error("百度翻译结果为空"); - return "result empty"; + return "百度翻译结果为空"; } // 返回第一条翻译结果 return transResults.get(0).getStr("dst"); } catch (Exception e) { log.error("百度翻译异常", e); - return "translation unknown error"; + return "百度翻译异常"; } }