All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m16s
核心改造: - 增量算法:流量计算从覆盖式改为增量累加(gateway - lastReading),支持上游运营商重置检测 - 日流量缓冲:insertDataUsageRecord 改为 Redis INCRBYFLOAT,每日凌晨落盘到 tb_card_daily_usage - 运营商:新增 data_reset_day 字段(联通=27,其余=1) - IoT卡:新增 last_gateway_reading_mb 字段存储上次网关读数 - 查询层:新建 TrafficQueryService 合并 Redis(今日)+ DB(历史)数据源 - 清理:删除 DataUsageRecord model/store,移除 polling_handler 旧引用 迁移:000094-000097(carrier字段、iot_card字段、数据初始化、日流量表)
1.0 KiB
1.0 KiB
MODIFIED Requirements
Requirement: 流量详单存储方式
卡级流量详单 SHALL 从无差别直接写 DB 改为 Redis 缓冲 + 日落盘。insertDataUsageRecord() SHALL NOT 再创建 DataUsageRecord 记录,直接替换为 Redis 写入。
Scenario: 轮询写流量数据
- WHEN 轮询系统检测到卡的流量变化(增量 > 0)
- THEN 系统 SHALL 仅写 Redis 缓冲(
INCRBYFLOAT),不写 DB
Scenario: 旧代码清理
- WHEN 新存储路径完全就绪
- THEN SHALL 删除
DataUsageRecordmodel、DataUsageRecordStore、bootstrap 中的相关引用 - AND
tb_data_usage_record旧表数据暂保留在 DB(后续通过数据清理功能清除),代码层完全去除依赖
Clarification: 套餐级日记录不受影响
tb_package_usage_daily_record(套餐级日记录)由 UsageService.updateDailyRecord() 在轮询将增量记录到套餐已用量时同步写入,与本次改造的卡级 tb_card_daily_usage 是两个完全不同的维度,互不影响。