From 4bb0b890438349a7cfd7ab2dc30999346a5acf58 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 30 Apr 2025 01:18:10 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/controller/protol/UserController.java | 47 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 45 insertions(+), 2 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..8fcee31 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,9 @@
@Autowired
StockConfigMapper stockConfigMapper;
+
+ @Autowired
+ UserPositionMapper userPositionMapper;
private static final ThreadLocal<Boolean> orderCreated = ThreadLocal.withInitial(() -> false);
private final Lock lock = new ReentrantLock();
@@ -178,10 +184,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 +284,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.CLOSE_POSITION_RETURN_SECURITY_DEPOSIT,
+ userPendingorder.getOrderTotalPrice(), "", "");
return ServerResponse.createBySuccess("撤销挂单成功",request);
}
} catch (Exception e) {
--
Gitblit v1.9.3