Explorar el Código

历史回顾池与超短池管理
显示逻辑修改

Zhangbw hace 2 meses
padre
commit
a15fb9a86d

+ 5 - 0
src/main/java/com/yingpai/gupiao/domain/vo/StockPoolVO.java

@@ -43,4 +43,9 @@ public class StockPoolVO {
      * 涨跌幅
      */
     private String changePercent;
+
+    /**
+     * 状态:1-历史有效,2-当前有效
+     */
+    private Integer status;
 }

+ 7 - 3
src/main/java/com/yingpai/gupiao/mapper/StockPoolMapper.java

@@ -23,7 +23,9 @@ public interface StockPoolMapper extends BaseMapper<StockPool> {
     LocalDate selectLatestAddDate(Integer poolType);
 
     /**
-     * 分页查询历史数据(status为1和2的记录)
+     * 分页查询历史数据
+     * 超短池:status=1 或 (status=2 且 add_date < 今天)
+     * 强势池:status IN (1, 2)
      * @param startDate 开始日期
      * @param endDate 结束日期
      * @param poolType 池类型
@@ -36,7 +38,7 @@ public interface StockPoolMapper extends BaseMapper<StockPool> {
             "FROM stock_pool " +
             "WHERE add_date BETWEEN #{startDate} AND #{endDate} " +
             "AND pool_type = #{poolType} " +
-            "AND status IN (1, 2) " +
+            "AND ((#{poolType} = 1 AND (status = 1 OR (status = 2 AND add_date < CURDATE()))) OR (#{poolType} = 2 AND status IN (1, 2))) " +
             "ORDER BY add_date DESC, id DESC " +
             "LIMIT #{limit} OFFSET #{offset}")
     List<com.yingpai.gupiao.domain.vo.StockHistoryVO> selectPoolHistory(
@@ -44,6 +46,8 @@ public interface StockPoolMapper extends BaseMapper<StockPool> {
 
     /**
      * 统计历史数据总数
+     * 超短池:status=1 或 (status=2 且 add_date < 今天)
+     * 强势池:status IN (1, 2)
      * @param startDate 开始日期
      * @param endDate 结束日期
      * @param poolType 池类型
@@ -52,7 +56,7 @@ public interface StockPoolMapper extends BaseMapper<StockPool> {
     @Select("SELECT COUNT(*) FROM stock_pool " +
             "WHERE add_date BETWEEN #{startDate} AND #{endDate} " +
             "AND pool_type = #{poolType} " +
-            "AND status IN (1, 2)")
+            "AND ((#{poolType} = 1 AND (status = 1 OR (status = 2 AND add_date < CURDATE()))) OR (#{poolType} = 2 AND status IN (1, 2)))")
     int countPoolHistory(LocalDate startDate, LocalDate endDate, Integer poolType);
 
     /**

+ 1 - 1
src/main/java/com/yingpai/gupiao/service/impl/StockHistoryServiceImpl.java

@@ -14,7 +14,7 @@ import java.util.Map;
 
 /**
  * 股票历史数据服务实现类(小程序端)
- * 查询stock_pool表中status为1和2的记录
+ * 查询stock_pool表中status为1(历史有效)的记录
  */
 @Slf4j
 @Service

+ 4 - 3
src/main/java/com/yingpai/gupiao/service/impl/StockPoolServiceImpl.java

@@ -188,15 +188,16 @@ public class StockPoolServiceImpl implements StockPoolService {
             StockPoolVO.StockPoolVOBuilder builder = StockPoolVO.builder()
                     .code(stock.getStockCode())
                     .name(stock.getStockName())
-                    .addDate(stock.getAddDate() != null ? stock.getAddDate().format(DATE_FORMATTER) : "");
-            
+                    .addDate(stock.getAddDate() != null ? stock.getAddDate().format(DATE_FORMATTER) : "")
+                    .status(stock.getStatus());
+
             // 填充实时行情
             QuoteData quote = quoteMap.get(stock.getStockCode());
             if (quote != null) {
                 builder.currentPrice(quote.currentPrice)
                        .changePercent(quote.changePercent);
             }
-            
+
             result.add(builder.build());
         }