From d3f337e2c464d6f69130b17d76510e5bb7597ad7 Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Fri, 26 Sep 2025 18:13:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/selector/PyramidStockSelector.java | 1 - .../leopard/core/task/PyramidSelect.java | 10 +++++++++- .../src/main/resources/application-h2.yml | 14 ++++++++++++++ leopard-web/src/pages/task/TaskDetail.tsx | 3 ++- 4 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 leopard-server/src/main/resources/application-h2.yml diff --git a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/service/selector/PyramidStockSelector.java b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/service/selector/PyramidStockSelector.java index a9b2aa5..d66b0d5 100644 --- a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/service/selector/PyramidStockSelector.java +++ b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/service/selector/PyramidStockSelector.java @@ -35,7 +35,6 @@ public class PyramidStockSelector implements StockSelector stock, code -> 0)); for (Stock stock : stocks) { var recentIndicators = stock.getIndicators() diff --git a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/task/PyramidSelect.java b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/task/PyramidSelect.java index 312bee8..8c8dcdc 100644 --- a/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/task/PyramidSelect.java +++ b/leopard-core/src/main/java/com/lanyuanxiaoyao/leopard/core/task/PyramidSelect.java @@ -35,11 +35,19 @@ public class PyramidSelect extends TaskRunner { @Override public String process(Map params, StepUpdater updater) throws Exception { var candidates = pyramidStockSelector.select(new PyramidStockSelector.Request(LocalDate.now().getYear(), 50)); + var collection = new StockCollection(); collection.setName("金字塔选股"); collection.setDescription("金字塔选股"); collection.setStocks(candidates.stream().map(StockSelector.Candidate::stock).collect(Collectors.toSet())); stockCollectionRepository.save(collection); - return null; + + return """ + | Code | Name | Score | + | ---- | ---- | ----- | + %s + """.formatted(candidates.stream() + .map(candidate -> "| %s | %s | %.2f |".formatted(candidate.stock().getCode(), candidate.stock().getName(), candidate.score())) + .collect(Collectors.joining("\n"))); } } diff --git a/leopard-server/src/main/resources/application-h2.yml b/leopard-server/src/main/resources/application-h2.yml new file mode 100644 index 0000000..dae2d55 --- /dev/null +++ b/leopard-server/src/main/resources/application-h2.yml @@ -0,0 +1,14 @@ +spring: + datasource: + url: jdbc:h2:file:./leopard;DB_CLOSE_ON_EXIT=TRUE + username: leopard + password: leopard + driver-class-name: org.h2.Driver + quartz: + jdbc: + platform: h2 + properties: + org: + quartz: + jobStore: + driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate \ No newline at end of file diff --git a/leopard-web/src/pages/task/TaskDetail.tsx b/leopard-web/src/pages/task/TaskDetail.tsx index b72fb90..873aac1 100644 --- a/leopard-web/src/pages/task/TaskDetail.tsx +++ b/leopard-web/src/pages/task/TaskDetail.tsx @@ -56,9 +56,10 @@ function TaskDetail() { }, { visibleOn: 'result', - type: 'editor', + type: 'markdown-enhance', name: 'result', label: '结果', + content: '${result}', }, ], },