ipo
zyy
2026-01-10 3edc0674d8a3206b1528f50c8443cff1a6bb6da8
trading-order-service/src/main/java/com/yami/trading/service/ipo/impl/ApplyNewSharesOrderServiceImpl.java
@@ -85,7 +85,7 @@
        }
        newSharesConfig.setAppliedSubscribeNumber(amount.add(new BigDecimal(newSharesConfig.getAppliedSubscribeNumber())).intValue());
        if (newSharesConfig.getAppliedSubscribeNumber()<=0){
            throw new BusinessException("股票数申购数不足!");
            throw new BusinessException("股票数申购数不足");
        }
        if (newSharesConfig.getUserApplyNums() != null && newSharesConfig.getUserApplyNums()>0){
@@ -168,12 +168,15 @@
            BigDecimal amt = order.getRequiredNumber();
            if (wallet.getMoney().compareTo(amt) >= 0) {
                wallet.setMoney(wallet.getMoney().subtract(amt));
                order.setSubscribedAmount(amt);
            } else {
                order.setSubscribedAmount(wallet.getMoney());
                //资金不足 进入待补
                isDb = true;
                BigDecimal amountToBeCovered = amt.subtract(wallet.getMoney());
                //BigDecimal amountToBeCovered = amt.subtract(wallet.getMoney());
                amt = wallet.getMoney();
                wallet.setMoney(BigDecimal.ZERO);
                wallet.setAmountToBeCovered(amountToBeCovered);
                //wallet.setAmountToBeCovered(wallet.getAmountToBeCovered().add(amountToBeCovered));
            }
            walletService.updateById(wallet);
@@ -183,7 +186,7 @@
            log.setAmount(amt.negate());
            log.setAmountAfter(amountBefore.subtract(amt).compareTo(BigDecimal.ZERO) <= 0 ?
                    BigDecimal.ZERO : amountBefore.subtract(amt));
            log.setLog(order.getSymbolCode() + "新股认缴");
            log.setLog(order.getSymbolCode() + "新股认缴" + order.getOrderNo());
            log.setUserId(order.getUserId());
            log.setWalletType(Constants.WALLET);
            log.setContentType(Constants.MONEYLOG_CATEGORY_IPO);
@@ -192,7 +195,7 @@
            UserPromiseRecord userPromiseRecord = new UserPromiseRecord();
            userPromiseRecord.setUserId(order.getUserId());
            userPromiseRecord.setDeductNumber(order.getWinningNumber());
            userPromiseRecord.setDeductUsdt(order.getRequiredNumber());
            userPromiseRecord.setDeductUsdt(order.getSubscribedAmount());
            userPromiseRecord.setStatus(isDb ? 1 : 2);
            Calendar calendar=Calendar.getInstance();
            if (newSharesConfig.getLockDay() > 0) {