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