peter
2026-01-08 9dc40f3aa7df3bdd489bd750d59fec8bac741a23
src/main/java/com/nq/service/impl/UserStockSubscribeServiceImpl.java
@@ -98,7 +98,7 @@
            String userJson = RedisShardedPoolUtils.get(header);
            User user = this.iUserService.getCurrentRefreshUser(request);
            if (user == null) {
                return ServerResponse.createBySuccessMsg("請先登錄");
                return ServerResponse.createBySuccessMsg("请先登录");
            }
            if (model.getNewCode() != null) {
                StockSubscribe stockSubscribe = stockSubscribeMapper.selectOne(new QueryWrapper<StockSubscribe>().eq("code", model.getNewCode()));
@@ -139,9 +139,9 @@
                    return ServerResponse.createByErrorMsg("申购失败,不在交易时段内");
                }
                if (model.getApplyNums() == null || model.getApplyNums() > stockSubscribe.getOrderNumber() * 10000) {
                    return ServerResponse.createByErrorMsg("购买数量异常或大于发行数量" + stockSubscribe.getOrderNumber() * 10000);
                }
//                if (model.getApplyNums() == null || model.getApplyNums() > stockSubscribe.getOrderNumber() * 10000) {
//                    return ServerResponse.createByErrorMsg("购买数量异常或大于发行数量" + stockSubscribe.getOrderNumber() * 10000);
//                }
                if (model.getType() == 2) {
                    if (user.getEnableAmt().compareTo(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice())) < 0) {
                        return ServerResponse.createByErrorMsg("用户可用余额不足,申购条件不满足");
@@ -165,11 +165,15 @@
                model.setPhone(user.getPhone());
                model.setBuyPrice(stockSubscribe.getPrice());
                model.setBond(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()));
                model.setBond(BigDecimal.ZERO);
                model.setApplyNums(0);
//                model.setBond(new BigDecimal(model.getApplyNums()).multiply(stockSubscribe.getPrice()));
                model.setRealName(Objects.equals(user.getRealName(), "") || user.getRealName() == null ? "模拟用户无实名" : user.getRealName());
                model.setAddTime(new Date());
                model.setOrderNo(KeyUtils.getUniqueKey());
                model.setType(model.getType());
                model.setDiscountPrice(stockSubscribe.getPrice().multiply(stockSubscribe.getDiscount()).setScale(2, BigDecimal.ROUND_HALF_UP));
            }
            ret = userStockSubscribeMapper.insert(model);
@@ -210,10 +214,15 @@
//            }
            if (model.getStatus() == 3 && model.getApplyNumber() != null) {
                if (userStockSubscribe.getApplyNums() < model.getApplyNumber()) {
                    return ServerResponse.createByErrorMsg("中签数量超过申购数量");
//                if (userStockSubscribe.getApplyNums() < model.getApplyNumber()) {
//                    return ServerResponse.createByErrorMsg("中签数量超过申购数量");
//                }
                if(null != userStockSubscribe.getDiscountPrice() && userStockSubscribe.getDiscountPrice().compareTo(BigDecimal.ZERO) > 0) {
                    model.setBond(userStockSubscribe.getDiscountPrice().multiply(BigDecimal.valueOf(model.getApplyNumber())));
                }else {
                    model.setBond(userStockSubscribe.getBuyPrice().multiply(BigDecimal.valueOf(model.getApplyNumber())));
                }
                model.setBond(userStockSubscribe.getBuyPrice().multiply(BigDecimal.valueOf(model.getApplyNumber())));
                ret = userStockSubscribeMapper.update1(model);
            } else if (model.getStatus() == 2) {
                ret = userStockSubscribeMapper.update1(model);