From a2ca1f655c816f801f8881136d17d19da915d99b Mon Sep 17 00:00:00 2001
From: zyy3 <zyy3@zy.com>
Date: Fri, 26 Sep 2025 23:18:28 +0800
Subject: [PATCH] 修改账户资金余额

---
 trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserController.java     |   13 +++++++++++++
 trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 trading-order-service/src/main/java/com/yami/trading/service/CapitaltWalletService.java          |    2 ++
 3 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserController.java
index a50e22b..34310a4 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserController.java
@@ -19,6 +19,7 @@
 import com.yami.trading.security.common.util.SecurityUtils;
 import com.yami.trading.security.common.enums.SysTypeEnum;
 import com.yami.trading.security.common.manager.TokenStore;
+import com.yami.trading.service.CapitaltWalletService;
 import com.yami.trading.service.WalletService;
 import com.yami.trading.service.system.LogService;
 import com.yami.trading.service.user.UserRecomService;
@@ -65,6 +66,9 @@
     @Autowired
     PasswordManager passwordManager;
 
+    @Autowired
+    CapitaltWalletService capitaltWalletService;
+
     @PostMapping("list")
     @ApiOperation("列表")
     public Result<Page<UserDto>> list(@Valid @RequestBody UserListModel model) {
@@ -104,6 +108,15 @@
         return Result.ok(null);
     }
 
+    @ApiOperation(value = "修改账户资金余额")
+    @PostMapping("updateCapitaltWallt")
+    @SysLog("修改账户余额")
+    public Result updateCapitaltWallt(@Valid @RequestBody UpdateWalltModel model) {
+        sysUserService.checkSafeWord(model.getSafePassword());
+        return capitaltWalletService.updateCapitaltWallt(model.getUserId(), model.getMoneyRevise(),
+                model.getAccountType(), model.getCoinType());
+    }
+
     @ApiOperation(value = "修改提现限制流水")
     @PostMapping("updateWithdrawalLimitFlow")
     @SysLog("修改提现限制流水")
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/CapitaltWalletService.java b/trading-order-service/src/main/java/com/yami/trading/service/CapitaltWalletService.java
index 30b48e1..ca28656 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/CapitaltWalletService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/CapitaltWalletService.java
@@ -14,4 +14,6 @@
 
     void update(CapitaltWallet capitaltWallet, double amount1);
 
+    Result updateCapitaltWallt(String userId, BigDecimal moneyRevise,  int accountType, String coinType);
+
 }
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
index 513522b..7bfe54f 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
@@ -5,12 +5,15 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yami.trading.bean.contract.domain.ContractOrder;
 import com.yami.trading.bean.model.CapitaltWallet;
+import com.yami.trading.bean.model.MoneyLog;
 import com.yami.trading.bean.model.Wallet;
+import com.yami.trading.common.constants.Constants;
 import com.yami.trading.common.domain.Result;
 import com.yami.trading.common.exception.YamiShopBindException;
 import com.yami.trading.common.util.Arith;
 import com.yami.trading.dao.CapitaltWalletMapper;
 import com.yami.trading.service.CapitaltWalletService;
+import com.yami.trading.service.MoneyLogService;
 import com.yami.trading.service.WalletService;
 import com.yami.trading.service.contract.ContractOrderService;
 import lombok.extern.slf4j.Slf4j;
@@ -20,6 +23,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -36,6 +40,9 @@
 
     @Autowired
     private ContractOrderService contractOrderService;
+
+    @Autowired
+    MoneyLogService moneyLogService;
 
     @Override
     public CapitaltWallet getUserIdWallet(String userId) {
@@ -106,6 +113,43 @@
         }
     }
 
+    /**
+     * @return
+     */
+    @Override
+    @Transactional
+    public Result updateCapitaltWallt(String userId, BigDecimal moneyRevise,  int accountType, String coinType) {
+        if (accountType == 1 && moneyRevise.compareTo(BigDecimal.ZERO) <= 0) { //充值
+            throw new YamiShopBindException("请输入大于0的数量");
+        }
+        if (accountType == 2 && moneyRevise.compareTo(BigDecimal.ZERO) >= 0) {
+            throw new YamiShopBindException("请输入小于0的数量");
+        }
+        if ("usdt".equals(coinType)) {
+            double amount1 = moneyRevise.doubleValue();
+            CapitaltWallet capitaltWallet = getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
+                    .eq(CapitaltWallet::getUserId, userId).last(" limit 1 "));
+            double amount_before = capitaltWallet.getMoney().doubleValue();
+            update(capitaltWallet, amount1);
+
+            // 保存资金日志
+            MoneyLog moneyLog = new MoneyLog();
+            moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
+            moneyLog.setAmountBefore(new BigDecimal(amount_before));
+            moneyLog.setAmount(new BigDecimal(amount1));
+            moneyLog.setAmountAfter(BigDecimal.valueOf(Arith.add(amount_before, amount1)));
+            moneyLog.setLog("后台手动充值");
+            moneyLog.setUserId(userId);
+            moneyLog.setWalletType(Constants.WALLET);
+            moneyLog.setContentType(Constants.MONEYLOG_CONTENT_RECHARGE);
+            moneyLog.setCreateTime(new Date());
+            moneyLogService.save(moneyLog);
+        } else {
+            throw new YamiShopBindException("只支持usdt");
+        }
+        return Result.succeed();
+    }
+
     @Override
     public void update(CapitaltWallet capitaltWallet, double amount1) {
         capitaltWallet.setMoney(new BigDecimal(Arith.add(capitaltWallet.getMoney().doubleValue(), amount1)));

--
Gitblit v1.9.3