From 0dd4d58348ea76cb24bbe3b862fec6ebbd35b78a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 23 Jan 2026 12:40:00 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 42 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 66da0ec..8919907 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -106,6 +106,8 @@
StockDzMapper stockDzMapper;
@Autowired
StockVipMapper stockVipMapper;
+ @Autowired
+ FundFlowMapper fundFlowMapper;
@Transactional
@@ -779,6 +781,8 @@
BigDecimal reckon_all = user_all_amt.add(all_profit);
//修改用戶可用余額=當前可用余額+總盈虧+買入總金額+追加保證金
BigDecimal reckon_enable = user_enable_amt.add(all_profit).add(freez_amt).add(userPosition.getMarginAdd());
+ //锁定提现金额
+ BigDecimal lockAmount = reckon_enable.subtract(user_enable_amt);
log.info("用戶平倉後的總資金 = {} , 可用資金 = {}", reckon_all, reckon_enable);
user.setUserAmt(reckon_all);
@@ -790,6 +794,18 @@
log.error("用戶平倉】修改用戶金額出錯");
throw new Exception("用戶平倉】修改用戶金額出錯");
}
+ if (lockAmount.compareTo(BigDecimal.ZERO) > 0) {
+ Date date = new Date();
+ FundFlow fundFlow = new FundFlow();
+ fundFlow.setUserId(userPosition.getUserId());
+ fundFlow.setAmount(lockAmount);
+ fundFlow.setUsedAmount(BigDecimal.ZERO);
+ fundFlow.setWithdrawDate(DateTimeUtil.addDayAndGetZeroTime(date, 1));
+ fundFlow.setStatus(0);
+ fundFlow.setCreateTime(date);
+ fundFlowMapper.insert(fundFlow);
+ }
+
UserCashDetail ucd = new UserCashDetail();
ucd.setPositionId(userPosition.getId());
@@ -1985,6 +2001,10 @@
userPosition.setStockCode(userStockSubscribe.getNewCode());
userPosition.setStockName(userStockSubscribe.getNewName());
userPosition.setStockGid(stockSubscribe.getStockType() + userStockSubscribe.getNewCode());
+ Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", userStockSubscribe.getNewCode()));
+ if (stock != null) {
+ userPosition.setStockGid(stock.getStockGid());
+ }
userPosition.setBuyOrderId(GeneratePosition.getPositionId());
userPosition.setBuyOrderTime(new Date());
@@ -2111,18 +2131,21 @@
return ServerResponse.createByErrorMsg("下单失败,系统设置错误");
}
StockDz stockDz = null;
- stockDz = this.stockDzMapper.selectOne(new QueryWrapper<StockDz>().eq("stock_code", stockCode));
- String am_begin = siteSetting.getTransAmBeginhk();
- String am_end = siteSetting.getTransAmEndhk();
- String pm_begin = siteSetting.getTransPmBeginhk();
- String pm_end = siteSetting.getTransPmEndhk();
- boolean am_flag = BuyAndSellUtils.isTransTime(am_begin, am_end);
- boolean pm_flag = BuyAndSellUtils.isTransTime(pm_begin, pm_end);
- log.info("是否在大宗交易时间 = {}", Boolean.valueOf(pm_flag));
+ stockDz = this.stockDzMapper.selectOne(new QueryWrapper<StockDz>().eq("stock_gid", stockCode));
+// String am_begin = siteSetting.getTransAmBeginhk();
+// String am_end = siteSetting.getTransAmEndhk();
+// String pm_begin = siteSetting.getTransPmBeginhk();
+// String pm_end = siteSetting.getTransPmEndhk();
+// boolean am_flag = BuyAndSellUtils.isTransTime(am_begin, am_end);
+// boolean pm_flag = BuyAndSellUtils.isTransTime(pm_begin, pm_end);
+// log.info("是否在大宗交易时间 = {}", Boolean.valueOf(pm_flag));
//15-15:30
// if (!pm_flag) {
// return ServerResponse.createByErrorMsg("下单失败,不在交易时段内");
// }
+ if(stockDz.getStartTime().getTime() > new Date().getTime() || stockDz.getEndTime().getTime() < new Date().getTime()){
+ return ServerResponse.createByErrorMsg("不在交易时间之内");
+ }
if (siteProduct.getHolidayDisplay()) {
return ServerResponse.createByErrorMsg("周末或节假日不能交易!");
}
@@ -2424,18 +2447,20 @@
return ServerResponse.createByErrorMsg("下單失敗,系統設置錯誤");
}
StockVip stockVip = null;
- stockVip = this.stockVipMapper.selectOne(new QueryWrapper<StockVip>().eq("stock_code", stockCode));
- String am_begin = siteSetting.getTransAmBeginhk();
- String am_end = siteSetting.getTransAmEndhk();
- String pm_begin = siteSetting.getTransPmBeginhk();
- String pm_end = siteSetting.getTransPmEndhk();
- boolean am_flag = BuyAndSellUtils.isTransTime(am_begin, am_end);
- boolean pm_flag = BuyAndSellUtils.isTransTime(pm_begin, pm_end);
- log.info("是否在VIP交易时间 = {}", Boolean.valueOf(pm_flag));
- //15-15:30
+ stockVip = this.stockVipMapper.selectOne(new QueryWrapper<StockVip>().eq("stock_gid", stockCode));
+// String am_begin = siteSetting.getTransAmBeginhk();
+// String am_end = siteSetting.getTransAmEndhk();
+// String pm_begin = siteSetting.getTransPmBeginhk();
+// String pm_end = siteSetting.getTransPmEndhk();
+// boolean am_flag = BuyAndSellUtils.isTransTime(am_begin, am_end);
+// boolean pm_flag = BuyAndSellUtils.isTransTime(pm_begin, pm_end);
+// log.info("是否在VIP交易时间 = {}", Boolean.valueOf(pm_flag));
// if (!pm_flag) {
// return ServerResponse.createByErrorMsg("下单失败,不在交易时段内");
// }
+ if(stockVip.getStartTime().getTime() > new Date().getTime() || stockVip.getEndTime().getTime() < new Date().getTime()){
+ return ServerResponse.createByErrorMsg("不在交易时间之内");
+ }
if (siteProduct.getHolidayDisplay()) {
return ServerResponse.createByErrorMsg("周末或节假日不能交易!");
}
--
Gitblit v1.9.3