From 19e7fb544e0dff8f72d29323d5707b5e4714a4bc Mon Sep 17 00:00:00 2001 From: rplees Date: Mon, 4 Dec 2023 20:56:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:K=E7=BA=BF-=E5=AD=A3=E5=BA=A6/=E5=8D=8A?= =?UTF-8?q?=E5=B9=B4/=E5=B9=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/investing/InvestingApis.java | 12 +--------- .../api/investing/InvestingInvokerApis.java | 22 +++++++++++++++++-- .../stock/market/web/StockApiController.java | 2 +- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingApis.java b/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingApis.java index 2358b71..d53a99f 100644 --- a/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingApis.java +++ b/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingApis.java @@ -227,18 +227,8 @@ public class InvestingApis { if(code == null) { throw new RuntimeException("找不到股票信息"); } - String interval = null; - if("min".equalsIgnoreCase(string)) { - interval = "PT5M"; - } else if("day".equalsIgnoreCase(string)) { - interval = "P1D"; - } else if("week".equalsIgnoreCase(string)) { - interval = "P1W"; - } else if("month".equalsIgnoreCase(string)) { - interval = "P1M"; - } Date nowDate = new Date(); - JSONObject json = InvestingInvokerApis.of().__kline(code, interval); + JSONObject json = InvestingInvokerApis.of().__kline(code, string); return json .getJSONArray("data") .stream() diff --git a/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingInvokerApis.java b/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingInvokerApis.java index 92a44ee..f8fbf3d 100644 --- a/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingInvokerApis.java +++ b/src/main/java/cn/stock/market/infrastructure/api/investing/InvestingInvokerApis.java @@ -138,6 +138,7 @@ public class InvestingInvokerApis { throw new RuntimeException("找不到股票信息"); } String interval = null; + String period = null; if("min".equalsIgnoreCase(string)) { interval = "PT5M"; } else if("day".equalsIgnoreCase(string)) { @@ -146,13 +147,30 @@ public class InvestingInvokerApis { interval = "P1W"; } else if("month".equalsIgnoreCase(string)) { interval = "P1M"; + } else if("3month".equalsIgnoreCase(string)) { + interval = "P1D"; + period = "P3M"; + } else if("6month".equalsIgnoreCase(string)) { + interval = "P1D"; + period = "P6M"; + } else if("year".equalsIgnoreCase(string)) { + interval = "P1W"; + period = "P1Y"; } if(StringUtils.isBlank(interval)) { interval = string; } - String tmpl = "https://api.investing.com/api/financialdata/{}/historical/chart/?interval={}&pointscount=160"; - String url = StrFormatter.format(tmpl, code.getCode(), interval); + + String url = null; + if(StringUtils.isNotBlank(period)) { + String tmpl = "https://api.investing.com/api/financialdata/{}/historical/chart/?period={}&interval={}&pointscount=160"; + url = StrFormatter.format(tmpl, code.getCode(), period, interval); + } else { + String tmpl = "https://api.investing.com/api/financialdata/{}/historical/chart/?interval={}&pointscount=160"; + url = StrFormatter.format(tmpl, code.getCode(), interval); + } + Builder builder = builderGet(url); String body = httpClient().newCall(builder.build()).execute().body().string(); diff --git a/src/main/java/cn/stock/market/web/StockApiController.java b/src/main/java/cn/stock/market/web/StockApiController.java index 7f6fb9a..b259023 100644 --- a/src/main/java/cn/stock/market/web/StockApiController.java +++ b/src/main/java/cn/stock/market/web/StockApiController.java @@ -144,7 +144,7 @@ public class StockApiController { @ResponseBody @ApiImplicitParams({ @ApiImplicitParam(name = "stockCode",value = "股票对应代码",dataType ="String", paramType = "query", required = true), - @ApiImplicitParam(name = "type",value = "type min-时分线 day-日线 week-周线 month-月线",dataType ="String", paramType = "query", required = true), + @ApiImplicitParam(name = "type",value = "min-时分线 day-日线 week-周线 month-月线, 3month-季度, 6month-半年, year-年",dataType ="String", paramType = "query", required = true), }) public ServerResponse getINDTimeK(@RequestParam("stockCode") String stockCode, @RequestParam("type") String type) throws IOException { ParamUtils.verify("股票代码", stockCode, ParamUtils.STRING_NOT_EMPTY_VERIFY_AND_CONVERT_VALUE);