From 05c70aec6fb13c9df2c90f84d9411cafe63570a8 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 07 Aug 2025 10:53:50 +0800
Subject: [PATCH] 8.6修改

---
 src/main/java/com/nq/service/impl/UserServiceImpl.java |  143 +++++++++++++++++++++++------------------------
 1 files changed, 69 insertions(+), 74 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 922b26a..f5c8a42 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -8,7 +8,6 @@
 import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.nq.common.ServerResponse;
-import com.nq.config.StockPoll;
 import com.nq.dao.*;
 import com.nq.enums.EStockType;
 import com.nq.enums.EUserAssets;
@@ -16,8 +15,6 @@
 import com.nq.pojo.reponse.RUserAssets;
 import com.nq.service.*;
 import com.nq.utils.UserPointUtil;
-import com.nq.utils.redis.RedisKeyUtil;
-import com.nq.utils.timeutil.DateTimeUtil;
 import com.nq.utils.PropertiesUtil;
 import com.nq.utils.SymmetricCryptoUtil;
 import com.nq.utils.ip.IpUtils;
@@ -25,15 +22,11 @@
 import com.nq.utils.redis.CookieUtils;
 import com.nq.utils.redis.JsonUtil;
 import com.nq.utils.redis.RedisShardedPoolUtils;
-import com.nq.utils.stock.sina.StockApi;
 import com.nq.vo.agent.AgentUserListVO;
 import com.nq.vo.futuresposition.FuturesPositionVO;
 import com.nq.vo.indexposition.IndexPositionVO;
-import com.nq.vo.position.PositionProfitVO;
 import com.nq.vo.position.PositionVO;
 import com.nq.vo.position.UserPositionVO;
-import com.nq.vo.stock.StockAdminListVO;
-import com.nq.vo.stock.StockListVO;
 import com.nq.vo.user.UserInfoVO;
 
 import java.math.BigDecimal;
@@ -41,12 +34,10 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
 import com.nq.vo.user.UserOut;
-import org.apache.commons.lang3.Conversion;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -70,6 +61,9 @@
     @Resource
     StockOptionMapper stockOptionMapper;
 
+    @Autowired
+    DkMapper dkMapper;
+
 
     @Autowired
     IUserService userService;
@@ -84,8 +78,6 @@
     StockMapper stockMapper;
     @Autowired
     IUserPositionService iUserPositionService;
-    @Autowired
-    IUserBankService iUserBankService;
     @Resource
     AgentUserMapper agentUserMapper;
     @Resource
@@ -104,8 +96,6 @@
     IUserIndexPositionService iUserIndexPositionService;
     @Autowired
     ISiteIndexSettingService iSiteIndexSettingService;
-    @Autowired
-    StockPoll stockPoll;
 
     @Autowired
     StockSubscribeMapper stockSubscribeMapper;
@@ -114,18 +104,11 @@
     MoneyLogMapper mapper;
 
     @Resource
-    IUserPositionService userPositionService;
-    @Resource
     SiteAmtTransLogMapper siteAmtTransLogMapper;
     @Autowired
     IUserFuturesPositionService iUserFuturesPositionService;
     @Autowired
     ISiteFuturesSettingService iSiteFuturesSettingService;
-    @Autowired
-    IStockFuturesService iStockFuturesService;
-
-    @Autowired
-    ISiteMessageService iSiteMessageService;
 
     @Autowired
     private ApplyLeverMapper applyLeverMapper;
@@ -210,7 +193,8 @@
             if (user.getIsLogin().intValue() == 1) {
                 return ServerResponse.createByErrorMsg("登录失败。账户锁定",request);
             }
-            userAssetsServices.assetsByTypeAndUserId(EStockType.IN.getCode(),user.getId());
+            //默认资产
+            userAssetsServices.assetsByTypeAndUserId(EStockType.getDefault().getCode(),user.getId());
             this.iSiteLoginLogService.saveLog(user, request);
             return ServerResponse.createBySuccess(user);
         }
@@ -508,7 +492,7 @@
             RUserAssets rUserAssets  = new RUserAssets();
             UserAssets userAssets = userAssetsList.get(i);
             // 浮动盈亏
