From b271ad62a0e9ea1e16a95f342bbdbc3f93783148 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 17 May 2024 15:15:06 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 49 +++++++++++++++++++++++++++++--------------------
1 files changed, 29 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 2d3e8c1..de70f90 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -59,6 +59,9 @@
IUserAssetsServices userAssetsServices;
@Autowired
+ UserAssetsMapper userAssetsMapper;
+
+ @Autowired
ISiteSettingService iSiteSettingService;
@Autowired
@@ -117,8 +120,6 @@
@Autowired
IStockConfigServices iStockConfigServices;
- @Autowired
- private UserAssetsMapper userAssetsMapper;
@Transactional
public ServerResponse buy(Integer stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, HttpServletRequest request) {
@@ -577,6 +578,8 @@
if (userPositions.size() > 0) {
for (UserPosition position : userPositions) {
UserPositionVO userPositionVO = UserPointUtil.assembleUserPositionVO(position, priceServices.getNowPrice(position.getStockCode()));
+ userPositionVO.setOrderTotalPrice(userPositionVO.getOrderTotalPrice().multiply(new BigDecimal(userPositionVO.getOrderLever())));
+ userPositionVO.setProfitAndLose(userPositionVO.getProfitAndLose().multiply(new BigDecimal(userPositionVO.getOrderLever())));
userPositionVOS.add(userPositionVO);
}
}
@@ -1206,7 +1209,7 @@
userPosition.setIsLock(Integer.valueOf(0));
- userPosition.setOrderLever(10);
+ userPosition.setOrderLever(1);
//递延费特殊处理
@@ -1250,6 +1253,7 @@
return ServerResponse.createByErrorMsg("新股转持仓失败");
}
userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userPosition.getOrderTotalPrice()));
+ userAssetsMapper.updateById(userAssets);
if (ret > 0) {
userStockSubscribe.setStatus(5);
userStockSubscribeMapper.update1(userStockSubscribe);
@@ -1534,10 +1538,11 @@
* @return
*/
@Transactional
- public ServerResponse buyDz(String stockCode, String password, Integer num, HttpServletRequest request) throws Exception {
+ public synchronized ServerResponse buyDz(String stockCode, String password, Integer num, HttpServletRequest request) throws Exception {
/*实名认证开关开启*/
SiteProduct siteProduct = iSiteProductService.getProductSetting();
User user = this.iUserService.getCurrentRefreshUser(request);
+
if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
return ServerResponse.createByErrorMsg("Order failed, please first real name authentication");
}
@@ -1624,25 +1629,29 @@
@Override
@Transactional
public void stockConstraint(List<UserPosition> list) {
- SiteSetting siteSetting = iSiteSettingService.getSiteSetting();
+ try {
+ SiteSetting siteSetting = iSiteSettingService.getSiteSetting();
- for (UserPosition position : list) {
- UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
- .eq(UserAssets::getUserId, position.getUserId())
- .eq(UserAssets::getAccectType, "IN")
- );
- if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
- continue;
- }
- //平仓检查
- Result result = getResult(position);
- if (result == null) continue;
+ for (UserPosition position : list) {
+ UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
+ .eq(UserAssets::getUserId, position.getUserId())
+ .eq(UserAssets::getAccectType, "IN")
+ );
+ if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+ continue;
+ }
+ //平仓检查
+ Result result = getResult(position);
+ if (result == null) continue;
- Integer liquidation = 0;
- liquidation = isLiquidation(position, result.signum, result.profit, liquidation);
- if(liquidation != 0){
- extracted(position, result.nowPrice, result.stock,liquidation);
+ Integer liquidation = 0;
+ liquidation = isLiquidation(position, result.signum, result.profit, liquidation);
+ if(liquidation != 0){
+ extracted(position, result.nowPrice, result.stock,liquidation);
+ }
}
+ }catch (Exception e){
+ log.error("强制平仓--->错误",e);
}
}
--
Gitblit v1.9.3