|
|
@@ -44,28 +44,19 @@ public class StockPoolServiceImpl implements StockPoolService {
|
|
|
public List<StockPoolVO> getPoolStocks(Integer poolType) {
|
|
|
log.info("[获取股票池] poolType={}", poolType);
|
|
|
|
|
|
- // 查询最新日期
|
|
|
- LocalDate latestDate = stockPoolMapper.selectLatestAddDate(poolType);
|
|
|
- if (latestDate == null) {
|
|
|
- log.info("[获取股票池] 没有找到任何记录");
|
|
|
- return new ArrayList<>();
|
|
|
- }
|
|
|
-
|
|
|
- log.info("[获取股票池] 最新日期: {}", latestDate);
|
|
|
-
|
|
|
- // 根据最新日期查询股票池
|
|
|
+ // 查询所有当前有效的股票(status=2),不限制日期
|
|
|
LambdaQueryWrapper<StockPool> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(StockPool::getPoolType, poolType)
|
|
|
- .eq(StockPool::getAddDate, latestDate)
|
|
|
.eq(StockPool::getStatus, 2) // 只查询当前有效的
|
|
|
+ .orderByDesc(StockPool::getAddDate) // 按加入日期倒序
|
|
|
.orderByAsc(StockPool::getStockCode);
|
|
|
|
|
|
List<StockPool> stocks = stockPoolMapper.selectList(wrapper);
|
|
|
log.info("[获取股票池] 查询到 {} 条记录", stocks.size());
|
|
|
-
|
|
|
+
|
|
|
// 获取实时行情
|
|
|
Map<String, QuoteData> quoteMap = fetchBatchQuotes(stocks);
|
|
|
-
|
|
|
+
|
|
|
List<StockPoolVO> result = new ArrayList<>();
|
|
|
for (StockPool stock : stocks) {
|
|
|
StockPoolVO.StockPoolVOBuilder builder = StockPoolVO.builder()
|
|
|
@@ -73,17 +64,17 @@ public class StockPoolServiceImpl implements StockPoolService {
|
|
|
.name(stock.getStockName())
|
|
|
.addPrice(stock.getAddPrice() != null ? stock.getAddPrice().toString() : "")
|
|
|
.addDate(stock.getAddDate() != null ? stock.getAddDate().format(DATE_FORMATTER) : "");
|
|
|
-
|
|
|
+
|
|
|
// 填充实时行情
|
|
|
QuoteData quote = quoteMap.get(stock.getStockCode());
|
|
|
if (quote != null) {
|
|
|
builder.currentPrice(quote.currentPrice)
|
|
|
.changePercent(quote.changePercent);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
result.add(builder.build());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
|