Browse Source

3.14 修改部分退款无效问题

milestone-20260224-现金钱包
huangqizhen 3 weeks ago
parent
commit
5b382602ef
  1. 2
      src/main/java/com/example/demo/mapper/coin/WalletMapper.java
  2. 2
      src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java
  3. 45
      src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java
  4. 2
      src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java
  5. 4
      src/main/resources/mapper/WalletMapper.xml

2
src/main/java/com/example/demo/mapper/coin/WalletMapper.java

@ -27,4 +27,6 @@ public interface WalletMapper {
// 查询所有钱包类型
List<Wallet> selectAllWallets();
void addUserWalletRecord(UserWalletRecord userWalletRecord);
void insert(UserRegionWallet userRegionWallet);
}

2
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));

45
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("用户钱包金币不足");

2
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());
}

4
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>
<insert id="insert">
insert into user_region_wallet(jwcode, wallet_id, current_permanent_gold)
values(#{jwcode}, #{walletId}, #{currentPermanentGold})
</insert>
<!-- 结果映射 -->
<resultMap id="WalletResult" type="com.example.demo.domain.entity.Wallet">

Loading…
Cancel
Save