| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 加载所有股票数据 |
| | | */ |
| | |
| | | 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(); |
| | |
| | | |
| | | 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); |