熟食消费模式实施任务清单
1. 开发边界
- 代码仓库:
/Users/liang/AndroidStudioProjects/SellWeight - 产品与架构文档:
product_SellWeight/ - 本清单只描述实施顺序、代码落点和验证门槛,不替代 PRD。
2. 分阶段任务
阶段 A:数据与设置
- [x] 增加熟食商品类型常量,避免复用普通称重商品 ID。
- [x] 为商品模型补充
basisGrams=500、启用状态和排序字段。 - [x] 将商品数据库版本升级为 2,使用安全迁移保留已有数据。
- [x] 增加熟食商品查询、新增、编辑、启停和排序 DAO。
- [x] 在
WeightSetActivity增加“熟食设置”同级页签。 - [x] 实现熟食设置列表和编辑页,计价基准 500g 只读展示。
阶段 B:熟食称重与购物车
- [x] 增加首页“熟食消费”入口并创建独立
CookedFoodActivity。 - [x] 建立熟食模式状态机:先选后称/先称后选、稳定、主动加入。
- [x] 加入前校验商品已确定、重量大于 0 且重量稳定。
- [x] 加入购物车前校验商品存在、重量大于 0、重量稳定。
- [x] 以克保存重量,按
重量克 ÷ 500 × 单价计算金额。 - [x] 按商品 ID 合并重复加入,保存名称和单价快照。
- [x] 支持删除购物车行和仅修改重量。
- [x] 保留自定义金额输入并纳入总额。
阶段 C:本地订单与支付
- [x] 在订单模型和订单表增加独立熟食明细字段。
- [x] 定义熟食明细 JSON 版本和解析失败降级策略。
- [x] 创建订单时,
categories只写单条custom_dish。 - [x] 熟食明细单独写入
cooked_food_details。 - [x] 在线支付请求只发送一个
custom_dish,金额为订单总额。 - [x] 离线补传继续只读取
categories,不读取熟食明细字段。 - [x] 订单详情优先显示熟食明细,旧订单保持兼容。
阶段 D:回归与交付
- [x] 增加金额、同品合并和本地明细序列化测试;状态约束和编辑权限由页面逻辑覆盖。
- [ ] 增加数据库升级保留原商品数据测试。
- [ ] 增加在线支付和离线补传 payload 测试。
- [ ] 回归麻辣烫、汤底、普通自定义金额和旧订单上传。
- [ ] 按验收标准执行真机称重流程。
- [ ] 更新发布说明和操作手册中的熟食流程。
阶段 E:在线订单管理
- [x] 新增在线订单接口、响应模型和请求封装。
- [x] 新增独立
OrderManagerOnlineActivity,复用当前订单页面视觉结构。 - [x] 实现在线日期查询、统计、分页、空态和网络异常处理。
- [x] 首页“订单管理”改为进入在线订单页。
- [x] 增加在线订单页与本地订单页的互相切换入口。
- [ ] 真机验证服务端字段、日期查询和分页数据。
3. 推荐代码落点
| 领域 | 现有位置 | 实施建议 |
|---|---|---|
| 入口 | HomeActivity | 增加熟食入口或模式分支 |
| 称重页 | CookedFoodActivity | 复用硬件回调,独立维护熟食业务状态 |
| 商品模型 | ProductBean | 增加熟食类型和计价基准 |
| 商品数据库 | ProductDatabaseHelper | 增加字段、DAO 和版本迁移 |
| 设置页 | WeightSetActivity | 增加熟食设置 Fragment |
| 支付 | OrderPaymentRequest | 统一生成单条 custom_dish |
| 本地订单 | Order、OrderDao | 增加独立熟食明细列 |
| 离线补传 | UploadOrderWorker | 保持只使用 categories |
| 稳定重量 | ScaleProtocolParser | 使用稳定标志拦截主动加入 |
4. 开发完成定义
只有以下条件全部满足,才可认为功能开发完成:
- 需求说明和 PRD 中的全部强规则有对应实现或测试。
- 数据库升级不会删除既有本地商品。
- 在线和离线上传均只有一个
custom_dish。 - 本地订单能恢复熟食明细。
- 熟食流程和现有麻辣烫流程互不回归。
- 验收清单全部通过,阻塞问题有记录和处理结论。
阶段 F:熟食定值商品
- [x] 为熟食商品增加
saleMode,区分按重量(500g)与定值(份)。 - [x] 商品数据库升级到版本 3,并对历史商品默认迁移为按重量计价。
- [x] 熟食设置页支持新增和编辑两种计价方式,列表显示对应单位。
- [x] 熟食收银页增加“称重熟食 / 定值商品”切换。
- [x] 定值商品点击即加入购物车,同品重复点击合并数量。
- [x] 购物车按行类型编辑重量或数量,名称、单价和计价方式保持只读。
- [x] 对账单区分
g与份的展示,并在本地熟食明细中保存计价方式和数量。 - [x] 增加重量、定值数量合并和混合金额计算单元测试。
- [ ] 真机验证定值商品与称重商品交替操作、秤盘非零拦截和支付对账单。