peter
2025-07-11 19be3926c88d19645f43dd926d00615225f30802
trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java
@@ -111,11 +111,11 @@
        double amount = Arith.mul(sub, realtime.getClose().doubleValue());
        order.setCloseTime(new Date());
        order.setClosePrice(realtime.getClose().doubleValue());
//        Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());
        CapitaltWallet capitaltWallet = capitaltWalletService.getUserIdWallet(order.getPartyId());
        double amount_before = capitaltWallet.getMoney().doubleValue();
//        this.walletService.update(userIdWallet.getUserId().toString(), amount);
        this.capitaltWalletService.update(capitaltWallet, amount);
        Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());
//        CapitaltWallet capitaltWallet = capitaltWalletService.getUserIdWallet(order.getPartyId());
        double amount_before = wallet.getMoney().doubleValue();
        this.walletService.update(wallet.getUserId().toString(), amount);
//        this.capitaltWalletService.update(capitaltWallet, amount);
        /*
         * 保存资金日志
@@ -124,7 +124,7 @@
        moneylog_deposit.setCategory(Constants.MONEYLOG_CATEGORY_EXCHANGE);
        moneylog_deposit.setAmountBefore(new BigDecimal(amount_before));
        moneylog_deposit.setAmount(new BigDecimal(amount));
        moneylog_deposit.setAmountAfter(capitaltWallet.getMoney());
        moneylog_deposit.setAmountAfter(wallet.getMoney());
        moneylog_deposit.setLog("委托单,订单号[" + order.getOrderNo() + "]");
        moneylog_deposit.setUserId(order.getPartyId());
        moneylog_deposit.setWalletType(Constants.WALLET);
@@ -373,10 +373,14 @@
        if (!order.isTriggerOrder()) {
            if (ExchangeApplyOrder.OFFSET_OPEN.equals(order.getOffset())) {
                Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());
//                CapitaltWallet wallet = capitaltWalletService.getUserIdWallet(order.getPartyId());
                double amount_before = wallet.getMoney().doubleValue();
//            wallet.setMoney(Arith.add(wallet.getMoney(), order.getVolume()));
                wallet.setMoney(new BigDecimal(Arith.add(wallet.getMoney().doubleValue(), order.getVolume())));
//                capitaltWalletService.updateById(wallet);
//            wallet.setMoney(wallet.getMoney().add(BigDecimal.valueOf(order.getVolume())));
//                Arith.add(wallet.getMoney(), order.getVolume())
//            walletService.update(wallet);
                walletService.update(wallet.getUserId().toString(), order.getVolume());
//                walletService.update(wallet.getUserId().toString(), order.getVolume());
                MoneyLog moneylog = new MoneyLog();
                moneylog.setCategory(Constants.MONEYLOG_CATEGORY_EXCHANGE);
                moneylog.setAmountBefore(new BigDecimal(amount_before));
@@ -614,9 +618,9 @@
        // 可以买的数量
        double amount = Arith.div(sub, order.getClosePrice(), 8);
        order.setSymbolValue(amount);
//        Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());
        CapitaltWallet userIdWallet = capitaltWalletService.getUserIdWallet(order.getPartyId());
        double amount_before = userIdWallet.getMoney().doubleValue();
        Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());
//        CapitaltWallet userIdWallet = capitaltWalletService.getUserIdWallet(order.getPartyId());
        double amount_before = wallet.getMoney().doubleValue();
        // 如果是计划委托,则先不扣钱
        if (order.isTriggerOrder()) {
@@ -637,11 +641,11 @@
            save(order);
        }
        if (!order.isTriggerOrder()) {
            if (userIdWallet.getMoney().doubleValue() < order.getVolume().doubleValue()) {
            if (wallet.getMoney().doubleValue() < order.getVolume().doubleValue()) {
                throw new YamiShopBindException("余额不足");
            }
//            this.walletService.update(userIdWallet.getUserId().toString(), Arith.sub(0, order.getVolume()));
            capitaltWalletService.update(userIdWallet, Arith.sub(0, order.getVolume()));
            this.walletService.update(wallet.getUserId().toString(), Arith.sub(0, order.getVolume()));
//            capitaltWalletService.update(userIdWallet, Arith.sub(0, order.getVolume()));
            /*
             * 保存资金日志
             */
@@ -649,7 +653,7 @@
            moneylog_deposit.setCategory(Constants.MONEYLOG_CATEGORY_EXCHANGE);
            moneylog_deposit.setAmountBefore(new BigDecimal(amount_before));
            moneylog_deposit.setAmount(new BigDecimal(Arith.sub(0, order.getVolume().doubleValue())));
            moneylog_deposit.setAmountAfter(new BigDecimal(Arith.sub(userIdWallet.getMoney().doubleValue(), order.getVolume())));
            moneylog_deposit.setAmountAfter(new BigDecimal(Arith.sub(wallet.getMoney().doubleValue(), order.getVolume())));
            moneylog_deposit.setLog("币币交易,订单号[" + order.getOrderNo() + "]");
            moneylog_deposit.setUserId(order.getPartyId());
            moneylog_deposit.setWalletType(Constants.WALLET);