Procházet zdrojové kódy

分账调试:充值

skyline před 1 rokem
rodič
revize
970292cf32

+ 1 - 0
car-wash-service/src/main/java/com/kym/service/RechargeConfigService.java

@@ -13,4 +13,5 @@ import com.kym.service.mybatisplus.MyBaseService;
  */
 public interface RechargeConfigService extends MyBaseService<RechargeConfig> {
 
+    RechargeConfig getRechargeConfigByAmount(Integer amount);
 }

+ 4 - 0
car-wash-service/src/main/java/com/kym/service/impl/RechargeConfigServiceImpl.java

@@ -17,4 +17,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class RechargeConfigServiceImpl extends MyBaseServiceImpl<RechargeConfigMapper, RechargeConfig> implements RechargeConfigService {
 
+    @Override
+    public RechargeConfig getRechargeConfigByAmount(Integer amount) {
+        return lambdaQuery().eq(RechargeConfig::getRechargeAmount, amount).one();
+    }
 }

+ 3 - 1
car-wash-service/src/main/java/com/kym/service/wechat/impl/WxPayServiceImpl.java

@@ -306,9 +306,11 @@ public class WxPayServiceImpl implements WxPayService {
             var walletDetail = walletDetailService.getWalletDetailByOrderNo(transaction.getOutTradeNo(), WalletDetail.TYPE_充值);
             if (walletDetail != null) {
 
+                var rechargeConfig = rechargeConfigService.getRechargeConfigByAmount(walletDetail.getAmount());
+
                 // 更新余额
                 var account = accountService.getAccountByUserId(walletDetail.getUserId());
-                accountService.lambdaUpdate().setSql("balance = (balance + %d)".formatted(transaction.getAmount().getTotal()))
+                accountService.lambdaUpdate().setSql("balance = balance + {0}, recharge_balance = recharge_balance + {0}, grants_balance = grants_balance + {1}", transaction.getAmount().getTotal(), rechargeConfig.getGrantsAmount())
                         .eq(Account::getUserId, walletDetail.getUserId()).update();
 
                 walletDetail.setStatus(WalletDetail.STATUS_已确认);  //已确认