From 91bbc719126310f09031e55967c059c0a01f20b1 Mon Sep 17 00:00:00 2001
From: zyy3 <zyy3@zy.com>
Date: Wed, 05 Nov 2025 18:50:49 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/admin/task/StockTask.java |   88 ++++++++++++++++++++++++++++---------------
 1 files changed, 57 insertions(+), 31 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/task/StockTask.java b/trading-order-admin/src/main/java/com/yami/trading/admin/task/StockTask.java
index c975b65..a2959a3 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/task/StockTask.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/task/StockTask.java
@@ -79,6 +79,8 @@
         }
     }
 
+
+
     /**
      * 加载所有股票数据
      */
@@ -103,44 +105,62 @@
             if (list.isEmpty()) {
                 return;
             }
-            List<String> stockCodeList = list.stream().map(StockRealTimeBean::getSymbol).collect(Collectors.toList());
-            List<Item> stockList = itemService.list(new QueryWrapper<Item>().in("symbol", stockCodeList));
+            List<String> stockCodeList = list.stream().map(StockRealTimeBean::getId).collect(Collectors.toList());
+            List<Item> stockList = itemService.list(new QueryWrapper<Item>()
+                            .eq("type", Item.US_STOCKS).in("stock_code", stockCodeList));
+
+            List<Item> indicesList = itemService.list(new QueryWrapper<Item>()
+                    .eq("type", Item.indices));
+
+            log.info("同步股票 已有数据 {} 获取数据 {}", stockList.size(), list.size());
             List<Item> updateStockList = new ArrayList<>();
             for (StockRealTimeBean o : list) {
                 //System.out.println(o);
-                Item item = stockList.stream()
+                Item indices = indicesList.stream()
                         .filter(x -> x.getSymbol().equals(o.getSymbol()))
+                        .findFirst()
+                        .orElse(null);
+                if (indices != null) {  //指数不添加
+                    continue;
+                }
+
+
+                Item item = stockList.stream()
+                        .filter(x -> x.getSymbol().equals(o.getSymbol()) &&
+                                x.getStockCode().equals(o.getId()))
                         .findFirst()
                         .orElse(null);
                 if (item == null) {
                     item = new Item();
-                }
-                String name = StringUtils.trim(o.getName());
-                item.setEnName(name);
-                item.setName(name);
-                item.setSymbolFullName(name);
-                item.setSymbol(o.getSymbol());
-                item.setSymbolData(o.getSymbol());
-                item.setPips(BigDecimal.valueOf(0.01).doubleValue());
-                item.setPipsAmount(BigDecimal.valueOf(0.02).doubleValue());
-                item.setAdjustmentValue(BigDecimal.ZERO.doubleValue());
-                item.setUnitAmount(BigDecimal.valueOf(1000).doubleValue());
-                item.setUnitFee(BigDecimal.valueOf(30).doubleValue());
-                item.setMarket("FOREVER");
-                item.setDecimals(2);
-                item.setMultiple(BigDecimal.ZERO.doubleValue());
-                item.setBorrowingRate(BigDecimal.ZERO.doubleValue());
-                item.setDelFlag(0);
-                item.setType(Item.US_STOCKS);
-                item.setCategory(Item.US_STOCKS);
-                item.setSorted("100");
-                item.setOpenCloseType(Item.US_STOCKS);
-                item.setFake("0");
-                item.setShowStatus("1");
-                item.setTradeStatus("1");
-                item.setQuoteCurrency("USDT");
+                    String name = StringUtils.trim(o.getName());
+                    item.setEnName(name);
+                    item.setName(name);
+                    item.setSymbolFullName(name);
+                    item.setSymbol(o.getSymbol());
+                    item.setSymbolData(o.getSymbol());
+                    item.setPips(BigDecimal.valueOf(0.01).doubleValue());
+                    item.setPipsAmount(BigDecimal.valueOf(0.02).doubleValue());
+                    item.setAdjustmentValue(BigDecimal.ZERO.doubleValue());
+                    item.setUnitAmount(BigDecimal.valueOf(1000).doubleValue());
+                    item.setUnitFee(BigDecimal.valueOf(30).doubleValue());
+                    item.setMarket("FOREVER");
+                    item.setDecimals(2);
+                    item.setMultiple(BigDecimal.ZERO.doubleValue());
+                    item.setBorrowingRate(BigDecimal.ZERO.doubleValue());
+                    item.setDelFlag(0);
+                    item.setType(Item.US_STOCKS);
+                    item.setCategory(Item.US_STOCKS);
+                    item.setSorted("100");
+                    item.setOpenCloseType(Item.US_STOCKS);
+                    item.setFake("0");
+                    item.setShowStatus("1");
+                    item.setTradeStatus("1");
+                    item.setQuoteCurrency("USDT");
+                    item.setCrawlStatus("default_active");
+                    item.setStockCode(o.getId());
 
-                updateStockList.add(item);
+                    updateStockList.add(item);
+                }
 
 
                 Realtime realtime = new Realtime();
@@ -162,14 +182,20 @@
 
                 DataCache.putRealtime(realtime.getSymbol(), realtime);
             }
-            itemService.saveOrUpdateBatch(updateStockList);
-            log.info("同步股票 数据 成功 {}  总共同步数据 {}", eStockType.getCode(), list.size());
+            if (!updateStockList.isEmpty()) {
+                itemService.saveOrUpdateBatch(updateStockList);
+            }
+            log.info("同步股票 数据 成功 {}  总共同步数据 {}", eStockType.getCode(), updateStockList.size());
         } catch (
                 Exception e) {
             log.error("同步出错", e);
         }
     }
 
+
+
+
+
     public static void main(String[] args) {
         StockTask task = new StockTask();
         task.loadAllStock(EStockType.US);

--
Gitblit v1.9.3