From ad35d23bdd072d7179eb4bfcb588975f37a68f53 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 07 May 2025 00:32:57 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/controller/protol/UserController.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/nq/controller/protol/UserController.java b/src/main/java/com/nq/controller/protol/UserController.java
index dec81eb..50f1ea1 100644
--- a/src/main/java/com/nq/controller/protol/UserController.java
+++ b/src/main/java/com/nq/controller/protol/UserController.java
@@ -6,7 +6,9 @@
 import com.google.common.collect.Maps;
 import com.nq.common.ServerResponse;
 import com.nq.dao.StockConfigMapper;
+import com.nq.dao.UserPositionMapper;
 import com.nq.enums.EStockType;
+import com.nq.enums.EUserAssets;
 import com.nq.pojo.*;
 import com.nq.service.*;
 import com.nq.utils.PropertiesUtil;
@@ -17,6 +19,7 @@
 import java.util.Map;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
@@ -72,6 +75,12 @@
 
     @Autowired
     StockConfigMapper stockConfigMapper;
+
+    @Autowired
+    UserPositionMapper userPositionMapper;
+
+    @Autowired
+    TransactionLogService transactionLogService;
 
     private static final ThreadLocal<Boolean> orderCreated = ThreadLocal.withInitial(() -> false);
     private final Lock lock = new ReentrantLock();
@@ -178,10 +187,39 @@
     //用户平仓操作
     @RequestMapping({"sell.do"})
     @ResponseBody
-    public ServerResponse sell(HttpServletRequest request, @RequestParam("positionSn") String positionSn,@RequestParam("number") Integer number) {
-            return this.iUserPositionService.sell(positionSn,1,number,request);
+    public ServerResponse sell(HttpServletRequest request, @RequestParam("positionSn") String positionSn,
+                               @RequestParam("number") Integer number,
+                               @RequestParam(value = "targetPrice", required = false) String targetPrice
+
+    ) {
+            return this.iUserPositionService.sell(positionSn,1,number,targetPrice,request);
     }
 
+    //用户仓位查询
+    @RequestMapping({"getPosition.do"})
+    @ResponseBody
+    public ServerResponse getPosition(HttpServletRequest request, @RequestParam("stock") String stock,
+                                      @RequestParam("stockType") Integer stockType) {
+        User user = this.iUserService.getCurrentRefreshUser(request);
+        if (user == null) {
+            return ServerResponse.createByErrorMsg("请重新登录",request);
+        }
+        LambdaQueryWrapper<UserPosition> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(UserPosition::getUserId, user.getId());
+        queryWrapper.isNull(UserPosition::getSellOrderId);
+        if (stockType == 1) {
+            queryWrapper.eq(UserPosition::getStockName, stock);
+        } else {
+            queryWrapper.eq(UserPosition::getStockCode, stock);
+        }
+        try {
+            UserPosition userPosition = userPositionMapper.selectOne(queryWrapper);
+            return ServerResponse.createBySuccess(userPosition);
+        }catch (Exception e){
+            log.error("用户仓位查询失败",e.getMessage());
+        }
+        return ServerResponse.createByErrorMsg("当前产品有多个持仓方向,不支持挂单操作!",request);
+    }
 
     //一键用户平仓操作
     @RequestMapping({"allsell.do"})
@@ -249,7 +287,15 @@
                 if(ObjectUtil.isNotEmpty(userPendingorder)){
                     userPendingorder.setPositionType(2);
                 }
+                if(userPendingorder.getHangingOrderType() == 2){
+                    userPendingorderService.updateById(userPendingorder);
+                    return ServerResponse.createBySuccess("撤销挂单成功",request);
+                }
                 userPendingorderService.updateById(userPendingorder);
+                iUserAssetsServices.availablebalanceChange(userPendingorder.getStockGid().equals("ST") ? userPendingorder.getStockGid() : "USD",
+                        userPendingorder.getUserId(),
+                        EUserAssets.THE_DEPOSIT_WILL_BE_RETURNED_IF_THE_ORDER_IS_CANCELLED,
+                        userPendingorder.getOrderTotalPrice(), "", "");
                 return ServerResponse.createBySuccess("撤销挂单成功",request);
             }
         } catch (Exception e) {
@@ -470,5 +516,10 @@
         return iApplyLeverServices.applyLever(applyLever,request);
     }
 
-
+    @RequestMapping({"flowLog.do"})
+    @ResponseBody
+    public ServerResponse flowLog(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                  @RequestParam(value = "pageSize", defaultValue = "100") int pageSize,HttpServletRequest request) {
+        return transactionLogService.flowLog(pageNum,pageSize,request);
+    }
 }

--
Gitblit v1.9.3