1
zyy
2025-12-22 77f227d8b1d00f6507184f8cd2fdec19deacd936
trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
@@ -87,9 +87,9 @@
            Page<StockDzDto> page = new Page<>(pageNum, pageSize);
            page = stockDzMapper.findStockTypeDz(page,orderBy,keyWords,formatDate, stockType);
            page.getRecords().forEach(stockDzDto -> {
                Realtime realtime = this.dataService.realtime(stockDzDto.getStockCode()).get(0);
                if (realtime != null) {
                    stockDzDto.setCurrentPrice(realtime.getClose());
                List<Realtime> list = this.dataService.realtime(stockDzDto.getStockCode());
                if (!list.isEmpty() && list.get(0) != null) {
                    stockDzDto.setCurrentPrice(list.get(0).getClose());
                }
            });
            return Result.succeed(page);
@@ -116,16 +116,22 @@
            return Result.failed("股票代码已存在");
        }
        StockDz stockDz = new StockDz();
        if (stockType.equalsIgnoreCase(Item.indices)) {
            stockDz.setStockName(stockCode);
            stockDz.setStockCode(stockCode);
            stockDz.setStockSpell(stockCode);
        } else {
        Item item = itemService.findBySymbol(stockCode);
        if(item == null){
            return Result.failed("不存在该股票");
        }
        StockDz stockDz = new StockDz();
        stockDz.setStockName(item.getSymbolFullName());
        stockDz.setStockCode(item.getSymbol());
        stockDz.setStockType(stockType);
        stockDz.setStockSpell(item.getSymbolData());
        }
        stockDz.setStockType(stockType);
        stockDz.setIsLock(0);
        stockDz.setIsShow(1);
        stockDz.setAddTime(new Date());
@@ -167,19 +173,26 @@
            return Result.failed("股票代码已存在");
        }
        Item item = itemService.findBySymbol(model.getStockCode());
        if(item == null){
            return Result.failed("不存在该股票");
        }
        StockDz stockDz = stockDzMapper.selectById(model.getUuid());
        if(stockDz == null){
            return Result.failed("不存在该大宗信息");
        }
        //model.setStockName(item.getSymbolFullName());
        if (!stockDz.getStockType().equalsIgnoreCase(Item.indices)) {
            Item item = itemService.findBySymbol(model.getStockCode());
            if(item == null){
                return Result.failed("不存在该股票");
            } else {
        model.setStockCode(item.getSymbol());
        model.setStockType(stockDz.getStockType());
        model.setStockSpell(item.getSymbolData());
            }
        } else {
            model.setStockCode(model.getStockCode());
            model.setStockSpell(model.getStockCode());
            model.setStockName(model.getStockCode());
        }
        model.setStockType(stockDz.getStockType());
        return stockDzMapper.updateById(model) > 0 ? Result.succeed("修改成功") : Result.failed("修改失败");
    }
@@ -200,11 +213,13 @@
            if (!page.getRecords().isEmpty()) {
                List<ExchangeApplyOrderDzDto> list = page.getRecords();
                list.forEach(dz -> {
                    double closePrice;
                    double closePrice = 0;
                    if (state != null) { //持仓
                        Realtime realtime = this.dataService.realtime(dz.getSymbol()).get(0);
                        List<Realtime> realtimeList = this.dataService.realtime(dz.getSymbol());
                        if (!realtimeList.isEmpty() && realtimeList.get(0) != null) {
                        //获取现价
                        closePrice = realtime.getClose();
                            closePrice = realtimeList.get(0).getClose();
                        }
                    } else { //已结算
                        closePrice = dz.getClosePrice();
                    }
@@ -309,9 +324,11 @@
            }
            if (!isAdmin) { //后台买入不判断
                if (!stockDz.getStockName().contains("测试")) {
                boolean isOpen = MarketOpenChecker.isMarketOpenBuyDz(Item.US_STOCKS);
                if (!isOpen) {
                    return Result.failed("当前股市休市");
                    }
                }
            }
@@ -599,7 +616,7 @@
            double closeAmt;
            String symbol = stockDz.getStockCode();
            double closePrice;
            double closePrice = 0;
            if (isETF) {
                //按日收益率结算
                closeAmt = order.getPrice();
@@ -607,8 +624,11 @@
                closePrice = closeAmt;
                closeAmt = closeAmt - orderFree.doubleValue();
            } else {
                Realtime realtime = this.dataService.realtime(symbol).get(0);
                closePrice = realtime.getClose();
                List<Realtime> realtimeList = this.dataService.realtime(symbol);
                if (!realtimeList.isEmpty() && realtimeList.get(0) != null) {
                    //获取现价
                    closePrice = realtimeList.get(0).getClose();
                }
                closeAmt = closePrice * num - orderFree.doubleValue();
            }
            if (closeAmt < 0) {