From 5b382602ef7707cdd968caab1e4299995a1c6518 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Mon, 16 Mar 2026 11:00:57 +0800 Subject: [PATCH] =?UTF-8?q?3.14=20=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E6=97=A0=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/mapper/coin/WalletMapper.java | 2 + .../demo/serviceImpl/Wallet/WalletServiceImpl.java | 2 +- .../serviceImpl/cash/CashRefundServiceImpl.java | 45 +++++++++++++++++++++- .../demo/serviceImpl/coin/AuditServiceImpl.java | 2 +- src/main/resources/mapper/WalletMapper.xml | 4 ++ 5 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/demo/mapper/coin/WalletMapper.java b/src/main/java/com/example/demo/mapper/coin/WalletMapper.java index 4b1b1d1..baf76f7 100644 --- a/src/main/java/com/example/demo/mapper/coin/WalletMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/WalletMapper.java @@ -27,4 +27,6 @@ public interface WalletMapper { // 查询所有钱包类型 List selectAllWallets(); void addUserWalletRecord(UserWalletRecord userWalletRecord); + + void insert(UserRegionWallet userRegionWallet); } diff --git a/src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java index f298bad..1caf814 100644 --- a/src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java @@ -37,7 +37,7 @@ public class WalletServiceImpl implements WalletService { throw new BusinessException("该用户钱包不存在"); } else { - if (wallet.getCurrentPermanentGold().compareTo(currentPermanentGold) < 0){ + if (currentPermanentGold.compareTo(BigDecimal.ZERO) < 0 && wallet.getCurrentPermanentGold().compareTo(currentPermanentGold) < 0){ throw new BusinessException("用户钱包金币不足"); } userRegionWallet.setCurrentPermanentGold(wallet.getCurrentPermanentGold().add(currentPermanentGold)); 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 a236ed8..74187e8 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -195,6 +195,45 @@ public class CashRefundServiceImpl implements RefundService { if (cashRecordRefund.getMarket() == null || cashRecordRefund.getMarket().trim().isEmpty()) { throw new Exception("请选择所属地区"); } + 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) { + //初始化钱包 + walletMapper.insert(new UserRegionWallet(null, cashRecordRefund.getJwcode(), wallet, BigDecimal.ZERO, new Date(), new Date())); + log.warn("用户钱包不存在,已初始化钱包"); + } + if (userRegionWallet.getCurrentPermanentGold().compareTo(BigDecimal.valueOf(cashRecordRefund.getPermanentGold())) < 0) { + throw new BusinessException("用户钱包金币不足"); + } CashRecordDone cashRecordDonetwo = new CashRecordDone(); cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); @@ -465,7 +504,7 @@ public class CashRefundServiceImpl implements RefundService { for (UserWalletRecord userWalletRecord : userWalletList){ userRegionWallet.setJwcode(userWalletRecord.getJwcode()); userRegionWallet.setWalletId(userWalletRecord.getWalletId()); - userRegionWallet.setCurrentPermanentGold(BigDecimal.valueOf(userWalletRecord.getAmount())); + userRegionWallet.setCurrentPermanentGold(BigDecimal.valueOf(-(userGoldRecord.getFreeDecember()+userGoldRecord.getFreeJune()+userGoldRecord.getPermanentGold()))); walletService.updateUserGoldRecord(userRegionWallet); walletService.updateUserWalletRecord(userWalletRecord.getId()); UserWalletRecord userWalletRecord1 = new UserWalletRecord(); @@ -761,7 +800,9 @@ public class CashRefundServiceImpl implements RefundService { UserRegionWallet userRegionWallet = walletMapper.selectWallet(cashRecordRefund.getJwcode(), wallet); if (userRegionWallet == null) { - throw new BusinessException("该用户钱包不存在"); + //初始化钱包 + walletMapper.insert(new UserRegionWallet(null, cashRecordRefund.getJwcode(), wallet, BigDecimal.ZERO, new Date(), new Date())); + log.warn("用户钱包不存在,已初始化钱包"); } if (userRegionWallet.getCurrentPermanentGold().compareTo(BigDecimal.valueOf(cashRecordRefund.getPermanentGold())) < 0) { throw new BusinessException("用户钱包金币不足"); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java index 6d93471..a3e7936 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -216,7 +216,7 @@ public class AuditServiceImpl implements AuditService { for (UserWalletRecord userWalletRecord : userWalletList){ userRegionWallet.setJwcode(userWalletRecord.getJwcode()); userRegionWallet.setWalletId(userWalletRecord.getWalletId()); - userRegionWallet.setCurrentPermanentGold(BigDecimal.valueOf(userWalletRecord.getAmount())); + userRegionWallet.setCurrentPermanentGold(BigDecimal.valueOf(-(order.getPermanentGold()+order.getTaskGold()+order.getFreeJune()+order.getFreeDecember()))); walletService.updateUserGoldRecord(userRegionWallet); walletService.updateUserWalletRecord(userWalletRecord.getId()); } diff --git a/src/main/resources/mapper/WalletMapper.xml b/src/main/resources/mapper/WalletMapper.xml index 6141f21..9187dfd 100644 --- a/src/main/resources/mapper/WalletMapper.xml +++ b/src/main/resources/mapper/WalletMapper.xml @@ -5,6 +5,10 @@ insert into user_wallet_record(jwcode, wallet_id, type, amount, order_code, description, status) values(#{jwcode}, #{walletId}, #{type}, #{amount}, #{orderCode}, #{description}, 1) + + insert into user_region_wallet(jwcode, wallet_id, current_permanent_gold) + values(#{jwcode}, #{walletId}, #{currentPermanentGold}) +