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/backend/AdminPositionController.java | 70 ++++++++++++++++++++++++++++++++++-
1 files changed, 68 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/nq/controller/backend/AdminPositionController.java b/src/main/java/com/nq/controller/backend/AdminPositionController.java
index 0def22b..248ffc3 100644
--- a/src/main/java/com/nq/controller/backend/AdminPositionController.java
+++ b/src/main/java/com/nq/controller/backend/AdminPositionController.java
@@ -1,12 +1,23 @@
package com.nq.controller.backend;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.nq.common.ServerResponse;
+import com.nq.dao.UserPositionMapper;
+import com.nq.enums.EConfigKey;
+import com.nq.enums.EUserAssets;
+import com.nq.pojo.UserAssets;
+import com.nq.pojo.UserPosition;
+import com.nq.service.IStockConfigServices;
import com.nq.service.IUserPositionService;
import javax.servlet.http.HttpServletRequest;
+import com.nq.service.impl.UserAssetsServices;
+import com.nq.utils.UserPointUtil;
+import com.nq.utils.stock.GeneratePosition;
+import com.nq.vo.position.PositionProfitVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,6 +33,8 @@
import org.springframework.web.bind.annotation.ResponseBody;
import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
@Controller
@@ -32,13 +45,23 @@
@Autowired
IUserPositionService iUserPositionService;
+ @Autowired
+ UserPositionMapper userPositionMapper;
+
+ @Autowired
+ IStockConfigServices iStockConfigServices;
+
+ @Autowired
+ UserAssetsServices userAssetsServices;
+
+
//分页查询持仓管理 融资持仓单信息/融资平仓单信息及模糊查询
@RequestMapping({"list.do"})
@ResponseBody
public ServerResponse list(@RequestParam(value = "agentId", required = false)
Integer agentId, @RequestParam(value = "positionType", required = false) Integer positionType, @RequestParam(value = "state", required = false) Integer state, @RequestParam(value = "userId", required = false) Integer userId, @RequestParam(value = "positionSn", required = false) String positionSn, @RequestParam(value = "beginTime", required = false) String beginTime, @RequestParam(value = "endTime", required = false) String endTime, @RequestParam(value = "pageNum", defaultValue = "1")
- int pageNum, @RequestParam(value = "pageSize", defaultValue = "12") int pageSize, @RequestParam(value = "phone", required = false) String phone,HttpServletRequest request) {
- return this.iUserPositionService.listByAdmin(agentId, positionType, state, userId, positionSn, beginTime, endTime, pageNum, pageSize,phone);
+ int pageNum, @RequestParam(value = "pageSize", defaultValue = "12") int pageSize, @RequestParam(value = "phone", required = false) String phone,@RequestParam(value = "productType", required = false) String productType,HttpServletRequest request) {
+ return this.iUserPositionService.listByAdmin(agentId, positionType, state, userId, positionSn, beginTime, endTime, pageNum, pageSize,phone,productType);
}
//持仓管理 强制平仓操作
@@ -67,6 +90,49 @@
return this.iUserPositionService.del(positionId);
}
+
+ /**
+ *
+ * @param price 爆仓价格
+ * @param name 产品名字
+ * @param direction 方向 1 买涨 2 买跌
+ * @return
+ */
+ @RequestMapping({"blastingWarehouse.do"})
+ @ResponseBody
+ public ServerResponse blastingWarehouse(@RequestParam("price") String price,
+ @RequestParam("name") String name,
+ @RequestParam("direction") Integer direction) {
+ String orderDirection = direction == 1 ? "买涨" : "买跌";
+ List<UserPosition> userPositions = userPositionMapper.selectList(new LambdaQueryWrapper<>(UserPosition.class)
+ .eq(UserPosition::getStockName, name)
+ .eq(UserPosition::getOrderDirection, orderDirection)
+ .eq(UserPosition::getStockCode, "HJYY")
+ .isNull(UserPosition::getSellOrderId)
+ );
+ // 手续费率
+ BigDecimal siitteBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.SELL_HANDLING_CHARGE.getCode()).getCValue());
+ userPositions.forEach(f->{
+ f.setSellOrderId(GeneratePosition.getPositionId());
+ f.setSellOrderPrice(new BigDecimal(price));
+ f.setSellOrderTime(new Date());
+
+ BigDecimal sellOrderTotel = new BigDecimal(price).multiply(new BigDecimal(f.getOrderNum()));
+ BigDecimal xsPrice = sellOrderTotel.multiply(siitteBuyFee);
+ f.setOrderFee(f.getOrderFee().add(xsPrice));
+ userPositionMapper.updateById(f);
+ UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("USD", f.getUserId());
+ userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(f.getOrderTotalPrice()));
+ userAssetsServices.availablebalanceChange("USD",
+ f.getUserId(),
+ EUserAssets.CALL,
+ f.getOrderTotalPrice(), "", "");
+ });
+ return ServerResponse.createBySuccessMsg("执行成功!");
+ }
+
+
+
//创建持仓单
@RequestMapping({"create.do"})
@ResponseBody
--
Gitblit v1.9.3