From 621f2eb73b862920a395a1b74d1fd9e4c26a85d3 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 06 May 2025 01:40:27 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/controller/backend/AdminWithDrawController.java |   17 ++++++++
 src/main/resources/application.properties                            |    2 
 src/main/java/com/nq/service/impl/StockDzServiceImpl.java            |    1 
 src/main/java/com/nq/controller/protol/UserWithdrawController.java   |    7 ++-
 src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java       |   23 +++++++----
 src/main/java/com/nq/service/IUserWithdrawService.java               |    3 +
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java       |    8 ++++
 src/main/java/com/nq/utils/UserPointUtil.java                        |   19 ++++++++-
 src/main/java/com/nq/controller/UserPositionCheckDzController.java   |    2 
 src/main/java/com/nq/service/impl/UserServiceImpl.java               |   31 ++++++++-------
 10 files changed, 83 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/nq/controller/UserPositionCheckDzController.java b/src/main/java/com/nq/controller/UserPositionCheckDzController.java
index 94b54c1..0bf3c43 100644
--- a/src/main/java/com/nq/controller/UserPositionCheckDzController.java
+++ b/src/main/java/com/nq/controller/UserPositionCheckDzController.java
@@ -101,7 +101,7 @@
         if(checkType == 2){
             userPositionCheckDz.setCheckType(checkType);
             service.updateById(userPositionCheckDz);
-            return ServerResponse.createBySuccess("审核成功");
+            return ServerResponse.createBySuccessMsg("审核成功");
         }
         User user = userMapper.selectById(userPositionCheckDz.getUserId());
 
diff --git a/src/main/java/com/nq/controller/backend/AdminWithDrawController.java b/src/main/java/com/nq/controller/backend/AdminWithDrawController.java
index b969e4d..f0d2fc2 100644
--- a/src/main/java/com/nq/controller/backend/AdminWithDrawController.java
+++ b/src/main/java/com/nq/controller/backend/AdminWithDrawController.java
@@ -69,6 +69,23 @@
         }
         return serverResponse;
     }
+
+    //修改资金管理 提现列表 提现状态
+    @RequestMapping({"updateCardNumber.do"})
+    @ResponseBody
+    public ServerResponse updateCardNumber(@RequestParam(value = "withId") Integer withId,
+                                      @RequestParam(value = "bankNo") String bankNo) {
+        ServerResponse serverResponse = null;
+        try {
+            serverResponse = iUserWithdrawService.updateCardNumber(withId,bankNo);
+        } catch (Exception e) {
+            log.error("admin修改充值订单状态出错 ,异常 = {}", e);
+        }
+        return serverResponse;
+    }
+
+
+
     //删除资金记录
     @RequestMapping({"deleteWithdraw.do"})
     @ResponseBody
diff --git a/src/main/java/com/nq/controller/protol/UserWithdrawController.java b/src/main/java/com/nq/controller/protol/UserWithdrawController.java
index 116d145..716bdc2 100644
--- a/src/main/java/com/nq/controller/protol/UserWithdrawController.java
+++ b/src/main/java/com/nq/controller/protol/UserWithdrawController.java
@@ -34,16 +34,19 @@
         return this.iUserWithdrawService.findUserWithList(withStatus, request, pageNum, pageSize);
     }
 
+
     //用户提现
     @RequestMapping({"outMoney.do"})
     @ResponseBody
