|
|
@ -199,36 +199,7 @@ public class CashRefundServiceImpl implements RefundService { |
|
|
throw new Exception("请选择所属地区"); |
|
|
throw new Exception("请选择所属地区"); |
|
|
} |
|
|
} |
|
|
if(cashRecordRefund.getWalletId() != null) { |
|
|
if(cashRecordRefund.getWalletId() != null) { |
|
|
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; |
|
|
|
|
|
} |
|
|
|
|
|
String payType1 = languageTranslationUtil.translate("银行转账", lang); |
|
|
|
|
|
String payType2 = languageTranslationUtil.translate("现金", lang); |
|
|
|
|
|
String payType3 = languageTranslationUtil.translate("支票", lang); |
|
|
|
|
|
String payType4 = languageTranslationUtil.translate("刷卡", lang); |
|
|
|
|
|
if (payType.equals(payType1) || payType.equals(payType2) || payType.equals(payType3) || payType.equals(payType4)) { |
|
|
|
|
|
wallet = cashRecordRefund.getWalletId(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
Integer wallet = cashRecordRefund.getWalletId(); |
|
|
UserRegionWallet userRegionWallet = walletMapper.selectWallet(cashRecordRefund.getJwcode(), wallet); |
|
|
UserRegionWallet userRegionWallet = walletMapper.selectWallet(cashRecordRefund.getJwcode(), wallet); |
|
|
User user = userMapper.selectUserByJwcode(cashRecordRefund.getJwcode()); |
|
|
User user = userMapper.selectUserByJwcode(cashRecordRefund.getJwcode()); |
|
|
if (user.getCurrentFreeJune().add(user.getCurrentFreeDecember()).compareTo(BigDecimal.valueOf(cashRecordRefund.getPartRefundFree())) < 0) { |
|
|
if (user.getCurrentFreeJune().add(user.getCurrentFreeDecember()).compareTo(BigDecimal.valueOf(cashRecordRefund.getPartRefundFree())) < 0) { |
|
|
@ -505,6 +476,13 @@ public class CashRefundServiceImpl implements RefundService { |
|
|
user.setCurrentPermanentGold(BigDecimal.valueOf(-userGoldRecord.getPermanentGold())); //当前永久金币 |
|
|
user.setCurrentPermanentGold(BigDecimal.valueOf(-userGoldRecord.getPermanentGold())); //当前永久金币 |
|
|
user.setCurrentFreeJune(BigDecimal.valueOf(-userGoldRecord.getFreeJune())); //当前六月免费金币 |
|
|
user.setCurrentFreeJune(BigDecimal.valueOf(-userGoldRecord.getFreeJune())); //当前六月免费金币 |
|
|
user.setCurrentFreeDecember(BigDecimal.valueOf(-userGoldRecord.getFreeDecember())); //当前十二月免费金币 |
|
|
user.setCurrentFreeDecember(BigDecimal.valueOf(-userGoldRecord.getFreeDecember())); //当前十二月免费金币 |
|
|
|
|
|
User usergold = userMapper.selectUserByJwcode(userGoldRecord.getJwcode()); |
|
|
|
|
|
if(usergold.getCurrentFreeJune().add(user.getCurrentFreeJune()).compareTo(BigDecimal.ZERO)<0){ |
|
|
|
|
|
throw new RuntimeException("当前六月免费金币不足"); |
|
|
|
|
|
} |
|
|
|
|
|
if (usergold.getCurrentFreeDecember().add(user.getCurrentFreeDecember()).compareTo(BigDecimal.ZERO)<0){ |
|
|
|
|
|
throw new RuntimeException("当前十二月免费金币不足"); |
|
|
|
|
|
} |
|
|
auditMapper.updateUserGold(user); |
|
|
auditMapper.updateUserGold(user); |
|
|
|
|
|
|
|
|
// 钱包更新 - 按原始充值流水 wallet_id 优先级顺序原路退回(1-10,越小优先级越高) |
|
|
// 钱包更新 - 按原始充值流水 wallet_id 优先级顺序原路退回(1-10,越小优先级越高) |
|
|
@ -558,6 +536,7 @@ public class CashRefundServiceImpl implements RefundService { |
|
|
// 5. 插入退款流水(amount 存负数,表示扣减) |
|
|
// 5. 插入退款流水(amount 存负数,表示扣减) |
|
|
UserWalletRecord refundRecord = new UserWalletRecord(); |
|
|
UserWalletRecord refundRecord = new UserWalletRecord(); |
|
|
refundRecord.setType(2); // 充值退款类型 |
|
|
refundRecord.setType(2); // 充值退款类型 |
|
|
|
|
|
refundRecord.setTransactionCurrency("金币"); // 交易币种 |
|
|
refundRecord.setJwcode(userGoldRecord.getJwcode()); |
|
|
refundRecord.setJwcode(userGoldRecord.getJwcode()); |
|
|
refundRecord.setWalletId(walletId); |
|
|
refundRecord.setWalletId(walletId); |
|
|
refundRecord.setAmount(refundAmount.negate().intValue()); // 🔥 负数扣款 |
|
|
refundRecord.setAmount(refundAmount.negate().intValue()); // 🔥 负数扣款 |
|
|
|