-            String profitAndLose = getProfitAndLose(userId).toString();
+            String profitAndLose = getProfitAndLose(userId, userAssets.getAccectType()).toString();
             BigDecimal amt = userAssets.getAvailableBalance();
             BigDecimal totalAssets = userAssets.getAvailableBalance().add(userAssets.getFreezeMoney()).add(new BigDecimal(profitAndLose)).subtract(userAssets.getHandlingChargeWritten());
 //            BigDecimal totalAssets = userAssets.getAvailableBalance().add(userAssets.getFreezeMoney()).subtract(userAssets.getCumulativeProfitAndLoss()).add(profitAndLose);
@@ -608,12 +592,11 @@
         return ServerResponse.createBySuccess(rUserAssetsList);
     }
 
-    public BigDecimal getProfitAndLose(Integer userId){
+    public BigDecimal getProfitAndLose(Integer userId, String accectType){
         List<UserPosition> userPositions;
-        userPositions = userPositionMapper.
-                findMyPositionByCodeAndSpell(userId,
+        userPositions = userPositionMapper.findMyPositionByCodeAndSpell(userId,
                         "","",
-                        0, "IN");
+                        0, accectType);
 
 
         List<UserPositionVO> userPositionVOS = Lists.newArrayList();
@@ -645,16 +628,20 @@
 
     @Override
     public ServerResponse transfer(String fromType, String toType, String amt,HttpServletRequest request) {
-        User user =  userService.getCurrentUser(request);
-        UserAssets formAssets = userAssetsServices.assetsByTypeAndUserId(fromType,user.getId());
-        BigDecimal amtBig = new BigDecimal(amt);
-        if(formAssets.getAvailableBalance().compareTo(amtBig)<0){
-            return ServerResponse.createByErrorMsg("余额不足",request);
+        try {
+            User user =  userService.getCurrentUser(request);
+            UserAssets formAssets = userAssetsServices.assetsByTypeAndUserId(fromType,user.getId());
+            BigDecimal amtBig = new BigDecimal(amt);
+            if(formAssets.getAvailableBalance().compareTo(amtBig)<0){
+                return ServerResponse.createByErrorMsg("余额不足",request);
+            }
+            userAssetsServices.availablebalanceChange(fromType,user.getId(), EUserAssets.TRANSFER,amtBig.negate(),fromType+"/"+toType,"");
+            amtBig = rateServices.currencyRate(EStockType.getEStockTypeByCode(fromType),EStockType.getEStockTypeByCode(toType)).multiply(amtBig);
+            userAssetsServices.availablebalanceChange(toType,user.getId(),EUserAssets.TRANSFER,amtBig.setScale(5,RoundingMode.HALF_DOWN),fromType+"/"+toType,"");
+            return ServerResponse.createBySuccess();
+        } catch (Exception e) {
+            return ServerResponse.createByErrorMsg(e.getMessage());
         }
-        userAssetsServices.availablebalanceChange(fromType,user.getId(), EUserAssets.TRANSFER,amtBig.negate(),fromType+"/"+toType,"");
-        amtBig = rateServices.currencyRate(EStockType.getEStockTypeByCode(fromType),EStockType.getEStockTypeByCode(toType)).multiply(amtBig);
-        userAssetsServices.availablebalanceChange(toType,user.getId(),EUserAssets.TRANSFER,amtBig.setScale(5,RoundingMode.HALF_DOWN),fromType+"/"+toType,"");
-        return ServerResponse.createBySuccess();
     }
 
 
@@ -770,7 +757,7 @@
             ServerResponse money = iUserService.getMoney(user.getId());
             List<RUserAssets> rUserAssetsList = (List<RUserAssets>) money.getData();
             RUserAssets rUserAssets = rUserAssetsList.stream()
-                    .filter(stock -> "IN".equals(stock.getAccectType()))
+                    .filter(stock -> EStockType.getDefault().getCode().equals(stock.getAccectType()))
                     .findFirst()
                     .orElse(null);
 
@@ -792,48 +779,50 @@
     }
 
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public ServerResponse addSimulatedAccount(Integer agentId, String phone, String pwd, String amt, Integer accountType, HttpServletRequest request) {
         if (StringUtils.isBlank(phone) || StringUtils.isBlank(pwd)) {
             return ServerResponse.createByErrorMsg("The parameter cannot be null");
         }
+        try {
+            QueryWrapper queryWrapper = new QueryWrapper();
+            queryWrapper.eq("phone",phone);
+            User dbUser = userMapper.selectOne(queryWrapper);
+            if (dbUser != null) {
+                return ServerResponse.createByErrorMsg("The phone number is registered");
+            }
 
-        QueryWrapper queryWrapper = new QueryWrapper();
-        queryWrapper.eq("phone",phone);
-        User dbUser = userMapper.selectOne(queryWrapper);
-        if (dbUser != null) {
-            return ServerResponse.createByErrorMsg("The phone number is registered");
+            User user = new User();
+            user.setAccountType(accountType);
+            user.setPhone(phone);
+            user.setIsLock(Integer.valueOf(0));
+            user.setIsLogin(Integer.valueOf(0));
+            user.setIsActive(Integer.valueOf(0));
+            user.setRegTime(new Date());
+
+
+            if (accountType.intValue() == 1) {
+                user.setNickName("模拟用户");
+            }
+
+
+            if (agentId != null) {
+                AgentUser agentUser = this.agentUserMapper.selectByPrimaryKey(agentId);
+                user.setAgentName(agentUser.getAgentName());
+                user.setAgentId(agentUser.getId());
+            }
+
+            int insertCount = this.userMapper.insert(user);
+            dbUser = userMapper.selectOne(queryWrapper);
+            userAssetsServices.getAvailableBalance(EStockType.getDefault().getCode(),dbUser.getId() );
+            userAssetsServices.availablebalanceChange(EStockType.getDefault().getCode(),dbUser.getId(),EUserAssets.TOP_UP,new BigDecimal(amt),"","");
+            if (insertCount > 0) {
+                return ServerResponse.createBySuccessMsg("Success");
+            }
+            return ServerResponse.createByErrorMsg("User addition failure");
+        } catch (Exception e) {
+            return ServerResponse.createByErrorMsg(e.getMessage());
         }
-
-
-        User user = new User();
-        user.setAccountType(accountType);
-        user.setPhone(phone);
-        user.setIsLock(Integer.valueOf(0));
-        user.setIsLogin(Integer.valueOf(0));
-        user.setIsActive(Integer.valueOf(0));
-        user.setRegTime(new Date());
-
-
-        if (accountType.intValue() == 1) {
-            user.setNickName("模拟用户");
-        }
-
-
-        if (agentId != null) {
-            AgentUser agentUser = this.agentUserMapper.selectByPrimaryKey(agentId);
-            user.setAgentName(agentUser.getAgentName());
-            user.setAgentId(agentUser.getId());
-        }
-
-        int insertCount = this.userMapper.insert(user);
-         dbUser = userMapper.selectOne(queryWrapper);
-        userAssetsServices.getAvailableBalance(EStockType.IN.getCode(),dbUser.getId() );
-        userAssetsServices.availablebalanceChange(EStockType.IN.getCode(),dbUser.getId(),EUserAssets.TOP_UP,new BigDecimal(amt),"","");
-        if (insertCount > 0) {
-            return ServerResponse.createBySuccessMsg("Success");
-        }
-        return ServerResponse.createByErrorMsg("User addition failure");
     }
 
 
@@ -854,7 +843,7 @@
             ServerResponse money = iUserService.getMoney(user.getId());
             List<RUserAssets> rUserAssetsList = (List<RUserAssets>) money.getData();
             RUserAssets rUserAssets = rUserAssetsList.stream()
-                    .filter(stock -> "IN".equals(stock.getAccectType()))
+                    .filter(stock -> EStockType.getDefault().getCode().equals(stock.getAccectType()))
                     .findFirst()
                     .orElse(null);
 
@@ -903,7 +892,7 @@
     }
 
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public ServerResponse updateAmt(Integer userId, String amt, Integer direction) {
         if (userId == null || amt == null || direction == null) {
             return ServerResponse.createByErrorMsg("The parameter cannot be null");
@@ -1145,6 +1134,12 @@
         userInfoVO.setIsActive(user.getIsActive());
         userInfoVO.setAuthMsg(user.getAuthMsg());
         userInfoVO.setVaildNumber(user.getVaildNumber());
+
+        userInfoVO.setLoanLimit(user.getLoanLimit());
+        userInfoVO.setCreditScore(user.getCreditScore());
+        //查询代还款金额
+        BigDecimal spMoney = dkMapper.sumSpMoneyByUserIdAndRStatus(String.valueOf(user.getId()));
+        userInfoVO.setRefundAmount(spMoney);
         return userInfoVO;
     }
 

--
Gitblit v1.9.3