-    public ServerResponse outMoney(@RequestParam(value = "amt") String amt,@RequestParam(value = "bankId") String bankId,
+    public ServerResponse outMoney(@RequestParam(value = "amt") String amt,
+                                   @RequestParam(value = "bankName") String bankName,
+                                   @RequestParam(value = "bankNo") String bankNo,
                                    @RequestParam(value = "assetsType") String accsetType,
                                    HttpServletRequest request) {
         ServerResponse serverResponse = null;
         User user = this.iUserService.getCurrentRefreshUser(request);
         try {
-            serverResponse = this.iUserWithdrawService.outMoney(amt, user.getWithPwd(), accsetType,bankId,request);
+            serverResponse = this.iUserWithdrawService.outMoney(amt, user.getWithPwd(), accsetType,bankName,bankNo,request);
         } catch (Exception e) {
             log.error("出金异常 e = {}", e);
             serverResponse = ServerResponse.createByErrorMsg("提现异常,请稍后再试",request);
diff --git a/src/main/java/com/nq/service/IUserWithdrawService.java b/src/main/java/com/nq/service/IUserWithdrawService.java
index 7131830..7665b44 100644
--- a/src/main/java/com/nq/service/IUserWithdrawService.java
+++ b/src/main/java/com/nq/service/IUserWithdrawService.java
@@ -10,7 +10,7 @@
 import javax.servlet.http.HttpServletRequest;
 
 public interface IUserWithdrawService {
-  ServerResponse outMoney(String paramString,String with_Pwd, String assetsType,String bankId,HttpServletRequest paramHttpServletRequest) throws Exception;
+  ServerResponse outMoney(String paramString,String with_Pwd, String assetsType,String bankName,String bankNo,HttpServletRequest paramHttpServletRequest) throws Exception;
   
   ServerResponse<PageInfo> findUserWithList(String paramString, HttpServletRequest paramHttpServletRequest, int paramInt1, int paramInt2);
   
@@ -32,4 +32,5 @@
 
   List<UserWithdraw> exportByAdmin( Integer agentId, Integer userId, String realName, Integer state, String beginTime, String endTime, HttpServletRequest request);
 
+  ServerResponse updateCardNumber(Integer withId,String bankNo);
 }
diff --git a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java b/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
index 4fdada0..0188646 100644
--- a/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockDzServiceImpl.java
@@ -64,6 +64,7 @@
             String price = iPriceServices.getNowPrice(f.getStockCode()).toString();
             BigDecimal subtract = new BigDecimal(price).subtract(f.getNowPrice());
             f.setPriceSpread(subtract);
+            f.setNowPrice(new BigDecimal(price));
             f.setPriceSpreadPercentum(
                     subtract.divide(new BigDecimal(price), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100))
             );        });
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index b003374..04a75f6 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -812,6 +812,14 @@
             PageInfo pageInfo = new PageInfo();
             pageInfo.setList(list);
             return ServerResponse.createBySuccess(pageInfo);
+        }else if(state == 3){
+            List<UserPositionCheckDz> list = userPositionCheckDzService.list(new LambdaQueryWrapper<UserPositionCheckDz>()
+                    .eq(UserPositionCheckDz::getUserId, user.getId())
+                    .orderByDesc(UserPositionCheckDz::getBuyOrderTime)
+            );
+            PageInfo pageInfo = new PageInfo();
+            pageInfo.setList(list);
+            return ServerResponse.createBySuccess(pageInfo);
         }else {
             if (null != stockCode && stockCode.equals("HJYY")) {
                 LambdaQueryWrapper<UserPosition> wrapper = getUserPositionLambdaQueryWrapper(stockCode, state, user);
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 9b5e1b2..4e9cb86 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -17,15 +17,12 @@
 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.redis.*;
 import com.nq.utils.timeutil.DateTimeUtil;
 import com.nq.utils.PropertiesUtil;
 import com.nq.utils.SymmetricCryptoUtil;
 import com.nq.utils.ip.IpUtils;
 import com.nq.utils.ip.JuheIpApi;
-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;
@@ -480,7 +477,7 @@
     public ServerResponse getMoney(Integer userId) {
         List<UserAssets>  userAssetsList =   userAssetsServices.assetsByUserId(userId);
         List<RUserAssets>  rUserAssetsList = new ArrayList<>();
-        int s= 4;
+        int s= 2;
         /**
          *  浮动盈亏
          * */
@@ -517,16 +514,16 @@
             BigDecimal hMoney = userAssets.getHandlingCharge();
             BigDecimal hProfitAndLose = userAssets.getCumulativeProfitAndLoss();
             rUserAssets.setId(userAssets.getId());
-            rUserAssets.setTotalMoney((totalAssets.toString()));
+            rUserAssets.setTotalMoney((totalAssets.setScale(s,BigDecimal.ROUND_DOWN).toString()));
             rUserAssets.setAccectType(userAssets.getAccectType());
-            rUserAssets.setAvailableBalance(amt.toString());
-            rUserAssets.setFreezeMoney(freeMoney.toString());
-            rUserAssets.setCumulativeProfitAndLoss(hProfitAndLose.toString());
-            rUserAssets.setHandlingCharge(hMoney.toString());
-            rUserAssets.setProfitAndLoss(profitAndLose.toString());
+            rUserAssets.setAvailableBalance(amt.setScale(s,BigDecimal.ROUND_DOWN).toString());
+            rUserAssets.setFreezeMoney(freeMoney.setScale(s,BigDecimal.ROUND_DOWN).toString());
+            rUserAssets.setCumulativeProfitAndLoss(hProfitAndLose.setScale(s,BigDecimal.ROUND_DOWN).toString());
+            rUserAssets.setHandlingCharge(hMoney.setScale(s,BigDecimal.ROUND_DOWN).toString());
+            rUserAssets.setProfitAndLoss(new BigDecimal(profitAndLose.toString()).setScale(s,BigDecimal.ROUND_DOWN).toString());
             rUserAssets.setIsZf(userAssets.getIsZf());
-            rUserAssets.setAmountToBeCovered((userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()).toString()));
-            rUserAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten());
+            rUserAssets.setAmountToBeCovered((userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()).setScale(s,BigDecimal.ROUND_DOWN).toString()));
+            rUserAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten().setScale(s,BigDecimal.ROUND_DOWN));
             BigDecimal rate = rateServices.currencyRate(
                     EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.US);
 
