From 01d5b1dddaefae84ffb6457ab7a7be87ea0041f6 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 11 Jan 2026 17:42:23 +0800
Subject: [PATCH] 测试环境

---
 src/main/java/com/nq/service/impl/UserServiceImpl.java |   39 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 64b4d6c..f632221 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -11,6 +11,7 @@
 import com.nq.pojo.*;
 import com.nq.service.*;
 import com.nq.utils.DateTimeUtil;
+import com.nq.utils.KeyUtils;
 import com.nq.utils.PropertiesUtil;
 import com.nq.utils.SymmetricCryptoUtil;
 import com.nq.utils.ip.IpUtils;
@@ -178,12 +179,28 @@
         int insertCount = this.userMapper.insert(user);
 
         if (insertCount > 0) {
+            //用户注册成功重新代理机构码重新生成
+            String newAgentCode = generateUniqueAgentCode();
+            agentUser.setAgentCode(newAgentCode);
+            iAgentUserService.updateAgentCode(agentUser);
             log.info("用户注册成功 手机 {} , ip = {} 地址 = {}", new Object[] { phone, uip, uadd });
             return ServerResponse.createBySuccessMsg("注册成功.请登录");
         }
         return ServerResponse.createBySuccessMsg("注册出错, 请重试");
     }
 
+    public String generateUniqueAgentCode() {
+        // 生成新的 agent code
+        String newAgentCode = KeyUtils.getAgentUniqueKey();
+
+        // 如果找到重复的 agent code,则递归重新生成
+        if (iAgentUserService.findByCode(newAgentCode) != null) {
+            return generateUniqueAgentCode();  // 递归调用
+        }
+
+        // 返回唯一的 agent code
+        return newAgentCode;
+    }
 
 
     public ServerResponse login(String phone, String userPwd, HttpServletRequest request) {
@@ -1820,13 +1837,27 @@
 //        BigDecimal userAllAmt = user.getUserAmt();
         BigDecimal userAllAmt = user.getEnableAmt();
         userAllAmt = userAllAmt.add(allProfitAndLose);
-        userInfoVO.setUserAmt(userAllAmt);
+
 
         userInfoVO.setEnableIndexAmt(user.getEnableIndexAmt());
         userInfoVO.setEnaleWithdrawAmt(user.getEnaleWithdrawAmt());
         userInfoVO.setHkAmt(user.getHkAmt());
 
         BigDecimal historyProfitLoss = new BigDecimal(0);
+        BigDecimal buyAmtAutual = new BigDecimal(0);
+        List<UserPosition> userPositionscc = this.userPositionMapper.findMyPositionByCodeAndSpell(user.getId(), "", "", 0);
+
+        if (userPositionscc.size() > 0) {
+            for (UserPosition position : userPositionscc) {
+                buyAmtAutual = buyAmtAutual.add(position.getBuyOrderPrice()
+                        .multiply(new BigDecimal(position.getOrderNum()))
+                        .divide(new BigDecimal(position.getOrderLever()), 2, RoundingMode.HALF_UP));
+            }
+        }
+        userInfoVO.setBuyAmtAutual(buyAmtAutual);
+        userAllAmt = userAllAmt.add(buyAmtAutual);
+        userInfoVO.setUserAmt(userAllAmt);
+
         List<UserPosition> userPositions = this.userPositionMapper.findMyPositionByCodeAndSpell(user.getId(), "", "", 1);
 
         if (userPositions.size() > 0) {
@@ -1916,7 +1947,8 @@
         if (position.getSellOrderId() != null) {
 
             BigDecimal subPrice = position.getSellOrderPrice().subtract(position.getBuyOrderPrice());
-            profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).multiply(new BigDecimal(position.getOrderLever())).setScale(2,4);
+//            profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).multiply(new BigDecimal(position.getOrderLever())).setScale(2,4);
+            profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).setScale(2,4);
             if ("买跌".equals(position.getOrderDirection())) {
                 profitAndLose = profitAndLose.negate();
             }
@@ -1937,7 +1969,8 @@
             }
 
             BigDecimal subPrice = (new BigDecimal(nowPrice)).subtract(position.getBuyOrderPrice());
-            profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).multiply(new BigDecimal(position.getOrderLever())).setScale(2,4);
+//            profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).multiply(new BigDecimal(position.getOrderLever())).setScale(2,4);
+            profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).setScale(2,4);
             if ("买跌".equals(position.getOrderDirection())) {
                 profitAndLose = profitAndLose.negate();
             }

--
Gitblit v1.9.3