From 5ed78846f18a51a66869b44491a53065b058549d Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Wed, 21 Jan 2026 18:27:35 +0800
Subject: [PATCH] 新增可取资金
---
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index a7d5d1f..5993506 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());
--
Gitblit v1.9.3