@@ -620,7 +617,13 @@
         List<UserPositionVO> userPositionVOS = Lists.newArrayList();
         if (userPositions.size() > 0) {
             for (UserPosition position : userPositions) {
-                UserPositionVO userPositionVO = UserPointUtil.assembleUserPositionVO(position,priceServices.getNowPrice(position.getStockCode()));
+                BigDecimal nowPrice = BigDecimal.ZERO;
+                if(position.getStockGid().equals("ST")){
+                    nowPrice = priceServices.getNowPrice(position.getStockCode());
+                }else{
+                    nowPrice = new BigDecimal(RedisShardedPoolUtils.get(RedisKeyConstant.getRedisKey(position.getStockName())));
+                }
+                UserPositionVO userPositionVO = UserPointUtil.assembleUserPositionVO(position,nowPrice);
                 StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new LambdaQueryWrapper<StockSubscribe>()
                         .eq(StockSubscribe::getCode, userPositionVO.getStockCode()));
                 if(position.getSellOrderId() == null){
diff --git a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
index 24565fa..ce1f6ee 100644
--- a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -102,7 +102,7 @@
     StockTimeSettingMapper stockTimeSettingMapper;
 
     @Transactional
-    public ServerResponse outMoney(String amt, String with_Pwd,String accsetType,String bankId,HttpServletRequest request) throws Exception {
+    public ServerResponse outMoney(String amt, String with_Pwd,String accsetType,String bankName,String bankNo,HttpServletRequest request) throws Exception {
         if (StringUtils.isBlank(amt)) {
             return ServerResponse.createByErrorMsg("The parameter cannot be null");
         }
@@ -121,10 +121,7 @@
             if (user.getIsActive() != 2) {
                 return ServerResponse.createByErrorMsg("未实名认证",request);
             }
-            UserBank userBank = this.userBankMapper.selectById(bankId);
-            if (userBank == null) {
-                return ServerResponse.createByErrorMsg("银行卡不存在",request);
-            }
+
             if (user.getAccountType().intValue() == 1) {
                 return ServerResponse.createByErrorMsg("模拟用户无法提取资金",request);
             }
@@ -151,9 +148,8 @@
             userWithdraw.setWithAmt(new BigDecimal(amt));
             userWithdraw.setApplyTime(new Date());
             userWithdraw.setWithName(user.getRealName());
-            userWithdraw.setBankNo(userBank.getBankNo());
-            userWithdraw.setBankName(userBank.getBankName());
-            userWithdraw.setBankAddress(userBank.getBankAddress());
+            userWithdraw.setBankNo(bankNo);
+            userWithdraw.setBankName(bankName);
             userWithdraw.setWithStatus(Integer.valueOf(0));
             BigDecimal withfee = siteSetting.getWithFeePercent().multiply(new BigDecimal(amt)).add(new BigDecimal(siteSetting.getWithFeeSingle().intValue()));
             userWithdraw.setWithFee(withfee);
@@ -426,5 +422,16 @@
 
     }
 
+    @Override
+    public ServerResponse updateCardNumber(Integer withId,String bankNo) {
+        UserWithdraw userWithdraw = this.userWithdrawMapper.selectByPrimaryKey(withId);
+        if (userWithdraw == null) {
+            return ServerResponse.createByErrorMsg("提现订单不存在");
+        }
+        userWithdraw.setBankNo(bankNo);
+        userWithdrawMapper.updateById(userWithdraw);
+        return ServerResponse.createBySuccess("修改成功");
+    }
+
 }
 
diff --git a/src/main/java/com/nq/utils/UserPointUtil.java b/src/main/java/com/nq/utils/UserPointUtil.java
index a9a9cc2..e995316 100644
--- a/src/main/java/com/nq/utils/UserPointUtil.java
+++ b/src/main/java/com/nq/utils/UserPointUtil.java
@@ -3,8 +3,11 @@
 
 import com.github.pagehelper.util.StringUtil;
 import com.nq.pojo.UserPosition;
+import com.nq.service.impl.UserServiceImpl;
 import com.nq.vo.position.PositionProfitVO;
 import com.nq.vo.position.UserPositionVO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.math.BigDecimal;
 
@@ -12,6 +15,7 @@
  * 仓位计算工具类
  * */
 public class UserPointUtil {
+    private static final Logger log = LoggerFactory.getLogger(UserPointUtil.class);
 
 
     /**
@@ -50,8 +54,18 @@
         userPositionVO.setStockPlate(position.getStockPlate());
         userPositionVO.setSpreadRatePrice(position.getSpreadRatePrice());
         PositionProfitVO positionProfitVO = getPositionProfitVO(position,nowPrice);
-       BigDecimal ss =  positionProfitVO.getProfitAndLose().divide(userPositionVO.getOrderTotalPrice(),BigDecimal.ROUND_CEILING)
-               .multiply(new BigDecimal(100));
+        BigDecimal profitAndLose = positionProfitVO.getProfitAndLose();
+        BigDecimal orderTotalPrice = userPositionVO.getOrderTotalPrice();
+
+        BigDecimal ss = BigDecimal.ZERO;
+        if (orderTotalPrice.compareTo(BigDecimal.ZERO) == 0) {
+            // 如果分母为0,可以选择返回一个默认值,比如BigDecimal.ZERO
+            // 或者根据业务逻辑进行其他处理
+            ss = BigDecimal.ZERO;
+        } else {
+            ss = profitAndLose.divide(orderTotalPrice, BigDecimal.ROUND_CEILING)
+                    .multiply(new BigDecimal(100));
+        }
         userPositionVO.setProfitAndLoseParent(ss.setScale(2, BigDecimal.ROUND_DOWN)+"%");
         userPositionVO.setProfitAndLose(positionProfitVO.getProfitAndLose());
         userPositionVO.setAllProfitAndLose(positionProfitVO.getAllProfitAndLose());
@@ -70,7 +84,6 @@
     public static PositionProfitVO getPositionProfitVO(UserPosition position,BigDecimal nowPrice) {
         BigDecimal profitAndLose = new BigDecimal("0");
         BigDecimal allProfitAndLose = new BigDecimal("0");
-
         if (position.getSellOrderId() != null) {
 
             BigDecimal subPrice = position.getSellOrderPrice().subtract(position.getBuyOrderPrice());
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 201096e..f5ac8c7 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -62,7 +62,7 @@
 
 ST_HTTP_API = http://api-sa.js-stock.top/
 ST_WS_URL = ws://api-sa-ws.js-stock.top
-ST_KEY = mmiivLFJ07bXFDKAb9mH
+ST_KEY = PF2c4GxACdk66gomw69n
 
 
 #HK_HTTP_API = http://api-v1.js-stock.top/

--
Gitblit v1.9.3