From f3b9e9f5024c13c6e70711a3ec98b4538378bd85 Mon Sep 17 00:00:00 2001
From: peter <14100000001@qq.com>
Date: Wed, 29 Oct 2025 13:53:57 +0800
Subject: [PATCH] 10.24二开,场外买入卖出,挂单
---
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 85 +++++++++++++++++++++++++++---------------
1 files changed, 54 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index fe84584..319e0f6 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -128,11 +128,13 @@
@Autowired
UserPositionCheckDzService userPositionCheckDzService;
+ @Autowired
+ UserPendingorderMapper userPendingorderMapper;
@Transactional
- public ServerResponse buy(Integer stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, HttpServletRequest request) {
+ public ServerResponse buy(Integer stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget,BigDecimal preMarketPrice, HttpServletRequest request) {
SiteProduct siteProduct = iSiteProductService.getProductSetting();
@@ -203,37 +205,58 @@
if (stopTarget != null && stopTarget.compareTo(new BigDecimal("0")) > 0) {
userPosition.setStopTargetPrice(stopTarget);
}
- userPosition.setPositionType(user.getAccountType());
- userPosition.setPositionSn(KeyUtils.getUniqueKey());
- userPosition.setUserId(user.getId());
- userPosition.setNickName(user.getRealName());
- userPosition.setAgentId(user.getAgentId());
- userPosition.setStockCode(stock.getStockCode());
- userPosition.setStockName(stock.getStockName());
- userPosition.setStockGid(stock.getStockType());
- userPosition.setStockSpell(stock.getStockSpell());
- userPosition.setBuyOrderId(GeneratePosition.getPositionId());
- userPosition.setBuyOrderTime(new Date());
- userPosition.setBuyOrderPrice(nowPrice);
- userPosition.setOrderDirection((buyType.intValue() == 0) ? "买涨" : "买跌");
- userPosition.setOrderNum(buyNum);
- if (stock.getStockPlate() != null) {
- userPosition.setStockPlate(stock.getStockPlate());
- }
- userPosition.setIsLock(Integer.valueOf(0));
- userPosition.setOrderLever(lever);
- userPosition.setOrderTotalPrice(buyAmt);
- // 手续费
+ //判断是否盘前,和价格
+ StockSetting stockSetting = tradingHourService.preMarketPrice(stock.getStockCode());
+ if(null != preMarketPrice && preMarketPrice.compareTo(new BigDecimal(0)) > 0 && null != stockSetting && preMarketPrice.compareTo(new BigDecimal(stockSetting.getPrice())) != 0){
+ //挂单
+ UserPendingorder userPendingorder = new UserPendingorder();
+ userPendingorder.setUserId(user.getId());
+ userPendingorder.setStockId(String.valueOf(stockId));
+ userPendingorder.setBuyNum(buyNum);
+ userPendingorder.setBuyType(buyType);
+ userPendingorder.setLever(lever);
+ userPendingorder.setProfitTarget(profitTarget);
+ userPendingorder.setStopTarget(stopTarget);
+ userPendingorder.setNowPrice(new BigDecimal(0));
+ userPendingorder.setTargetPrice(preMarketPrice);
+ userPendingorder.setAddTime(new Date());
+ userPendingorder.setStatus(0);
+ userPendingorder.setBuyAmt(buyAmt);
+ int ret = userPendingorderMapper.insert(userPendingorder);
+ }else {
+ userPosition.setPositionType(user.getAccountType());
+ userPosition.setPositionSn(KeyUtils.getUniqueKey());
+ userPosition.setUserId(user.getId());
+ userPosition.setNickName(user.getRealName());
+ userPosition.setAgentId(user.getAgentId());
+ userPosition.setStockCode(stock.getStockCode());
+ userPosition.setStockName(stock.getStockName());
+ userPosition.setStockGid(stock.getStockType());
+ userPosition.setStockSpell(stock.getStockSpell());
+ userPosition.setBuyOrderId(GeneratePosition.getPositionId());
+ userPosition.setBuyOrderTime(new Date());
+ userPosition.setBuyOrderPrice(nowPrice);
+ userPosition.setOrderDirection((buyType.intValue() == 0) ? "买涨" : "买跌");
+ userPosition.setOrderNum(buyNum);
+ if (stock.getStockPlate() != null) {
+ userPosition.setStockPlate(stock.getStockPlate());
+ }
+ userPosition.setIsLock(Integer.valueOf(0));
+ userPosition.setOrderLever(lever);
+ userPosition.setOrderTotalPrice(buyAmt);
+ // 手续费
- userPosition.setOrderFee(orderFree);
- userPosition.setOrderSpread(BigDecimal.ZERO);
- userPosition.setSpreadRatePrice(BigDecimal.ZERO);
- BigDecimal profit_and_lose = new BigDecimal("0");
- userPosition.setProfitAndLose(profit_and_lose);
- userPosition.setAllProfitAndLose(profit_and_lose.add(orderFree));
- userPosition.setOrderStayDays(Integer.valueOf(0));
- userPosition.setOrderStayFee(BigDecimal.ZERO);
- userPositionMapper.insert(userPosition);
+ userPosition.setOrderFee(orderFree);
+ userPosition.setOrderSpread(BigDecimal.ZERO);
+ userPosition.setSpreadRatePrice(BigDecimal.ZERO);
+ BigDecimal profit_and_lose = new BigDecimal("0");
+ userPosition.setProfitAndLose(profit_and_lose);
+ userPosition.setAllProfitAndLose(profit_and_lose.add(orderFree));
+ userPosition.setOrderStayDays(Integer.valueOf(0));
+ userPosition.setOrderStayFee(BigDecimal.ZERO);
+ userPositionMapper.insert(userPosition);
+
+ }
iUserAssetsServices.availablebalanceChange(stock.getStockType(), user.getId(), EUserAssets.BUY, buyAmt.negate(), "", "");
iUserAssetsServices.availablebalanceChange(stock.getStockType(), user.getId(), EUserAssets.HANDLING_CHARGE, orderFree, "", "");
return ServerResponse.createBySuccessMsg("下单成功", request);
--
Gitblit v1.9.3