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 c9a6b09..97ff479 100644 --- a/src/main/java/com/example/demo/controller/cash/CashRefundController.java +++ b/src/main/java/com/example/demo/controller/cash/CashRefundController.java @@ -373,7 +373,7 @@ public class CashRefundController { } cashRecordRefund.setStatus(20); - refundService.add(cashRecordRefund, lang); + refundService.addOnline(cashRecordRefund, lang); String successMsg = languageTranslationUtil.translate("提交成功", lang); translateCashRecordRefundFields(cashRecordRefund, lang); return Result.success(successMsg, cashRecordRefund); diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java b/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java index 73ef3bc..4173a24 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java @@ -203,5 +203,6 @@ public class CashRecordRefund { private Integer partRefundGold; private Integer partRefundFree; private BigDecimal handlingCharge; + private String payType; } \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/cash/RefundService.java b/src/main/java/com/example/demo/service/cash/RefundService.java index 5d76eb9..b5f7093 100644 --- a/src/main/java/com/example/demo/service/cash/RefundService.java +++ b/src/main/java/com/example/demo/service/cash/RefundService.java @@ -36,7 +36,7 @@ public interface RefundService { PageInfo exSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO); //新增线上退款记录 - void addOnline(CashRecordRefund cashRecordRefund); + void addOnline(CashRecordRefund cashRecordRefund, String lang); PageInfo funds(Integer pageNum, Integer pageSize, FundsDTO fundsDTO); } 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 6262f57..a236ed8 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -13,10 +13,7 @@ import com.example.demo.domain.vo.coin.Result; import com.example.demo.exception.SystemException; import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.mapper.cash.CashRefundMapper; -import com.example.demo.mapper.coin.AuditMapper; -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.mapper.coin.*; import com.example.demo.service.Wallet.WalletService; import com.example.demo.service.cash.RefundService; import com.example.demo.service.coin.TranslationService; @@ -71,6 +68,8 @@ public class CashRefundServiceImpl implements RefundService { private WalletService walletService; @Autowired private TranslationService translationService; + @Autowired + private WalletMapper walletMapper; @Override public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { @@ -714,8 +713,8 @@ public class CashRefundServiceImpl implements RefundService { } @Override - @Transactional - public void addOnline(CashRecordRefund cashRecordRefund) { + @Transactional(rollbackFor = Exception.class) + public void addOnline(CashRecordRefund cashRecordRefund,String lang) { try { if (cashRecordRefund.getJwcode() == null) { throw new BusinessException("未输入精网号"); @@ -730,6 +729,43 @@ public class CashRefundServiceImpl implements RefundService { throw new BusinessException("请选择所属地区"); } + String payType = cashRecordRefund.getPayType(); + Integer wallet = null; + if (payType == null || payType.trim().isEmpty()) { + throw new SystemException("未穿输支付方式"); + } + if (payType.equals("Stripe")||payType.equals("PaymentAsia")) + { + wallet = 2; + } + if (payType.equals("FirstData")||payType.equals("Grabpay")||payType.equals("Nets")||payType.equals("PayPal")||payType.equals("IOS")) + { + wallet = 5; + } + if (payType.equals("Stripe2")) + { + wallet = 3; + } + if (payType.equals("iPay88")) + { + wallet = 4; + } + if (payType.equals("E-Transfer")) + { + wallet = 6; + } + if (payType.equals("paysolution")) + { + wallet = 8; + } + UserRegionWallet userRegionWallet = walletMapper.selectWallet(cashRecordRefund.getJwcode(), wallet); + + if (userRegionWallet == null) { + throw new BusinessException("该用户钱包不存在"); + } + if (userRegionWallet.getCurrentPermanentGold().compareTo(BigDecimal.valueOf(cashRecordRefund.getPermanentGold())) < 0) { + throw new BusinessException("用户钱包金币不足"); + } CashRecordDone cashRecordDonetwo = new CashRecordDone(); cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); cashRefundMapper.addAudit(cashRecordDonetwo);