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);
int resultCode = refundService.add(cashRecordRefund,lang);
refundService.add(cashRecordRefund, lang);
String successMsg = languageTranslationUtil.translate("提交成功", lang);
if (resultCode > 0) {
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);
}
@ -759,50 +758,52 @@ public class CashRefundController {
* 将退款记录查询条件中的翻译字段转换为中文简体
*/
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(
cashRecordRefund.getRefundReason(), languageCode);
cashRecordRefund.setRefundReason(chineseReason);
}
// 转换退款备注
if (cashRecordRefund.getRefundRemark() != null && !cashRecordRefund.getRefundRemark().isEmpty()) {
if (cashRecordRefund.getRefundRemark() != null && !cashRecordRefund.getRefundRemark().trim().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getRefundRemark(), languageCode);
cashRecordRefund.setRefundRemark(chineseRemark);
}
// 转换退款途径
if (cashRecordRefund.getRefundChannels() != null && !cashRecordRefund.getRefundChannels().isEmpty()) {
if (cashRecordRefund.getRefundChannels() != null && !cashRecordRefund.getRefundChannels().trim().isEmpty()) {
String chineseChannels = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getRefundChannels(), languageCode);
cashRecordRefund.setRefundChannels(chineseChannels);
}
// 转换退款币种
if (cashRecordRefund.getRefundCurrency() != null && !cashRecordRefund.getRefundCurrency().isEmpty()) {
if (cashRecordRefund.getRefundCurrency() != null && !cashRecordRefund.getRefundCurrency().trim().isEmpty()) {
String chineseCurrency = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getRefundCurrency(), languageCode);
cashRecordRefund.setRefundCurrency(chineseCurrency);
}
// 转换所属地区
if (cashRecordRefund.getMarketName() != null && !cashRecordRefund.getMarketName().isEmpty()) {
if (cashRecordRefund.getMarketName() != null && !cashRecordRefund.getMarketName().trim().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getMarketName(), languageCode);
cashRecordRefund.setMarketName(chineseMarket);
}
// 转换提交人地区
if (cashRecordRefund.getSubmitterMarket() != null && !cashRecordRefund.getSubmitterMarket().isEmpty()) {
if (cashRecordRefund.getSubmitterMarket() != null && !cashRecordRefund.getSubmitterMarket().trim().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
cashRecordRefund.getSubmitterMarket(), languageCode);
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.service.Wallet.WalletService;
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;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestHeader;
import com.example.demo.domain.DTO.Currency;
@ -67,6 +69,8 @@ public class CashRefundServiceImpl implements RefundService {
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private WalletService walletService;
@Autowired
private TranslationService translationService;
@Override
public PageInfo<CashRecordDTO> select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) {
@ -176,6 +180,7 @@ public class CashRefundServiceImpl implements RefundService {
@Override
public int add(CashRecordRefund cashRecordRefund, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
try {
if (cashRecordRefund.getJwcode() == null) {
throw new Exception("未输入精网号");
}
@ -188,6 +193,10 @@ public class CashRefundServiceImpl implements RefundService {
if (cashRecordRefund.getHandlingCharge() == null) {
throw new Exception("请先填写手续费");
}
if (cashRecordRefund.getMarket() == null || cashRecordRefund.getMarket().trim().isEmpty()) {
throw new Exception("请选择所属地区");
}
CashRecordDone cashRecordDonetwo = new CashRecordDone();
cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise());
cashRefundMapper.addAudit(cashRecordDonetwo);
@ -198,14 +207,33 @@ public class CashRefundServiceImpl implements RefundService {
String orderNumber = cashRecordRefund.getOrderCode();
//构建订单信息
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);
CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setId(cashRecordRefund.getOriginalOrderId());
cashRecordDone1.setStatus(6);
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null)
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) {
cashRefundMapper.updateStatus(cashRecordDone1);
else return Result.error("提交失败").getCode();
} else {
return Result.error("提交失败").getCode();
}
// 发送退款创建消息
Messages message = new Messages();
@ -217,13 +245,16 @@ public class CashRefundServiceImpl implements RefundService {
message.setType(0);
message.setTypeId(cashRecordRefund.getId());
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);
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
@ -673,7 +704,9 @@ public class CashRefundServiceImpl implements RefundService {
}
@Override
@Transactional
public void addOnline(CashRecordRefund cashRecordRefund) {
try {
if (cashRecordRefund.getJwcode() == null) {
throw new BusinessException("未输入精网号");
}
@ -683,6 +716,10 @@ public class CashRefundServiceImpl implements RefundService {
if (cashRecordRefund.getRefundReason() == null) {
throw new BusinessException("请填写退款理由");
}
if (cashRecordRefund.getMarket() == null || cashRecordRefund.getMarket().trim().isEmpty()) {
throw new BusinessException("请选择所属地区");
}
CashRecordDone cashRecordDonetwo = new CashRecordDone();
cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise());
cashRefundMapper.addAudit(cashRecordDonetwo);
@ -693,14 +730,41 @@ public class CashRefundServiceImpl implements RefundService {
String orderNumber = cashRecordRefund.getOrderCode();
//构建订单信息
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);
CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setId(cashRecordRefund.getId());
cashRecordDone1.setId(cashRecordRefund.getOriginalOrderId());
cashRecordDone1.setStatus(6);
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null)
if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) {
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

7
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;
}

Loading…
Cancel
Save