From 3ce36ef27a225cb00b0381c777fd38b0bc74e757 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 21 Oct 2024 21:36:56 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 154a843..9b143eb 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);
}
// 手续费率
@@ -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, "", "");
--
Gitblit v1.9.3