Browse Source

翻译配置完善

master
La123123 3 weeks ago
parent
commit
368742af60
  1. 3
      im-platform/src/main/java/com/bx/implatform/controller/LoginController.java
  2. 8
      im-platform/src/main/java/com/bx/implatform/enums/SettingEnum.java
  3. 4
      im-platform/src/main/java/com/bx/implatform/service/IImSettingService.java
  4. 32
      im-platform/src/main/java/com/bx/implatform/service/impl/ImSettingServiceImpl.java
  5. 9
      im-platform/src/main/java/com/bx/implatform/util/BaiduTranslationUtils.java

3
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 {

8
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,
}

4
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> {
ImSetting getByToken();
ImSetting getByTokenAndSettingName(String settingName);
boolean isUseBaidu();
}

32
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<ImSettingMapper, ImSetting
private final UserMapper userMapper;
@Override
public ImSetting getByToken() {
public ImSetting getByTokenAndSettingName(String settingName) {
Long userId = SessionContext.getSession().getUserId();
if(userId == null){
return null;
@ -39,7 +42,32 @@ public class ImSettingServiceImpl extends ServiceImpl<ImSettingMapper, ImSetting
LambdaQueryWrapper<ImSetting> 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<ImSetting> 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");
}
}

9
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<JSONObject> 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 "百度翻译异常";
}
}

Loading…
Cancel
Save