From e2b609bf52116bfdb3ee35677caae81582e836ee Mon Sep 17 00:00:00 2001 From: Lxy Date: Mon, 26 Jan 2026 00:15:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=8A=A8=E9=87=8F=E6=95=B0=E6=8D=AE=E4=B8=BA=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=EF=BC=8C=E8=80=8C=E4=B8=8D=E6=98=AFsql?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../newstocksystem/mapper/TTrendsMapper.java | 24 +++++++ .../service/impl/TTrendsServiceImpl.java | 42 ++++++++++- .../mapper/newstocksystem/TTrendsMapper.xml | 69 +++++++------------ 3 files changed, 88 insertions(+), 47 deletions(-) diff --git a/newstock-system/src/main/java/com/ruoyi/newstocksystem/mapper/TTrendsMapper.java b/newstock-system/src/main/java/com/ruoyi/newstocksystem/mapper/TTrendsMapper.java index 9f9d66e..d79ff6c 100644 --- a/newstock-system/src/main/java/com/ruoyi/newstocksystem/mapper/TTrendsMapper.java +++ b/newstock-system/src/main/java/com/ruoyi/newstocksystem/mapper/TTrendsMapper.java @@ -87,4 +87,28 @@ public interface TTrendsMapper * @return 存在则返回1,否则返回0 */ public int checkTrendsExistsByDate(Date tradeDate); + + /** + * 获取最近10个交易日 + * + * @param momentumType 动量类型 + * @return 最近10个交易日列表 + */ + public List getRecentTradeDates(String momentumType); + + /** + * 获取所有行业名称 + * + * @param momentumType 动量类型 + * @return 行业名称列表 + */ + public List getAllIndustryNames(String momentumType); + + /** + * 获取指定行业在指定日期的排名 + * + * @param params 参数map,包含momentumType、industryName、tradeDate + * @return 排名 + */ + public Integer getIndustryRankByDate(java.util.Map params); } \ No newline at end of file diff --git a/newstock-system/src/main/java/com/ruoyi/newstocksystem/service/impl/TTrendsServiceImpl.java b/newstock-system/src/main/java/com/ruoyi/newstocksystem/service/impl/TTrendsServiceImpl.java index 0efdbea..12e41cf 100644 --- a/newstock-system/src/main/java/com/ruoyi/newstocksystem/service/impl/TTrendsServiceImpl.java +++ b/newstock-system/src/main/java/com/ruoyi/newstocksystem/service/impl/TTrendsServiceImpl.java @@ -1,6 +1,10 @@ package com.ruoyi.newstocksystem.service.impl; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.newstocksystem.mapper.TTrendsMapper; @@ -129,6 +133,42 @@ public class TTrendsServiceImpl implements TTrendsService @Override public List listTrendsSection(TTrends tTrends) { - return tTrendsMapper.listTrendsSection(tTrends); + // 1. 获取最近10个交易日 + List recentDays = tTrendsMapper.getRecentTradeDates(tTrends.getMomentumType()); + if (recentDays == null || recentDays.isEmpty()) { + return new ArrayList<>(); + } + + // 2. 获取所有行业名称 + List industryNames = tTrendsMapper.getAllIndustryNames(tTrends.getMomentumType()); + if (industryNames == null || industryNames.isEmpty()) { + return new ArrayList<>(); + } + + // 3. 准备返回结果列表 + List> resultList = new ArrayList<>(); + + // 4. 遍历每个行业,获取其在每个交易日的排名 + for (String industryName : industryNames) { + Map industryData = new HashMap<>(); + industryData.put("industryName", industryName); + + // 遍历每个交易日,获取排名 + for (int i = 0; i < recentDays.size(); i++) { + Date tradeDate = recentDays.get(i); + Map params = new HashMap<>(); + params.put("momentumType", tTrends.getMomentumType()); + params.put("industryName", industryName); + params.put("tradeDate", tradeDate); + + Integer rank = tTrendsMapper.getIndustryRankByDate(params); + // 如果没有排名数据,设置为0 + industryData.put("day_" + (i + 1), rank != null ? rank : 0); + } + + resultList.add(industryData); + } + + return resultList; } } \ No newline at end of file diff --git a/newstock-system/src/main/resources/mapper/newstocksystem/TTrendsMapper.xml b/newstock-system/src/main/resources/mapper/newstocksystem/TTrendsMapper.xml index d8f3ff7..9289fd9 100644 --- a/newstock-system/src/main/resources/mapper/newstocksystem/TTrendsMapper.xml +++ b/newstock-system/src/main/resources/mapper/newstocksystem/TTrendsMapper.xml @@ -136,51 +136,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(1) from t_trends where trade_date = #{tradeDate} - - + SELECT DISTINCT trade_date + FROM t_trends + WHERE momentum_type = #{momentumType} + ORDER BY trade_date DESC + LIMIT 10 + + + + + + + \ No newline at end of file