From 229a537a5f8ca42d466f1a0e952b8b256c2418fc Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 29 Oct 2024 13:41:40 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 37 ++++++++++++++++++++-----------------
1 files changed, 20 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 887f287..7265221 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -331,7 +331,7 @@
@Transactional
public ServerResponse sell(String positionSn, int doType, Integer number,HttpServletRequest request) {
UserPosition userPosition = this.userPositionMapper.findPositionBySn(positionSn);
- if(number <= 0 || number > userPosition.getOrderNum()){
+ if(null == number || number <= 0 || number > userPosition.getOrderNum()){
return ServerResponse.createByErrorMsg("请输入正确的平仓数", request);
}
// 手续费率
@@ -627,17 +627,17 @@
List<UserPositionVO> userPositionVOS = Lists.newArrayList();
if (userPositions.size() > 0) {
for (UserPosition position : userPositions) {
- Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code",position.getStockCode()));
BigDecimal nowPrice = BigDecimal.ZERO;
- if(null != stock){
- StockRealTimeBean stockRealTimeBean = RedisKeyUtil.getCacheRealTimeStock(stock);
- nowPrice = new BigDecimal(stockRealTimeBean.getLast());
+ if(state == 0){
+ nowPrice = priceServices.getNowPrice(position.getStockCode());
+ }else{
+ nowPrice = position.getSellOrderPrice();
}
-// if(state == 1){
-// nowPrice = position.getSellOrderPrice();
-// }else{
-// nowPrice = priceServices.getNowPrice(position.getStockCode());
-// }
+//// if(state == 1){
+//// nowPrice = position.getSellOrderPrice();
+//// }else{
+//// nowPrice = priceServices.getNowPrice(position.getStockCode());
+//// }
UserPositionVO userPositionVO = UserPointUtil.assembleUserPositionVO(position,nowPrice);
userPositionVO.setOrderTotalPrice(userPositionVO.getOrderTotalPrice().multiply(new BigDecimal(userPositionVO.getOrderLever())));
@@ -1319,10 +1319,10 @@
userPosition.setAgentId(userStockSubscribe.getAgentId());
userPosition.setStockName(userStockSubscribe.getNewName());
- StringBuffer gid = new StringBuffer();
- gid.append(stockSubscribe.getStockType()!=null?stockSubscribe.getStockType():"");
- gid.append(userStockSubscribe.getNewCode()!=null?userStockSubscribe.getNewCode():"stock code invaild");
- userPosition.setStockGid(gid.toString());
+// StringBuffer gid = new StringBuffer();
+// gid.append(stockSubscribe.getStockType()!=null?stockSubscribe.getStockType():"");
+// gid.append(userStockSubscribe.getNewCode()!=null?userStockSubscribe.getNewCode():"stock code invaild");
+ userPosition.setStockGid(stock.getStockType());
userPosition.setBuyOrderId(GeneratePosition.getPositionId());
userPosition.setBuyOrderTime(new Date());
userPosition.setBuyOrderPrice(userStockSubscribe.getBuyPrice());
@@ -1701,10 +1701,14 @@
if (stockDz.getStockNum() > num) {
return ServerResponse.createByErrorMsg("最小购买数据" + stockDz.getStockNum(), request);
}
+
+ BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
+
BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(num.intValue()));
+ BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance());
- if (buyAmt.compareTo(availableBalance) > 0) {
+ if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
}
@@ -1720,7 +1724,6 @@
// 创建UserPosition对象
UserPosition userPosition = getUserPosition(dzId,num, user, stockDz, nowPrice, stock, buyAmt);
userPositionMapper.insert(userPosition);
- BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
BigDecimal buy_fee_amt = siteSettingBuyFee.multiply(buyAmt);
userAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
iUserAssetsServices.availablebalanceChange("IN", userAssets.getUserId(), EUserAssets.HANDLING_CHARGE, buy_fee_amt, "", "");
@@ -1736,7 +1739,7 @@
userPosition.setAgentId(user.getAgentId());
userPosition.setStockCode(stockDz.getStockCode());
userPosition.setStockName(stockDz.getStockName());
- userPosition.setStockGid(stockDz.getStockGid());
+ userPosition.setStockGid(stockDz.getStockType());
userPosition.setBuyOrderId(GeneratePosition.getPositionId());
userPosition.setBuyOrderTime(new Date());
userPosition.setBuyOrderPrice(nowPrice);
--
Gitblit v1.9.3