1
dd
2026-01-20 721158c2de6ead36c67bbd8a2db20534e0b120cc
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -35,6 +35,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -188,7 +189,7 @@
                return ServerResponse.createByErrorMsg("报价0,请稍后再试", request);
            }
            BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
            BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever), 5, RoundingMode.HALF_UP);
            BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
            BigDecimal   fundratio = new BigDecimal(String.valueOf(user.getFundRatio().isEmpty() ? 100 : user.getFundRatio())).divide(new BigDecimal(100));
@@ -415,17 +416,16 @@
            position.setId(null);
            position.setPositionSn(KeyUtils.getUniqueKey());
            position.setOrderNum(number);
            position.setOrderTotalPrice(position.getBuyOrderPrice().multiply(new BigDecimal(number)));
            position.setOrderTotalPrice(position.getBuyOrderPrice().multiply(new BigDecimal(number)).divide(new BigDecimal(position.getOrderLever()), 5, RoundingMode.HALF_UP));
            position.setBuyOrderId(GeneratePosition.getPositionId());
            //修改拆分订单手续费
            BigDecimal BuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue());
            BigDecimal buyPrice = position.getBuyOrderPrice().multiply(new BigDecimal(position.getOrderNum()));
            BigDecimal xsPrice = buyPrice.multiply(BuyFee);
            BigDecimal xsPrice = position.getOrderTotalPrice().multiply(BuyFee);
            position.setOrderFee(xsPrice);
            //修改原订单
            userPosition.setOrderNum(userPosition.getOrderNum()-number);
            userPosition.setOrderTotalPrice(userPosition.getBuyOrderPrice().multiply(new BigDecimal(userPosition.getOrderNum())));
            userPosition.setOrderTotalPrice(userPosition.getBuyOrderPrice().multiply(new BigDecimal(userPosition.getOrderNum())).divide(new BigDecimal(position.getOrderLever()), 5, RoundingMode.HALF_UP));
            userPosition.setOrderFee(userPosition.getOrderFee().subtract(position.getOrderFee()));
            userPositionMapper.insert(position);
            userPositionMapper.updateById(userPosition);