Browse Source

20260312 退款优化Pro

milestone-20260224-现金钱包
wangguorui 4 weeks ago
parent
commit
06eaff7364
  1. 23
      src/main/java/com/example/demo/controller/cash/CashRefundController.java
  2. 84
      src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java
  3. 7
      src/main/java/com/example/demo/serviceImpl/coin/TranslationServiceImpl.java

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

@ -373,13 +373,12 @@ public class CashRefundController {
} }
cashRecordRefund.setStatus(20); cashRecordRefund.setStatus(20);
int resultCode = refundService.add(cashRecordRefund,lang);
refundService.add(cashRecordRefund, lang);
String successMsg = languageTranslationUtil.translate("提交成功", lang); String successMsg = languageTranslationUtil.translate("提交成功", lang);
if (resultCode > 0) {
translateCashRecordRefundFields(cashRecordRefund, lang); translateCashRecordRefundFields(cashRecordRefund, lang);
}
return Result.success(successMsg, cashRecordRefund); return Result.success(successMsg, cashRecordRefund);
} catch (Exception e) { } catch (Exception e) {
log.error("addOnline error", e);
String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang); String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang);
return Result.error(errorMsg); return Result.error(errorMsg);
} }
@ -759,50 +758,52 @@ public class CashRefundController {
* 将退款记录查询条件中的翻译字段转换为中文简体 * 将退款记录查询条件中的翻译字段转换为中文简体
*/ */
private void convertTranslatedRefundFieldsToChinese(CashRecordRefund cashRecordRefund, String languageCode) { private void convertTranslatedRefundFieldsToChinese(CashRecordRefund cashRecordRefund, String languageCode) {
if (cashRecordRefund != null) {
if (cashRecordRefund == null) {
return;
}
// 转换退款理由 // 转换退款理由
if (cashRecordRefund.getRefundReason() != null && !cashRecordRefund.getRefundReason().isEmpty()) {
if (cashRecordRefund.getRefundReason() != null && !cashRecordRefund.getRefundReason().trim().isEmpty()) {
String chineseReason = translationService.findChineseSimplifiedByTranslation( String chineseReason = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getRefundReason(), languageCode); cashRecordRefund.getRefundReason(), languageCode);
cashRecordRefund.setRefundReason(chineseReason); cashRecordRefund.setRefundReason(chineseReason);
} }
// 转换退款备注 // 转换退款备注
if (cashRecordRefund.getRefundRemark() != null && !cashRecordRefund.getRefundRemark().isEmpty()) {
if (cashRecordRefund.getRefundRemark() != null && !cashRecordRefund.getRefundRemark().trim().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation( String chineseRemark = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getRefundRemark(), languageCode); cashRecordRefund.getRefundRemark(), languageCode);
cashRecordRefund.setRefundRemark(chineseRemark); cashRecordRefund.setRefundRemark(chineseRemark);
} }
// 转换退款途径 // 转换退款途径
if (cashRecordRefund.getRefundChannels() != null && !cashRecordRefund.getRefundChannels().isEmpty()) {
if (cashRecordRefund.getRefundChannels() != null && !cashRecordRefund.getRefundChannels().trim().isEmpty()) {
String chineseChannels = translationService.findChineseSimplifiedByTranslation( String chineseChannels = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getRefundChannels(), languageCode); cashRecordRefund.getRefundChannels(), languageCode);
cashRecordRefund.setRefundChannels(chineseChannels); cashRecordRefund.setRefundChannels(chineseChannels);
} }
// 转换退款币种 // 转换退款币种
if (cashRecordRefund.getRefundCurrency() != null && !cashRecordRefund.getRefundCurrency().isEmpty()) {
if (cashRecordRefund.getRefundCurrency() != null && !cashRecordRefund.getRefundCurrency().trim().isEmpty()) {
String chineseCurrency = translationService.findChineseSimplifiedByTranslation( String chineseCurrency = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getRefundCurrency(), languageCode); cashRecordRefund.getRefundCurrency(), languageCode);
cashRecordRefund.setRefundCurrency(chineseCurrency); cashRecordRefund.setRefundCurrency(chineseCurrency);
} }
// 转换所属地区 // 转换所属地区
if (cashRecordRefund.getMarketName() != null && !cashRecordRefund.getMarketName().isEmpty()) {
if (cashRecordRefund.getMarketName() != null && !cashRecordRefund.getMarketName().trim().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation( String chineseMarket = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getMarketName(), languageCode); cashRecordRefund.getMarketName(), languageCode);
cashRecordRefund.setMarketName(chineseMarket); cashRecordRefund.setMarketName(chineseMarket);
} }
// 转换提交人地区 // 转换提交人地区
if (cashRecordRefund.getSubmitterMarket() != null && !cashRecordRefund.getSubmitterMarket().isEmpty()) {
if (cashRecordRefund.getSubmitterMarket() != null && !cashRecordRefund.getSubmitterMarket().trim().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation( String chineseMarket = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getSubmitterMarket(), languageCode); cashRecordRefund.getSubmitterMarket(), languageCode);
cashRecordRefund.setSubmitterMarket(chineseMarket); cashRecordRefund.setSubmitterMarket(chineseMarket);
} }
} }
}
/** /**
* 将资金查询条件中的翻译字段转换为中文简体 * 将资金查询条件中的翻译字段转换为中文简体

84
src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java

@ -19,12 +19,14 @@ import com.example.demo.mapper.coin.OperationLogMapper;
import com.example.demo.mapper.coin.RefundMapper; import com.example.demo.mapper.coin.RefundMapper;
import com.example.demo.service.Wallet.WalletService; import com.example.demo.service.Wallet.WalletService;
import com.example.demo.service.cash.RefundService; import com.example.demo.service.cash.RefundService;
import com.example.demo.service.coin.TranslationService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
import com.example.demo.domain.DTO.Currency; import com.example.demo.domain.DTO.Currency;
@ -67,6 +69,8 @@ public class CashRefundServiceImpl implements RefundService {
private LanguageTranslationUtil languageTranslationUtil; private LanguageTranslationUtil languageTranslationUtil;
@Autowired @Autowired
private WalletService walletService; private WalletService walletService;
@Autowired
private TranslationService translationService;
@Override @Override
public PageInfo<CashRecordDTO> select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { public PageInfo<CashRecordDTO> select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) {
@ -176,6 +180,7 @@ public class CashRefundServiceImpl implements RefundService {
@Override @Override
public int add(CashRecordRefund cashRecordRefund, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { public int add(CashRecordRefund cashRecordRefund, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
try {
if (cashRecordRefund.getJwcode() == null) { if (cashRecordRefund.getJwcode() == null) {
throw new Exception("未输入精网号"); throw new Exception("未输入精网号");
} }
@ -188,6 +193,10 @@ public class CashRefundServiceImpl implements RefundService {
if (cashRecordRefund.getHandlingCharge() == null) { if (cashRecordRefund.getHandlingCharge() == null) {
throw new Exception("请先填写手续费"); throw new Exception("请先填写手续费");
} }
if (cashRecordRefund.getMarket() == null || cashRecordRefund.getMarket().trim().isEmpty()) {
throw new Exception("请选择所属地区");
}
CashRecordDone cashRecordDonetwo = new CashRecordDone(); CashRecordDone cashRecordDonetwo = new CashRecordDone();
cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise());
cashRefundMapper.addAudit(cashRecordDonetwo); cashRefundMapper.addAudit(cashRecordDonetwo);
@ -198,14 +207,33 @@ public class CashRefundServiceImpl implements RefundService {
String orderNumber = cashRecordRefund.getOrderCode(); String orderNumber = cashRecordRefund.getOrderCode();
//构建订单信息 //构建订单信息
cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号 cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号
cashRecordRefund.setMarket(String.valueOf(Integer.valueOf(marketMapper.getMarketId(cashRecordRefund.getMarket()))));
// 查询市场 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); cashRefundMapper.insert(cashRecordRefund);
CashRecordDone cashRecordDone1 = new CashRecordDone(); CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setId(cashRecordRefund.getOriginalOrderId()); cashRecordDone1.setId(cashRecordRefund.getOriginalOrderId());
cashRecordDone1.setStatus(6); cashRecordDone1.setStatus(6);
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null)
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) {
cashRefundMapper.updateStatus(cashRecordDone1); cashRefundMapper.updateStatus(cashRecordDone1);
else return Result.error("提交失败").getCode();
} else {
return Result.error("提交失败").getCode();
}
// 发送退款创建消息 // 发送退款创建消息
Messages message = new Messages(); Messages message = new Messages();
@ -217,13 +245,16 @@ public class CashRefundServiceImpl implements RefundService {
message.setType(0); message.setType(0);
message.setTypeId(cashRecordRefund.getId()); message.setTypeId(cashRecordRefund.getId());
message.setMarket(Integer.valueOf(cashRecordRefund.getMarket())); message.setMarket(Integer.valueOf(cashRecordRefund.getMarket()));
String marketName = marketMapper.getMarketNameById(String.valueOf(message.getMarket()));
message.setMarketName(marketName);
String marketName2 = marketMapper.getMarketNameById(String.valueOf(message.getMarket()));
message.setMarketName(marketName2);
message.setQueryId(103); message.setQueryId(103);
rabbitTemplate.convertAndSend(RabbitMQConfig.CASH_REFUND_EXCHANGE, "cash.refund.save", message); rabbitTemplate.convertAndSend(RabbitMQConfig.CASH_REFUND_EXCHANGE, "cash.refund.save", message);
return Result.success("提交成功").getCode(); return Result.success("提交成功").getCode();
} catch (Exception e) {
log.error("add error", e);
throw e;
}
} }
@Override @Override
@ -673,7 +704,9 @@ public class CashRefundServiceImpl implements RefundService {
} }
@Override @Override
@Transactional
public void addOnline(CashRecordRefund cashRecordRefund) { public void addOnline(CashRecordRefund cashRecordRefund) {
try {
if (cashRecordRefund.getJwcode() == null) { if (cashRecordRefund.getJwcode() == null) {
throw new BusinessException("未输入精网号"); throw new BusinessException("未输入精网号");
} }
@ -683,6 +716,10 @@ public class CashRefundServiceImpl implements RefundService {
if (cashRecordRefund.getRefundReason() == null) { if (cashRecordRefund.getRefundReason() == null) {
throw new BusinessException("请填写退款理由"); throw new BusinessException("请填写退款理由");
} }
if (cashRecordRefund.getMarket() == null || cashRecordRefund.getMarket().trim().isEmpty()) {
throw new BusinessException("请选择所属地区");
}
CashRecordDone cashRecordDonetwo = new CashRecordDone(); CashRecordDone cashRecordDonetwo = new CashRecordDone();
cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise());
cashRefundMapper.addAudit(cashRecordDonetwo); cashRefundMapper.addAudit(cashRecordDonetwo);
@ -693,14 +730,41 @@ public class CashRefundServiceImpl implements RefundService {
String orderNumber = cashRecordRefund.getOrderCode(); String orderNumber = cashRecordRefund.getOrderCode();
//构建订单信息 //构建订单信息
cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号 cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号
cashRecordRefund.setMarket(String.valueOf(Integer.valueOf(marketMapper.getMarketId(cashRecordRefund.getMarket()))));
// 查询市场 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 BusinessException("无效的所属地区:" + cashRecordRefund.getMarket());
}
cashRecordRefund.setMarket(String.valueOf(Integer.valueOf(marketId)));
cashRefundMapper.insert(cashRecordRefund); cashRefundMapper.insert(cashRecordRefund);
CashRecordDone cashRecordDone1 = new CashRecordDone(); CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setId(cashRecordRefund.getId());
cashRecordDone1.setId(cashRecordRefund.getOriginalOrderId());
cashRecordDone1.setStatus(6); cashRecordDone1.setStatus(6);
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null)
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) {
cashRefundMapper.updateStatus(cashRecordDone1); cashRefundMapper.updateStatus(cashRecordDone1);
else throw new SystemException("提交失败");
} else {
throw new SystemException("提交失败");
}
} catch (BusinessException | SystemException e) {
throw e;
} catch (Exception e) {
log.error("addOnline error", e);
throw new SystemException("提交失败:" + e.getMessage());
}
} }
@Override @Override

7
src/main/java/com/example/demo/serviceImpl/coin/TranslationServiceImpl.java

@ -98,7 +98,12 @@ public class TranslationServiceImpl implements TranslationService {
@Override @Override
public String findChineseSimplifiedByTranslation(String translatedText, String language) { public String findChineseSimplifiedByTranslation(String translatedText, String language) {
// 处理空值情况 // 处理空值情况
if (translatedText == null || translatedText.isEmpty()) {
if (translatedText == null) {
return null;
}
// 处理空字符串
if (translatedText.trim().isEmpty()) {
return translatedText; return translatedText;
} }

Loading…
Cancel
Save