Browse Source

2月8日,指定执行人翻译优化

dev
wangguorui 2 weeks ago
parent
commit
08c951ee8c
  1. 122
      src/main/java/com/example/demo/controller/cash/CashRefundController.java

122
src/main/java/com/example/demo/controller/cash/CashRefundController.java

@ -145,7 +145,13 @@ public class CashRefundController {
cashRecordRefund.setStatus(10);
int resultCode = refundService.add(cashRecordRefund, lang);
String successMsg = languageTranslationUtil.translate("提交成功", lang);
return Result.success(successMsg);
// 如果操作成功对返回数据进行字段翻译
if (resultCode > 0) {
translateCashRecordRefundFields(cashRecordRefund, lang);
}
return Result.success(successMsg, cashRecordRefund);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang);
return Result.error(errorMsg);
@ -323,11 +329,30 @@ public class CashRefundController {
@PostMapping("/executor")
public Result executor(@RequestBody CashRecordDone cashRecordDone, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将输入的翻译字段转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedExecutorFieldsToChinese(cashRecordDone, languageCode);
}
// 执行业务逻辑
int result = refundService.executor(cashRecordDone);
String msg = result > 0 ? languageTranslationUtil.translate("操作成功", lang) : languageTranslationUtil.translate("操作失败", lang);
return Result.success(msg);
// 根据执行结果返回多语言消息
String successMsg = languageTranslationUtil.translate("操作成功", lang);
String failMsg = languageTranslationUtil.translate("操作失败", lang);
String msg = result > 0 ? successMsg : failMsg;
// 如果操作成功对返回数据进行字段翻译
if (result > 0) {
translateCashRecordDoneFields(cashRecordDone, lang);
}
catch (Exception e) {
return Result.success(msg, cashRecordDone);
} catch (Exception e) {
// 异常信息翻译
String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang);
return Result.error(errorMsg);
}
@ -350,7 +375,10 @@ public class CashRefundController {
cashRecordRefund.setStatus(20);
int resultCode = refundService.add(cashRecordRefund,lang);
String successMsg = languageTranslationUtil.translate("提交成功", lang);
return Result.success(successMsg);
if (resultCode > 0) {
translateCashRecordRefundFields(cashRecordRefund, lang);
}
return Result.success(successMsg, cashRecordRefund);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang);
return Result.error(errorMsg);
@ -515,6 +543,60 @@ public class CashRefundController {
}
/**
* 翻译 CashRecordDone 对象中的多语言字段
*/
private void translateCashRecordDoneFields(CashRecordDone cashRecordDone, String lang) {
if (cashRecordDone != null) {
// 翻译市场名称
if (cashRecordDone.getMarketName() != null) {
cashRecordDone.setMarketName(languageTranslationUtil.translate(cashRecordDone.getMarketName(), lang));
}
// 翻译退款币种
if (cashRecordDone.getRefundCurrency() != null) {
cashRecordDone.setRefundCurrency(languageTranslationUtil.translate(cashRecordDone.getRefundCurrency(), lang));
}
// 翻译退款途径
if (cashRecordDone.getRefundChannels() != null) {
cashRecordDone.setRefundChannels(languageTranslationUtil.translate(cashRecordDone.getRefundChannels(), lang));
}
}
}
/**
* 翻译 CashRecordRefund 对象中的多语言字段
*/
private void translateCashRecordRefundFields(CashRecordRefund cashRecordRefund, String lang) {
if (cashRecordRefund != null) {
// 翻译退款理由
if (cashRecordRefund.getRefundReason() != null) {
cashRecordRefund.setRefundReason(languageTranslationUtil.translate(cashRecordRefund.getRefundReason(), lang));
}
// 翻译退款备注
if (cashRecordRefund.getRefundRemark() != null) {
cashRecordRefund.setRefundRemark(languageTranslationUtil.translate(cashRecordRefund.getRefundRemark(), lang));
}
// 翻译退款途径
if (cashRecordRefund.getRefundChannels() != null) {
cashRecordRefund.setRefundChannels(languageTranslationUtil.translate(cashRecordRefund.getRefundChannels(), lang));
}
// 翻译退款币种
if (cashRecordRefund.getRefundCurrency() != null) {
cashRecordRefund.setRefundCurrency(languageTranslationUtil.translate(cashRecordRefund.getRefundCurrency(), lang));
}
// 翻译所属地区
if (cashRecordRefund.getMarketName() != null) {
cashRecordRefund.setMarketName(languageTranslationUtil.translate(cashRecordRefund.getMarketName(), lang));
}
}
}
/**
* 转换现金记录DTO的多语言字段
*/
private void translateCashRecordDTOs(com.github.pagehelper.PageInfo<CashRecordDTO> pageInfo, String lang) {
@ -553,6 +635,10 @@ public class CashRefundController {
if (dto.getRefundCurrency() != null) {
dto.setRefundCurrency(languageTranslationUtil.translate(dto.getRefundCurrency(), lang));
}
// 翻译退款途径
if (dto.getRefundChannels() != null) {
dto.setRefundChannels(languageTranslationUtil.translate(dto.getRefundChannels(), lang));
}
}
}
}
@ -752,6 +838,32 @@ public class CashRefundController {
}
}
}
private void convertTranslatedExecutorFieldsToChinese(CashRecordDone cashRecordDone, String languageCode) {
if (cashRecordDone != null) {
// 转换退款币种
if (cashRecordDone.getRefundCurrency() != null && !cashRecordDone.getRefundCurrency().isEmpty()) {
String chineseCurrency = translationService.findChineseSimplifiedByTranslation(
cashRecordDone.getRefundCurrency(), languageCode);
cashRecordDone.setRefundCurrency(chineseCurrency);
}
// 转换退款途径
if (cashRecordDone.getRefundChannels() != null && !cashRecordDone.getRefundChannels().isEmpty()) {
String chineseChannels = translationService.findChineseSimplifiedByTranslation(
cashRecordDone.getRefundChannels(), languageCode);
cashRecordDone.setRefundChannels(chineseChannels);
}
// 转换所属地区
if (cashRecordDone.getMarketName() != null && !cashRecordDone.getMarketName().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
cashRecordDone.getMarketName(), languageCode);
cashRecordDone.setMarketName(chineseMarket);
}
}
}
/**
* 将类型数字转换为中文描述
*/

Loading…
Cancel
Save