From 4bb0b890438349a7cfd7ab2dc30999346a5acf58 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 30 Apr 2025 01:18:10 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserAssetsServices.java |  116 ++++++++++++++++-----------------------------------------
 1 files changed, 33 insertions(+), 83 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 88ec26c..20cc581 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -1,9 +1,8 @@
 package com.nq.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.nq.common.ServerResponse;
 import com.nq.dao.*;
 import com.nq.enums.EStockType;
@@ -20,14 +19,13 @@
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.function.Function;
 
 /**
  * 用户资产
  */
 @Slf4j
 @Service
-public class UserAssetsServices implements IUserAssetsServices {
+public class UserAssetsServices extends ServiceImpl<UserAssetsMapper, UserAssets> implements IUserAssetsServices {
 
     @Resource
     UserAssetsMapper userAssetsMapper;
@@ -50,6 +48,9 @@
     @Autowired
     UserPositionMapper userPositionMapper;
 
+    @Autowired
+    StockConfigMapper stockConfigMapper;
+
     @Override
     public UserAssets assetsByTypeAndUserId(String accetType, Integer userId) {
         if(accetType.equals("SZHB")){
@@ -70,8 +71,11 @@
     }
 
     @Override
-    public ServerResponse updateUserAssets(Integer id, String amt,String type) {
-        UserAssets userAssets = userAssetsMapper.selectById(id);
+    public ServerResponse updateUserAssets(Integer id, String amt, String type, String accectType) {
+        UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class)
+                .eq(UserAssets::getId,id)
+                .eq(UserAssets::getAccectType,accectType)
+        );
         UserPosition userPosition = userPositionMapper.selectOne(new LambdaQueryWrapper<UserPosition>().gt(UserPosition::getAmountToBeCovered, BigDecimal.ZERO).eq(UserPosition::getUserId,userAssets.getUserId()));
         //  0 入款  1是扣钱  2 是充值  3 是提币
         BigDecimal bigAmt = new BigDecimal(amt);
@@ -121,33 +125,11 @@
             }
         }else{
             if(type.equals("2")){
-                return  userRechargeService.createOrder(userAssets.getUserId(),1,bigAmt.intValue(),"1");
+                return  userRechargeService.createOrder(accectType,userAssets.getUserId(),1,bigAmt.intValue(),"1");
             }else{
                 return ServerResponse.createBySuccess();
             }
         }
-    }
-
-    public void saveUserRecharge(Integer userId ,BigDecimal amt){
-        User user = this.userMapper.selectById(userId);
-        if (user == null) {
-            return;
-        }
-        UserRecharge userRecharge = new UserRecharge();
-        userRecharge.setUserId(user.getId());
-        userRecharge.setNickName(user.getRealName());
-        userRecharge.setAgentId(user.getAgentId());
-
-        String ordersn = KeyUtils.getRechargeOrderSn();
-        userRecharge.setOrderSn(ordersn);
-
-        userRecharge.setPayChannel("1");
-        userRecharge.setPayAmt(new BigDecimal(amt.intValue()));
-        userRecharge.setAddTime(new Date());
-        userRecharge.setPayTime(new Date());
-        userRecharge.setOrderStatus(Integer.valueOf(0));
-        userRecharge.setPayId(1);
-        userRechargeMapper.insert(userRecharge);
     }
 
 
@@ -197,7 +179,7 @@
                userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
            }
             userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(amount));
-        }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALCULATE_PROFIT_AND_LOSS.getCode())){
+       }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALCULATE_PROFIT_AND_LOSS.getCode())){
            extracted(amount, userAssets);
        }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TRANSFER.getCode())){
             userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
@@ -239,6 +221,9 @@
                userAssets.setCumulativeProfitAndLoss(userAssets.getCumulativeProfitAndLoss().add(amount));
            }
            extracted(userAssets);
+       }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALL.getCode())){
+           userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(amount));
+           extracted(amount, userAssets);
        }
 
         if(null != userPosition){
@@ -295,7 +280,7 @@
         // 执行转账操作
         try {
             synchronized (userId){
-                performTransfer(disbursement, deposit, transferAmount);
+                performTransfer(disbursementAccount,disbursement, deposit, transferAmount);
             }
             return ServerResponse.createBySuccess("划转成功", request);
         } catch (Exception e) {
@@ -339,14 +324,23 @@
     }
 
     // 执行转账操作
-    private void performTransfer(UserAssets disbursement, UserAssets deposit, BigDecimal transferAmount) {
-        // 更新转出账户余额
-        disbursement.setAvailableBalance(disbursement.getAvailableBalance().subtract(transferAmount));
-        userAssetsMapper.updateById(disbursement);
-
-        // 更新转入账户余额
-        deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount));
-        userAssetsMapper.updateById(deposit);
+    private void performTransfer(String disbursementAccount,UserAssets disbursement, UserAssets deposit, BigDecimal transferAmount) {
+        StockConfig stockConfig = stockConfigMapper.selectOne(new LambdaQueryWrapper<StockConfig>().eq(StockConfig::getCKey, "usdt_parities"));
+        if(disbursementAccount.equals("USD")){
+            // 更新转入账户余额
+            deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount.multiply(new BigDecimal(stockConfig.getCValue()))));
+            userAssetsMapper.updateById(deposit);
+            // 更新转出账户余额
+            disbursement.setAvailableBalance(disbursement.getAvailableBalance().subtract(transferAmount));
+            userAssetsMapper.updateById(disbursement);
+        }else if(disbursementAccount.equals("ST")){
+            // 更新转入账户余额
+            deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount.divide(new BigDecimal(stockConfig.getCValue()))));
+            userAssetsMapper.updateById(deposit);
+            // 更新转出账户余额
+            disbursement.setAvailableBalance(disbursement.getAvailableBalance().subtract(transferAmount));
+            userAssetsMapper.updateById(disbursement);
+        }
     }
 
     //只要涉及到cumulativeProfitAndLoss变动重新设置状态
@@ -379,48 +373,4 @@
         extracted(userAssets);
     }
 
-    @Override
-    public boolean saveBatch(Collection<UserAssets> entityList, int batchSize) {
-        return false;
-    }
-
-    @Override
-    public boolean saveOrUpdateBatch(Collection<UserAssets> entityList, int batchSize) {
-        return false;
-    }
-
-    @Override
-    public boolean updateBatchById(Collection<UserAssets> entityList, int batchSize) {
-        return false;
-    }
-
-    @Override
-    public boolean saveOrUpdate(UserAssets entity) {
-        return false;
-    }
-
-    @Override
-    public UserAssets getOne(Wrapper<UserAssets> queryWrapper, boolean throwEx) {
-        return null;
-    }
-
-    @Override
-    public Map<String, Object> getMap(Wrapper<UserAssets> queryWrapper) {
-        return null;
-    }
-
-    @Override
-    public <V> V getObj(Wrapper<UserAssets> queryWrapper, Function<? super Object, V> mapper) {
-        return null;
-    }
-
-    @Override
-    public BaseMapper<UserAssets> getBaseMapper() {
-        return null;
-    }
-
-    @Override
-    public Class<UserAssets> getEntityClass() {
-        return null;
-    }
 }

--
Gitblit v1.9.3