From f1ab38f87194ebc61ca7b3375f0a698b27e67706 Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Mon, 8 Sep 2025 20:50:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A5=E7=BA=BF?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A3=80=E6=9F=A5=E6=B2=A1=E6=9C=89=E8=80=83?= =?UTF-8?q?=E8=99=91=E7=9C=9F=E6=AD=A3=E5=81=9C=E7=89=8C=E6=97=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/LeopardServerApplication.java | 1 + .../server/service/TuShareService.java | 15 +++++++-- .../server/service/task/CheckDailyNode.java | 6 +++- .../src/test/resources/tushare.http | 31 ++++++++++++------- 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/LeopardServerApplication.java b/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/LeopardServerApplication.java index 0e7c8fd..df7a657 100644 --- a/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/LeopardServerApplication.java +++ b/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/LeopardServerApplication.java @@ -31,5 +31,6 @@ public class LeopardServerApplication implements ApplicationRunner { public void run(ApplicationArguments args) { // executor.execute2RespWithEL("THEN(update_daily)"); // executor.execute2RespWithEL("THEN(update_stock)"); + // executor.execute2RespWithEL("THEN(check_daily)"); } } diff --git a/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/TuShareService.java b/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/TuShareService.java index f5acc8c..6546755 100644 --- a/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/TuShareService.java +++ b/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/TuShareService.java @@ -1,10 +1,12 @@ package com.lanyuanxiaoyao.leopard.server.service; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.HashMap; import java.util.List; import java.util.Map; import lombok.SneakyThrows; @@ -55,11 +57,20 @@ public class TuShareService { return tuShareResponse; } - @SneakyThrows public TuShareResponse dailyList(LocalDate tradeDate) { + return dailyList(tradeDate, null); + } + + @SneakyThrows + public TuShareResponse dailyList(LocalDate tradeDate, String stockCode) { + var paramsMap = new HashMap(); + paramsMap.put("trade_date", tradeDate.format(TRADE_FORMAT)); + if (StrUtil.isNotBlank(stockCode)) { + paramsMap.put("ts_code", stockCode); + } var response = HttpUtil.post(API_URL, buildRequest( "daily", - Map.of("trade_date", tradeDate.format(TRADE_FORMAT)), + paramsMap, List.of("ts_code", "trade_date", "open", "high", "low", "close", "pre_close", "change", "pct_chg", "vol", "amount") )); var tuShareResponse = mapper.readValue(response, TuShareResponse.class); diff --git a/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/task/CheckDailyNode.java b/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/task/CheckDailyNode.java index 72d425d..f1015af 100644 --- a/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/task/CheckDailyNode.java +++ b/leopard-server/src/main/java/com/lanyuanxiaoyao/leopard/server/service/task/CheckDailyNode.java @@ -46,8 +46,12 @@ public class CheckDailyNode extends NodeComponent { if (exchange.equals(stock.getMarket())) { var existsTradeDates = dailyService.findDistinctTradeDateByStockId(stock.getId()); var missedTradeDates = allTradeDates.stream() - .filter(date -> date.isBefore(stock.getListedDate())) + .filter(date -> date.isAfter(stock.getListedDate()) || date.isEqual(stock.getListedDate())) .filter(date -> !existsTradeDates.contains(date)) + .filter(date -> { + var response = tuShareService.dailyList(date, stock.getCode()); + return !response.data().items().isEmpty(); + }) .toList(); if (ObjectUtil.isNotEmpty(missedTradeDates)) { reports.add(new MissedTradeReport( diff --git a/leopard-server/src/test/resources/tushare.http b/leopard-server/src/test/resources/tushare.http index db97053..7679a42 100644 --- a/leopard-server/src/test/resources/tushare.http +++ b/leopard-server/src/test/resources/tushare.http @@ -58,20 +58,12 @@ Content-Type: application/json "api_name": "daily", "token": "{{api_key}}", "params": { - "trade_date": "19931213" + "ts_code": "000001.SZ", + "trade_date": "20140715" }, "fields": [ - "ts_code", - "trade_date", - "open", - "high", - "low", "close", - "pre_close", - "change", - "pct_chg", - "vol", - "amount" + "pre_close" ] } @@ -203,3 +195,20 @@ Content-Type: application/json "currentdebt_to_debt" ] } + +### Get suspend +POST {{api_url}} +Content-Type: application/json + +{ + "api_name": "suspend", + "token": "{{api_key}}", + "params": { + "ts_code": "000001.SZ", + "suspend_type": "S" + }, + "fields": [ + "suspend_date", + "resume_date" + ] +}