Requirements Document
Introduction
微信小程序历史查询模块,允许用户选择日期区间查询股票池中股票的历史信息。以列表形式展示股票代码、名称、收盘价格、隔日最高价(从下一天的历史信息表中获取)以及隔日最高涨幅。当下一天数据不存在时,显示"-"。
Glossary
- History_Query_Module: 微信小程序中的历史查询模块,负责展示股票池历史数据
- Stock_Pool_History: 股票池历史数据表,存储每日入池股票的详细信息
- Next_Day_Data: 下一交易日的历史数据,用于计算隔日最高价和涨幅
- Date_Range_Picker: 日期区间选择器,用户选择查询的开始和结束日期
- History_List: 历史数据列表组件,展示查询结果
Requirements
Requirement 1: 日期区间选择
User Story: As a 用户, I want 选择开始日期和结束日期, so that 我可以查询指定时间范围内的股票池历史数据。
Acceptance Criteria
- WHEN 用户进入历史查询页面, THE Date_Range_Picker SHALL 显示默认的日期区间(当前月份)
- WHEN 用户点击开始日期选择器, THE Date_Range_Picker SHALL 弹出日期选择控件供用户选择
- WHEN 用户点击结束日期选择器, THE Date_Range_Picker SHALL 弹出日期选择控件供用户选择
- WHEN 用户选择的开始日期晚于结束日期, THE History_Query_Module SHALL 提示用户"开始日期不能晚于结束日期"
- WHEN 用户完成日期选择, THE Date_Range_Picker SHALL 以"YYYY年MM月DD日"格式显示所选日期
Requirement 2: 历史数据查询
User Story: As a 用户, I want 点击查询按钮获取历史数据, so that 我可以查看指定日期区间内的股票池历史信息。
Acceptance Criteria
- WHEN 用户点击查询按钮, THE History_Query_Module SHALL 向后端发送包含开始日期和结束日期的查询请求
- WHEN 查询请求发送中, THE History_Query_Module SHALL 显示加载状态
- WHEN 后端返回数据成功, THE History_Query_Module SHALL 将数据渲染到历史列表中
- WHEN 后端返回空数据, THE History_Query_Module SHALL 显示"暂无数据"提示
- IF 网络请求失败, THEN THE History_Query_Module SHALL 显示错误提示并允许用户重试
Requirement 3: 历史数据列表展示
User Story: As a 用户, I want 以列表形式查看历史股票数据, so that 我可以了解每只股票的详细信息和次日表现。
Acceptance Criteria
- THE History_List SHALL 显示以下字段:股票代码、股票名称、收盘价格、隔日最高价、隔日最高涨幅
- WHEN 显示股票代码, THE History_List SHALL 展示完整的股票代码(如:000001)
- WHEN 显示股票名称, THE History_List SHALL 展示股票的中文名称
- WHEN 显示收盘价格, THE History_List SHALL 展示当日收盘价,保留两位小数
- WHEN 该股票存在下一交易日数据, THE History_List SHALL 从下一天的历史记录中获取并显示隔日最高价(day_highest_price字段)
- WHEN 该股票不存在下一交易日数据, THE History_List SHALL 在隔日最高价列显示"-"
- WHEN 该股票存在下一交易日数据, THE History_List SHALL 直接从下一天的历史记录中获取隔日最高涨幅(high_trend字段)
- WHEN 该股票不存在下一交易日数据, THE History_List SHALL 在隔日最高涨幅列显示"-"
- WHEN 涨幅为正数, THE History_List SHALL 以红色显示涨幅值
- WHEN 涨幅为负数, THE History_List SHALL 以绿色显示涨幅值
- WHEN 隔日最高涨幅大于等于2%, THE History_List SHALL 显示"成功"标签(绿色背景)
- WHEN 隔日最高涨幅小于等于-3%, THE History_List SHALL 显示"失败"标签(红色背景)
- WHEN 隔日最高涨幅在-3%到2%之间, THE History_List SHALL 不显示成功/失败标签
Requirement 4: 后端API支持
User Story: As a 系统, I want 提供历史数据查询API, so that 微信小程序可以获取带有隔日信息的历史数据。
Acceptance Criteria
- THE Stock_Pool_History_API SHALL 接收开始日期和结束日期作为查询参数
- WHEN 查询历史数据, THE Stock_Pool_History_API SHALL 返回指定日期区间内的所有股票池记录
- FOR EACH 返回的股票记录, THE Stock_Pool_History_API SHALL 查询该股票下一交易日的历史数据
- WHEN 下一交易日数据存在, THE Stock_Pool_History_API SHALL 在返回结果中包含隔日最高价字段(取自下一天记录的day_highest_price)
- WHEN 下一交易日数据存在, THE Stock_Pool_History_API SHALL 在返回结果中包含隔日最高涨幅字段(取自下一天记录的high_trend)
- WHEN 下一交易日数据不存在, THE Stock_Pool_History_API SHALL 返回null表示无数据
Requirement 5: 列表交互体验
User Story: As a 用户, I want 流畅地浏览历史数据列表, so that 我可以快速找到感兴趣的股票信息。
Acceptance Criteria
- WHEN 数据量较大, THE History_List SHALL 支持下拉加载更多数据
- WHEN 用户下拉刷新, THE History_Query_Module SHALL 重新查询并更新列表数据
- WHEN 列表滚动, THE History_List SHALL 保持表头固定可见
- THE History_List SHALL 每行显示完整信息,不截断文字