zyy
2025-08-27 c00bbb2f219514005033348b931a140d49579bb8
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -105,6 +105,15 @@
                    // 申请数量为空时返回错误信息
                    return ServerResponse.createByErrorMsg("申请数量不能为空", request);
                }
                //用户是否杠杆
                boolean isLever = model.getLever() != null && model.getLever().intValue() > 0;
                if (isLever) {
                    model.setApplyNums(model.getApplyNums() * model.getLever().intValue());
                } else {
                    model.setApplyNums(model.getApplyNums() * stockSubscribe.getLever().intValue());
                }
                if(model.getApplyNums() < stockSubscribe.getMinNumber() ){
                    return ServerResponse.createByErrorMsg("最少申购:" + stockSubscribe.getMinNumber(), request);
                }
@@ -126,16 +135,14 @@
                }
//            //重复申购限制
                Long count = userStockSubscribeMapper.selectCount(new QueryWrapper<UserStockSubscribe>().eq(
                /*Long count = userStockSubscribeMapper.selectCount(new QueryWrapper<UserStockSubscribe>().eq(
                        "new_code", model.getNewCode()).eq("user_id", user.getId()).eq("type", model.getType()));
                if (count > 0) {
                    return ServerResponse.createByErrorMsg("请勿重复申请",request);
                }
                }*/
                if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
                    return ServerResponse.createByErrorMsg("订单失败,帐户已被锁定",request);
                }
                model.setApplyNums((int) (model.getApplyNums()*stockSubscribe.getLever()));
                //计算申购金额
                BigDecimal bound;
@@ -148,7 +155,16 @@
                if (!stockSubscribe.getStockType().equals(EStockType.getDefault().getCode())) {
                    bound = iUserAssetsServices.exchangeAmountByRate(stockSubscribe.getStockType(), bound);
                }*/
                if(userAssets.getAvailableBalance().compareTo(bound) < 0){
                //需要资金
                BigDecimal needBound;
                //杠杆账户只需初始数量资金
                if (isLever) {
                    needBound = bound.divide(new BigDecimal(model.getLever()));
                } else {
                    needBound = bound;
                }
                if(userAssets.getAvailableBalance().compareTo(needBound) < 0){
                    return ServerResponse.createByErrorMsg("账户余额不足", request);
                }