From 08c951ee8cbbb43440066301f5f6f1c2ae0f7d2d Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Sun, 8 Feb 2026 17:09:21 +0800 Subject: [PATCH] =?UTF-8?q?2=E6=9C=888=E6=97=A5=EF=BC=8C=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BA=BA=E7=BF=BB=E8=AF=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashRefundController.java | 124 ++++++++++++++++++++- 1 file changed, 118 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashRefundController.java b/src/main/java/com/example/demo/controller/cash/CashRefundController.java index c7162fc..192f51e 100644 --- a/src/main/java/com/example/demo/controller/cash/CashRefundController.java +++ b/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); - } - catch (Exception e) { + + // 根据执行结果返回多语言消息 + String successMsg = languageTranslationUtil.translate("操作成功", lang); + String failMsg = languageTranslationUtil.translate("操作失败", lang); + String msg = result > 0 ? successMsg : failMsg; + + // 如果操作成功,对返回数据进行字段翻译 + if (result > 0) { + translateCashRecordDoneFields(cashRecordDone, lang); + } + + 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 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); + } + } + } + /** * 将类型数字转换为中文描述 */