From 3ce36ef27a225cb00b0381c777fd38b0bc74e757 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 21 Oct 2024 21:36:56 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java |   26 +++++++++++++++++++++-----
 1 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 7646781..9b143eb 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -15,6 +15,7 @@
 import com.google.common.collect.Lists;
 import com.nq.common.ServerResponse;
 import com.nq.utils.*;
+import com.nq.utils.redis.RedisKeyUtil;
 import com.nq.utils.stock.BuyAndSellUtils;
 import com.nq.utils.stock.GeneratePosition;
 import com.nq.utils.stock.GetStayDays;
@@ -330,7 +331,7 @@
     @Transactional
     public ServerResponse sell(String positionSn, int doType, Integer number,HttpServletRequest request) {
         UserPosition userPosition = this.userPositionMapper.findPositionBySn(positionSn);
-        if(number <= 0 || number > userPosition.getOrderNum()){
+        if(null == number || number <= 0 || number > userPosition.getOrderNum()){
             return ServerResponse.createByErrorMsg("请输入正确的平仓数", request);
         }
         // 手续费率
@@ -396,8 +397,9 @@
             position.setOrderTotalPrice(position.getBuyOrderPrice().multiply(new BigDecimal(number)));
             position.setBuyOrderId(GeneratePosition.getPositionId());
             //修改拆分订单手续费
+            BigDecimal BuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue());
             BigDecimal buyPrice = position.getBuyOrderPrice().multiply(new BigDecimal(position.getOrderNum()));
-            BigDecimal xsPrice = buyPrice.multiply(siitteBuyFee);
+            BigDecimal xsPrice = buyPrice.multiply(BuyFee);
             position.setOrderFee(xsPrice);
 
             //修改原订单
@@ -625,7 +627,18 @@
         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(state == 0){
+                    nowPrice = priceServices.getNowPrice(position.getStockCode());
+                }else{
+                    nowPrice = position.getSellOrderPrice();
+                }
+////                if(state == 1){
+////                    nowPrice = position.getSellOrderPrice();
+////                }else{
+////                    nowPrice = priceServices.getNowPrice(position.getStockCode());
+////                }
+                UserPositionVO userPositionVO = UserPointUtil.assembleUserPositionVO(position,nowPrice);
                 userPositionVO.setOrderTotalPrice(userPositionVO.getOrderTotalPrice().multiply(new BigDecimal(userPositionVO.getOrderLever())));
 
                 StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new LambdaQueryWrapper<StockSubscribe>()
@@ -1688,10 +1701,14 @@
         if (stockDz.getStockNum() > num) {
             return ServerResponse.createByErrorMsg("最小购买数据" + stockDz.getStockNum(), request);
         }
+
+        BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
+
         BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(num.intValue()));
+        BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
         BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
         BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance());
-        if (buyAmt.compareTo(availableBalance) > 0) {
+        if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
             return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
         }
 
@@ -1707,7 +1724,6 @@
         // 创建UserPosition对象
         UserPosition userPosition = getUserPosition(dzId,num, user, stockDz, nowPrice, stock, buyAmt);
         userPositionMapper.insert(userPosition);
-        BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
         BigDecimal buy_fee_amt = siteSettingBuyFee.multiply(buyAmt);
         userAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
         iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", "");

--
Gitblit v1.9.3