zyy
2025-12-09 6eef7f43f9ad3d82727fba36f543f268cfb646d2
trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
@@ -260,7 +260,7 @@
    @Transactional
    @Override
    public Result buyDz(String dzId, String password, double num, String partyId) {
    public Result buyDz(String dzId, String password, double num, String partyId, Boolean isAdmin) {
        try {
            if (num <= 0) {
                throw new YamiShopBindException("请输入");
@@ -307,11 +307,13 @@
                    return Result.failed("请购买最小数量");
                }
            }
            if (!isAdmin) { //后台买入不判断
            boolean isOpen = MarketOpenChecker.isMarketOpenBuyDz(Item.US_STOCKS);
            if (!isOpen) {
                return Result.failed("当前股市休市");
            }
            }
            Wallet wallet = this.walletService.saveWalletByPartyId(partyId);
            BigDecimal buyAmt;
@@ -521,7 +523,7 @@
    @Transactional
    @Override
    public Result closeDz(String id, Double num, String partyId) {
    public Result closeDz(String id, Double num, String partyId, Boolean isAdmin) {
        try {
            ExchangeApplyOrderDz order = exchangeApplyOrderDzMapper.selectById(id);
            if (order == null) {
@@ -535,6 +537,9 @@
            }
            if (num < 0 || num > order.getSymbolValue()) {
                throw new YamiShopBindException("数量错误");
            }
            if (partyId == null) {
                partyId = order.getPartyId();
            }
            StockDz stockDz = this.stockDzMapper.selectOne(new QueryWrapper<StockDz>().eq("uuid", order.getDzId()));
@@ -554,6 +559,7 @@
            }
            Date now = new Date();
            if (!isAdmin) {
            if (stockDz.getPeriod() != null && stockDz.getPeriod() > 0) {
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(order.getCreateTime());
@@ -565,15 +571,13 @@
                    return Result.failed("未到平仓时间");
                }
            }
            if (stockDz.getStockName().contains("测试")) {
            } else {
                if (!stockDz.getStockName().contains("测试")) {
                boolean isOpen = MarketOpenChecker.isMarketOpenByItemCloseType(Item.US_STOCKS);
                if (!isOpen) {
                    return Result.failed("当前股市休市");
                }
            }
            }
            Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());