From d615fc515fc52d6ed970c11d59a017e48de4be32 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 16 Jun 2026 16:43:58 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java |   38 +++++++++++++++++---------------------
 1 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java b/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
index 02364a1..880203b 100644
--- a/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserRechargeServiceImpl.java
@@ -18,6 +18,8 @@
 import com.nq.pojo.UserRecharge;
 import com.nq.utils.DateTimeUtil;
 import com.nq.utils.KeyUtils;
+import com.nq.utils.RechargeAmtValidator;
+import com.nq.utils.UserFundUtil;
 import com.nq.utils.redis.RedisShardedPoolUtils;
 
 import java.math.BigDecimal;
@@ -72,11 +74,9 @@
             return ServerResponse.createByErrorMsg("参数不能为空");
         }
         SiteSetting siteSetting = this.iSiteSettingService.getSiteSetting();
-        if (siteSetting == null) {
-            return ServerResponse.createByErrorMsg("设置set未初始化");
-        }
-        if ((new BigDecimal(siteSetting.getChargeMinAmt() + "")).compareTo(new BigDecimal(amt)) == 1) {
-            return ServerResponse.createByErrorMsg("充值金额不得低于" + siteSetting.getChargeMinAmt() + "元");
+        ServerResponse amtCheck = RechargeAmtValidator.validate(siteSetting, new BigDecimal(amt));
+        if (!amtCheck.isSuccess()) {
+            return amtCheck;
         }
 
 
@@ -149,7 +149,10 @@
         if (StringUtils.isBlank(amt) || StringUtils.isBlank(payType)) {
             return ServerResponse.createByErrorMsg("参数不能为空");
         }
-        User user= (User) iUserService.findByUserId(uid).getData();
+        User user = iUserService.getUserEntityById(uid);
+        if (user == null) {
+            return ServerResponse.createByErrorMsg("用户不存在");
+        }
 
         UserRecharge userRecharge = new UserRecharge();
 
@@ -205,10 +208,8 @@
         if (user == null) {
             return ServerResponse.createByErrorMsg("用户不存在");
         }
-        BigDecimal userAmt_before = user.getUserAmt();
-        BigDecimal enableAmt_before = user.getEnableAmt();
-        user.setUserAmt(userAmt_before.add(userRecharge.getPayAmt()));
-        user.setEnableAmt(enableAmt_before.add(userRecharge.getPayAmt()));
+        BigDecimal payAmt = userRecharge.getPayAmt();
+        UserFundUtil.creditUserBalance(user, payAmt);
         int updateCount = this.userMapper.updateByPrimaryKeySelective(user);
         if (updateCount > 0) {
             log.info("1.修改用户资金成功");
@@ -234,8 +235,8 @@
         ucd.setUserName(user.getRealName());
         ucd.setDeType("用户充值");
         ucd.setDeAmt(userRecharge.getPayAmt());
-        ucd.setDeSummary("用户充值成功,充值前总金额:" + userAmt_before + ",充值后总金额:" + user.getUserAmt() + ",充值前可用:" + enableAmt_before + ",充值后可用:" + user
-                .getEnableAmt());
+        ucd.setDeSummary("用户充值成功,充值前总金额:" + user.getUserAmt().subtract(payAmt) + ",充值后总金额:" + user.getUserAmt() + ",充值前可用:" + user.getEnableAmt().subtract(payAmt) + ",充值后可用:" + user
+                .getEnableAmt() + ",充值后可取:" + user.getEnaleWithdrawAmt());
 
         ucd.setAddTime(new Date());
         ucd.setIsRead(Integer.valueOf(0));
@@ -361,12 +362,9 @@
             if (user == null) {
                 return ServerResponse.createByErrorMsg("用户不存在");
             }
-            BigDecimal user_amt = user.getUserAmt().add(userRecharge.getPayAmt());
-            log.info("管理员确认订单成功,增加用户 {} 总资金,原金额 = {} , 增加后 = {}", new Object[]{user.getId(), user.getUserAmt(), user_amt});
-            user.setUserAmt(user_amt);
-            BigDecimal user_enable_amt = user.getEnableAmt().add(userRecharge.getPayAmt());
-            log.info("管理员确认订单成功,增加用户 {} 可用资金,原金额 = {} , 增加后 = {}", new Object[]{user.getId(), user.getEnableAmt(), user_enable_amt});
-            user.setEnableAmt(user_enable_amt);
+            UserFundUtil.creditUserBalance(user, userRecharge.getPayAmt());
+            log.info("管理员确认订单成功,用户 {} 总资金={} 可用={} 可取={}",
+                    user.getId(), user.getUserAmt(), user.getEnableAmt(), user.getEnaleWithdrawAmt());
 
             int updateCount = this.userMapper.updateByPrimaryKeySelective(user);
             if (updateCount > 0) {
@@ -420,9 +418,7 @@
             userRecharge.setPayChannel("2");
             userRecharge.setOrderStatus(Integer.valueOf(1));
 
-            user.setUserAmt(user.getUserAmt().add(new BigDecimal(amt.intValue())));
-            user.setEnableAmt(user.getEnableAmt().add(new BigDecimal(amt.intValue())));
-            user.setEnaleWithdrawAmt(user.getEnaleWithdrawAmt().add(new BigDecimal(amt.intValue())));
+            UserFundUtil.creditUserBalance(user, new BigDecimal(amt.intValue()));
             this.userMapper.updateByPrimaryKeySelective(user);
         } else if (state.intValue() == 2) {
             userRecharge.setOrderStatus(Integer.valueOf(2));

--
Gitblit v1.9.3