From bda83ba12bea509b0eab343d1c117572ea64cf49 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Thu, 12 Mar 2026 16:10:43 +0800 Subject: [PATCH] =?UTF-8?q?20260312=20=E9=80=80=E6=AC=BE=E4=BC=98=E5=8C=96?= =?UTF-8?q?Pro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashRefundController.java | 84 +++++++------- .../serviceImpl/cash/CashRefundServiceImpl.java | 122 +++++++++++++-------- .../serviceImpl/coin/TranslationServiceImpl.java | 7 +- 3 files changed, 125 insertions(+), 88 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 8721d87..587a432 100644 --- a/src/main/java/com/example/demo/controller/cash/CashRefundController.java +++ b/src/main/java/com/example/demo/controller/cash/CashRefundController.java @@ -373,18 +373,18 @@ public class CashRefundController { } cashRecordRefund.setStatus(20); - int resultCode = refundService.add(cashRecordRefund,lang); + refundService.add(cashRecordRefund, lang); String successMsg = languageTranslationUtil.translate("提交成功", lang); - if (resultCode > 0) { - translateCashRecordRefundFields(cashRecordRefund, lang); - } + translateCashRecordRefundFields(cashRecordRefund, lang); return Result.success(successMsg, cashRecordRefund); } catch (Exception e) { + log.error("addOnline error", e); String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang); return Result.error(errorMsg); } } + @PostMapping("/export") public Result export(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { try { @@ -759,48 +759,50 @@ public class CashRefundController { * 将退款记录查询条件中的翻译字段转换为中文简体 */ private void convertTranslatedRefundFieldsToChinese(CashRecordRefund cashRecordRefund, String languageCode) { - if (cashRecordRefund != null) { - // 转换退款理由 - if (cashRecordRefund.getRefundReason() != null && !cashRecordRefund.getRefundReason().isEmpty()) { - String chineseReason = translationService.findChineseSimplifiedByTranslation( - cashRecordRefund.getRefundReason(), languageCode); - cashRecordRefund.setRefundReason(chineseReason); - } + if (cashRecordRefund == null) { + return; + } - // 转换退款备注 - if (cashRecordRefund.getRefundRemark() != null && !cashRecordRefund.getRefundRemark().isEmpty()) { - String chineseRemark = translationService.findChineseSimplifiedByTranslation( - cashRecordRefund.getRefundRemark(), languageCode); - cashRecordRefund.setRefundRemark(chineseRemark); - } + // 转换退款理由 + if (cashRecordRefund.getRefundReason() != null && !cashRecordRefund.getRefundReason().trim().isEmpty()) { + String chineseReason = translationService.findChineseSimplifiedByTranslation( + cashRecordRefund.getRefundReason(), languageCode); + cashRecordRefund.setRefundReason(chineseReason); + } - // 转换退款途径 - if (cashRecordRefund.getRefundChannels() != null && !cashRecordRefund.getRefundChannels().isEmpty()) { - String chineseChannels = translationService.findChineseSimplifiedByTranslation( - cashRecordRefund.getRefundChannels(), languageCode); - cashRecordRefund.setRefundChannels(chineseChannels); - } + // 转换退款备注 + if (cashRecordRefund.getRefundRemark() != null && !cashRecordRefund.getRefundRemark().trim().isEmpty()) { + String chineseRemark = translationService.findChineseSimplifiedByTranslation( + cashRecordRefund.getRefundRemark(), languageCode); + cashRecordRefund.setRefundRemark(chineseRemark); + } - // 转换退款币种 - if (cashRecordRefund.getRefundCurrency() != null && !cashRecordRefund.getRefundCurrency().isEmpty()) { - String chineseCurrency = translationService.findChineseSimplifiedByTranslation( - cashRecordRefund.getRefundCurrency(), languageCode); - cashRecordRefund.setRefundCurrency(chineseCurrency); - } + // 转换退款途径 + if (cashRecordRefund.getRefundChannels() != null && !cashRecordRefund.getRefundChannels().trim().isEmpty()) { + String chineseChannels = translationService.findChineseSimplifiedByTranslation( + cashRecordRefund.getRefundChannels(), languageCode); + cashRecordRefund.setRefundChannels(chineseChannels); + } - // 转换所属地区 - if (cashRecordRefund.getMarketName() != null && !cashRecordRefund.getMarketName().isEmpty()) { - String chineseMarket = translationService.findChineseSimplifiedByTranslation( - cashRecordRefund.getMarketName(), languageCode); - cashRecordRefund.setMarketName(chineseMarket); - } + // 转换退款币种 + if (cashRecordRefund.getRefundCurrency() != null && !cashRecordRefund.getRefundCurrency().trim().isEmpty()) { + String chineseCurrency = translationService.findChineseSimplifiedByTranslation( + cashRecordRefund.getRefundCurrency(), languageCode); + cashRecordRefund.setRefundCurrency(chineseCurrency); + } - // 转换提交人地区 - if (cashRecordRefund.getSubmitterMarket() != null && !cashRecordRefund.getSubmitterMarket().isEmpty()) { - String chineseMarket = translationService.findChineseSimplifiedByTranslation( - cashRecordRefund.getSubmitterMarket(), languageCode); - cashRecordRefund.setSubmitterMarket(chineseMarket); - } + // 转换所属地区 + if (cashRecordRefund.getMarketName() != null && !cashRecordRefund.getMarketName().trim().isEmpty()) { + String chineseMarket = translationService.findChineseSimplifiedByTranslation( + cashRecordRefund.getMarketName(), languageCode); + cashRecordRefund.setMarketName(chineseMarket); + } + + // 转换提交人地区 + if (cashRecordRefund.getSubmitterMarket() != null && !cashRecordRefund.getSubmitterMarket().trim().isEmpty()) { + String chineseMarket = translationService.findChineseSimplifiedByTranslation( + cashRecordRefund.getSubmitterMarket(), languageCode); + cashRecordRefund.setSubmitterMarket(chineseMarket); } } diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java index 1b8a28b..8d10d83 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -21,6 +21,7 @@ import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.OperationLogMapper; import com.example.demo.mapper.coin.RefundMapper; import com.example.demo.service.cash.RefundService; +import com.example.demo.service.coin.TranslationService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -67,6 +68,8 @@ public class CashRefundServiceImpl implements RefundService { private CashCollectionMapper cashCollectionMapper; @Autowired private LanguageTranslationUtil languageTranslationUtil; + @Autowired + private TranslationService translationService; @Override public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { @@ -176,54 +179,81 @@ public class CashRefundServiceImpl implements RefundService { @Override public int add(CashRecordRefund cashRecordRefund, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { - if (cashRecordRefund.getJwcode() == null) { - throw new Exception("未输入精网号"); - } - if (cashRecordRefund.getRefundModel() == null) { - throw new Exception("请填充退款类型"); - } - if (cashRecordRefund.getRefundReason() == null) { - throw new Exception("请填写退款理由"); - } - if (cashRecordRefund.getHandlingCharge() == null) { - throw new Exception("请先填写手续费"); - } - CashRecordDone cashRecordDonetwo = new CashRecordDone(); - cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); - cashRefundMapper.addAudit(cashRecordDonetwo); - cashRecordRefund.setAuditId(cashRecordDonetwo.getId()); + try { + if (cashRecordRefund.getJwcode() == null) { + throw new Exception("未输入精网号"); + } + if (cashRecordRefund.getRefundModel() == null) { + throw new Exception("请填充退款类型"); + } + if (cashRecordRefund.getRefundReason() == null) { + throw new Exception("请填写退款理由"); + } + if (cashRecordRefund.getHandlingCharge() == null) { + throw new Exception("请先填写手续费"); + } + if (cashRecordRefund.getMarket() == null || cashRecordRefund.getMarket().trim().isEmpty()) { + throw new Exception("请选择所属地区"); + } - cashRecordRefund.setStatus(10); - //生成订单号后半部分 - String orderNumber = cashRecordRefund.getOrderCode(); - //构建订单信息 - cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号 - cashRecordRefund.setMarket(String.valueOf(Integer.valueOf(marketMapper.getMarketId(cashRecordRefund.getMarket())))); - cashRefundMapper.insert(cashRecordRefund); - CashRecordDone cashRecordDone1 = new CashRecordDone(); - cashRecordDone1.setId(cashRecordRefund.getOriginalOrderId()); - cashRecordDone1.setStatus(6); - if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) - cashRefundMapper.updateStatus(cashRecordDone1); - else return Result.error("提交失败").getCode(); - - // 发送退款创建消息 - Messages message = new Messages(); - message.setJwcode(cashRecordRefund.getJwcode()); - message.setName(cashRecordRefund.getName()); - message.setStatus(cashRecordRefund.getStatus()); - message.setDesc("的客服退款申请待审核,前往处理"); - message.setTitle("现金退款--新增退款"); - message.setType(0); - message.setTypeId(cashRecordRefund.getId()); - message.setMarket(Integer.valueOf(cashRecordRefund.getMarket())); - String marketName = marketMapper.getMarketNameById(String.valueOf(message.getMarket())); - message.setMarketName(marketName); - message.setQueryId(103); - rabbitTemplate.convertAndSend(RabbitMQConfig.CASH_REFUND_EXCHANGE, "cash.refund.save", message); - - return Result.success("提交成功").getCode(); + CashRecordDone cashRecordDonetwo = new CashRecordDone(); + cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); + cashRefundMapper.addAudit(cashRecordDonetwo); + cashRecordRefund.setAuditId(cashRecordDonetwo.getId()); + + cashRecordRefund.setStatus(10); + //生成订单号后半部分 + String orderNumber = cashRecordRefund.getOrderCode(); + //构建订单信息 + cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号 + + // 查询市场 ID,增加空值检查和多语言支持 + String marketName = cashRecordRefund.getMarket(); + String marketId = marketMapper.getMarketId(marketName); + + // 如果直接查询失败,尝试将英文名称转换为中文后再次查询 + if (marketId == null || marketId.trim().isEmpty()) { + String chineseMarketName = translationService.findChineseSimplifiedByTranslation(marketName, "en"); + if (chineseMarketName != null && !chineseMarketName.equals(marketName)) { + marketId = marketMapper.getMarketId(chineseMarketName); + } + } + if (marketId == null || marketId.trim().isEmpty()) { + throw new Exception("无效的所属地区:" + cashRecordRefund.getMarket()); + } + cashRecordRefund.setMarket(String.valueOf(Integer.valueOf(marketId))); + + cashRefundMapper.insert(cashRecordRefund); + CashRecordDone cashRecordDone1 = new CashRecordDone(); + cashRecordDone1.setId(cashRecordRefund.getOriginalOrderId()); + cashRecordDone1.setStatus(6); + if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) { + cashRefundMapper.updateStatus(cashRecordDone1); + } else { + return Result.error("提交失败").getCode(); + } + + // 发送退款创建消息 + Messages message = new Messages(); + message.setJwcode(cashRecordRefund.getJwcode()); + message.setName(cashRecordRefund.getName()); + message.setStatus(cashRecordRefund.getStatus()); + message.setDesc("的客服退款申请待审核,前往处理"); + message.setTitle("现金退款--新增退款"); + message.setType(0); + message.setTypeId(cashRecordRefund.getId()); + message.setMarket(Integer.valueOf(cashRecordRefund.getMarket())); + String marketName2 = marketMapper.getMarketNameById(String.valueOf(message.getMarket())); + message.setMarketName(marketName2); + message.setQueryId(103); + rabbitTemplate.convertAndSend(RabbitMQConfig.CASH_REFUND_EXCHANGE, "cash.refund.save", message); + + return Result.success("提交成功").getCode(); + } catch (Exception e) { + log.error("add error", e); + throw e; + } } @Override diff --git a/src/main/java/com/example/demo/serviceImpl/coin/TranslationServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/TranslationServiceImpl.java index 325f5da..d7975ed 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/TranslationServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/TranslationServiceImpl.java @@ -98,7 +98,12 @@ public class TranslationServiceImpl implements TranslationService { @Override public String findChineseSimplifiedByTranslation(String translatedText, String language) { // 处理空值情况 - if (translatedText == null || translatedText.isEmpty()) { + if (translatedText == null) { + return null; + } + + // 处理空字符串 + if (translatedText.trim().isEmpty()) { return translatedText; }