Files
junhong_cmp_fiber/.planning/ROADMAP.md
huang 129a38f942 docs(03-02): 完成设备体系 sync-info 接入计划(DEVICE-04)
- 新增 03-02-SUMMARY.md,记录 updateDeviceFromSyncInfo 实现细节
- STATE.md:Phase 3 完成标记,追加 DEVICE-04 决策,Next Action 更新为 Phase 4
- ROADMAP.md:Phase 3 进度更新为 Complete(2/2 plans)
- REQUIREMENTS.md:DEVICE-04 标记完成
2026-03-28 11:40:04 +08:00

159 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ROADMAP — 君鸿卡管系统 v1.0
**Project:** 君鸿卡管系统
**Milestone:** v1.0 — MVP 上线准备
**Created:** 2026-03-27
**Granularity:** Standard (6 phases)
**Coverage:** 46/46 requirements mapped ✓
---
## Phases
- [x] **Phase 1: P0 紧急修复** — 修复所有阻塞主链路的 P0 Bug使充值→购包→佣金→实名激活全链路可跑通 (completed 2026-03-27)
- [x] **Phase 2: 权限/财务/实名/轮询修复** — 补全企业权限、提现财务流程、实名激活架构重构、轮询系统小修 (completed 2026-03-28)
- [x] **Phase 3: 设备体系完善** — 扩展设备模型字段、对接 Gateway sync-info、完善绑卡标识 (completed 2026-03-28)
- [ ] **Phase 4: 退款 + 支付 + 运营修复** — 实现退款完整流程、补全富友支付接口、修复运营逻辑
- [ ] **Phase 5: 代码质量清理** — 消除技术债务:佣金断链可观测、删废弃代码、修复权限不一致、迁移分层
- [ ] **Phase 6: 流量体系改革(低峰期)** — 破坏性变更:日粒度流量表 + Redis 增量缓存 + 每日落盘任务
---
## Phase Details
### Phase 1: P0 紧急修复
**Goal**: 修复所有已知的主链路断点,使"充值→自动购包→佣金计算→实名激活"的完整业务链路可端到端跑通,消除数据写入混乱(实名状态常量)和并发安全漏洞(提现重复创建)
**Depends on**: 无(基础)
**Requirements**: CRITICAL-01, CRITICAL-02, CRITICAL-03, CRITICAL-04, CRITICAL-05, CRITICAL-06, CRITICAL-07, CRITICAL-08
**Success Criteria** (what must be TRUE):
1. C 端用户完成实名后,实名状态正确写入 DB值为常量 1不再是 2实名激活任务正确触发
2. C 端用户钱包充值成功后,自动购包任务入队并被消费,佣金计算任务被正确触发
3. 代理代购下级场景(场景 5的订单金额正确使用 operatorCostPrice佣金链计算正常
4. 批量导入设备 Excel 后,设备记录中含 IMEI 字段Gateway 调用不再因 IMEI 缺失而失败
5. 并发提交提现申请时RowsAffected 检查生效,不会创建重复提现单
**Plans**: 5 plans
Plans:
- [x] 01-01-PLAN.md — CRITICAL-01/02实名状态常量统一 + C 端实名校验修复Wave 1
- [x] 01-02-PLAN.md — CRITICAL-03实名激活任务断链PollingHandler 注入 asynqClientWave 2
- [x] 01-03-PLAN.md — CRITICAL-04/05充值回调触发自动购包 + 佣金链补全Wave 2parallel
- [x] 01-04-PLAN.md — CRITICAL-06代购订单 sellerCostPrice 6 处语义审查修正Wave 1parallel
- [x] 01-05-PLAN.md — CRITICAL-07/08设备导入 IMEI + 提现冻结并发校验Wave 1parallel
---
### Phase 2: 权限/财务/实名/轮询修复
**Goal**: 补全企业账号权限边界(可查但不可刷新)、修复提现流程数据完整性(审批人字段/remark 必填/激活配置并发锁)、重构实名激活判断架构(从布尔字段改为 expiry_base 枚举)、修复轮询调度和安全漏洞
**Depends on**: Phase 1CRITICAL-01 先统一实名常量REALNAME 重构再依此展开)
**Requirements**: PERM-01, PERM-02, FIN-01, FIN-02, FIN-03, REALNAME-01, REALNAME-02, REALNAME-03, REALNAME-04, REALNAME-05, POLL-01, POLL-02, POLL-03, POLL-04
**Success Criteria** (what must be TRUE):
1. 企业账号可以调用 Resolve 接口查询被授权资产,但无法触发 Refresh 刷新运营商数据
2. 提现审批通过后approved_by 和 approved_at 字段正确填充;拒绝时若 remark 为空则返回校验错误
3. 同时激活两个提现配置时,数据库行锁生效,不会出现两条 active=true 的记录
4. 数据库中 tb_package 表不再有 enable_realname_activation 字段,改为 expiry_base 字段(值为 from_activation 或 from_purchase
5. C 端购买普通号卡套餐时实名检查按卡类型card_category == "normal")判断,逻辑简洁正确
6. polling:protect 任务正确进入调度器,停复机时若 gatewayClient 为 nil 返回业务错误而非静默成功
**Plans**: 2 plans
Plans:
- [x] 02-01-PLAN.md — PERM-01/02 + FIN-01/02/03 + POLL-01/02/03/04权限/财务/轮询小修合并Wave 1
- [x] 02-02-PLAN.md — REALNAME-01~05实名激活架构重构原子执行Wave 1parallel
---
### Phase 3: 设备体系完善
**Goal**: 扩展设备数据模型,对接 Gateway sync-info 接口实现设备在线状态/固件版本实时同步,建立"当前使用卡"标识,使设备详情页展示真实状态
**Depends on**: Phase 1设备导入 IMEI 修复在 CRITICAL-07 完成)
**Requirements**: DEVICE-01, DEVICE-02, DEVICE-03, DEVICE-04
**Success Criteria** (what must be TRUE):
1. tb_device 表含 online_status / last_online_time / software_version / switch_mode / last_gateway_sync_at 字段DB 迁移已执行)
2. 调用设备刷新接口后设备的在线状态、固件版本、当前使用卡is_current从 Gateway 实时更新
3. tb_device_sim_binding 表含 is_current 字段,同一设备同一时刻只有一条 is_current=true 的绑定记录
4. 设备详情接口返回数据包含 online_status、software_version 等字段,值与 Gateway 同步结果一致
**Plans**: 2 plans
Plans:
- [x] 03-01-PLAN.md — DEVICE-01/02/03DB 迁移 + 模型扩展 + Gateway SyncDeviceInfo + DTO 字段Wave 1
- [x] 03-02-PLAN.md — DEVICE-04Asset Service 接入 sync-infoRefresh 追加设备状态同步Wave 2
---
### Phase 4: 退款 + 支付 + 运营修复
**Goal**: 实现完整退款流程(申请→审批→佣金回扣),补全富友支付 JSAPI/小程序接口(替换留桩),修复运营逻辑断点(卡状态 3/4 触发、payment_status 枚举统一)
**Depends on**: Phase 2佣金链路稳定后再做退款佣金回扣
**Requirements**: REFUND-01, REFUND-02, REFUND-03, PAY-01, PAY-02, PAY-03, PAY-04, OPS-01, OPS-02
**Success Criteria** (what must be TRUE):
1. tb_refund_request 表存在,退款申请/列表/详情/审批/拒绝/退回/重提共 7 个接口可正常调用
2. 退款审批通过后,代理佣金钱包按比例扣减(使用整数算术,无 float64 精度误差),负向交易流水写入
3. 富友支付 JSAPI 和小程序接口可正常发起支付返回前端所需调起参数FuiouPayJSAPIResponse DTO
4. 平台代理使用钱包代购资产时,正确使用资产所属代理成本价,绕过代理身份检查
5. IoT 卡/设备在套餐激活成功后 status 更新为 3最后一个 active 套餐到期后 status 更新为 4
6. C 端和管理端 payment_status 枚举值一致1/2/3/4不再存在独立的 C 端映射函数
**Plans**: TBD
---
### Phase 5: 代码质量清理
**Goal**: 消除技术债务:使佣金断链可观测(创建零额待审记录),删除废弃的 sim:status:sync 任务代码,修复错误被吞、分层违规、权限不一致等问题,确保 bootstrap 完整注入所有回调
**Depends on**: Phase 4所有业务功能稳定后集中清理
**Requirements**: CLEAN-01, CLEAN-02, CLEAN-03, CLEAN-04, CLEAN-05, CLEAN-06
**Success Criteria** (what must be TRUE):
1. 佣金链计算遇到断链时,创建 status=99amount=0的待审记录日志可见不再静默跳过
2. 代码库中不再有 sim:status:sync 任务相关代码注册行、常量、sim.go、sync/service.go
3. asset/service.go 中的 cards 错误被记录为 Warn 日志,不再被 `_` 吞掉
4. client_order Handler 订单查询通过 Service 层调用,不再直接访问 DB
5. 停复机回调StopResumeCallback / ResumeCallback在 bootstrap 中正确注入,套餐联动触发正常
**Plans**: TBD
---
### Phase 6: 流量体系改革(低峰期)
**Goal**: 重构流量统计架构为"日粒度 DB 落盘 + Redis 增量缓存"模式,解决运营商自然月归零覆盖问题,提供今日 Redis + 历史 DB 两段数据的统一查询层
**Depends on**: Phase 5代码清理完成系统稳定降低破坏性变更风险
**Requirements**: TRAFFIC-01, TRAFFIC-02, TRAFFIC-03, TRAFFIC-04, TRAFFIC-05
**Success Criteria** (what must be TRUE):
1. tb_card_daily_usage 表存在,含唯一约束 (iot_card_id, date)DB 迁移已执行)
2. 流量轮询写入时,仅在有增量时写 Redis不再直接覆盖 current_month_usage_mb
3. 每日凌晨 2 点 Asynq Scheduler 任务执行SCAN Redis Key → UPSERT tb_card_daily_usage → 删 Key日志可验证
4. current_month_usage_mb 使用增量累加而非覆盖,运营商自然月归零不会影响 DB 中的历史累计值
5. GetDailyUsage 接口返回"今日 Redis 数据 + 历史 DB 日粒度数据"合并结果,兼容两段数据
**Plans**: TBD
**⚠️ 部署警告**: 此 Phase 涉及 DB 迁移 + Redis 架构变更,必须在低峰期(凌晨 2~5 点)独立部署
---
## Progress
| Phase | Plans Complete | Status | Completed |
|-------|----------------|--------|-----------|
| 1. P0 紧急修复 | 5/5 | Complete | 2026-03-27 |
| 2. 权限/财务/实名/轮询修复 | 2/2 | Complete | 2026-03-28 |
| 3. 设备体系完善 | 2/2 | Complete | 2026-03-28 |
| 4. 退款 + 支付 + 运营修复 | 0/TBD | Not started | - |
| 5. 代码质量清理 | 0/TBD | Not started | - |
| 6. 流量体系改革(低峰期)| 0/TBD | Not started | - |
---
## Requirement Coverage
**Total v1 requirements:** 46
**Mapped:** 46 ✓
| Category | Count | Phase |
|----------|-------|-------|
| CRITICAL | 8 | Phase 1 |
| PERM | 2 | Phase 2 |
| FIN | 3 | Phase 2 |
| REALNAME | 5 | Phase 2 |
| POLL | 4 | Phase 2 |
| DEVICE | 4 | Phase 3 |
| REFUND | 3 | Phase 4 |
| PAY | 4 | Phase 4 |
| OPS | 2 | Phase 4 |
| CLEAN | 6 | Phase 5 |
| TRAFFIC | 5 | Phase 6 |
---
*Roadmap created: 2026-03-27*