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