Decision: 保留旧 state 字段但重新编号,新增 delivery_status、pay_status、after_sale_status 三个字段。
Rationale: spec 明确要求参考美团做法。旧 state 将 0-13 的支付/订单/配送/退款状态混在一起,自取/堂食订单无法复用。拆分后每种关注点独立,各类型订单只使用相关字段。
Alternatives considered:
type 判断不改字段:不同类型状态含义不同,查询和展示逻辑会变成大量 if-else,不可维护Decision: 新增 deliveryStatus(Long)、payStatus(Long)、afterSaleStatus(Long)三个字段。废弃 diningStatus、isAccepted 等字段但保留不删。
Rationale:
longitude/latitude,骑手距离排序可直接使用payType 字段已存在,可用于区分到付/在线支付qsId/qsImg 字段已存在,骑手端查询可直接用Decision: 在现有 resultMap 中新增三个字段映射,insert/update 语句同步添加。旧 SQL 查询方法保留不删。
Rationale:
Decision: 三个新列表接口统一使用 MyBatis-Plus LambdaQueryWrapper,前端传 tab 字符串参数,后端映射到四字段查询条件。
Rationale:
Alternatives considered:
Decision: 骑手端 newTask Tab 使用 LambdaQueryWrapper.last() 追加 MySQL ST_Distance_Sphere 函数排序。
Rationale: PosOrder 已有 longitude/latitude 字段,无需 JOIN PosStore。MySQL 5.7+ 支持 ST_Distance_Sphere。
Decision: 改造 TestTask.java 中的四个方法,使用新字段条件。
Rationale:
testTiming()(未支付超时取消):查 payStatus=0 AND state=0,设 state=4zidwancheng()(自动完成):查 state=2 AND afterSaleStatus=0 且超时,设 state=3refundProcessing():暂不改造(spec 明确本次不实现退款流程)checkAppointmentOrder():条件可能涉及 state,需同步更新Decision: 平台管理端(foodie-admin-vue)的订单列表页需改造筛选条件和状态展示。商家端(foodie-store)和用户端/骑手端为移动 App,不在本次范围内(spec 未提及)。
Rationale: spec 第 16 节明确描述了平台管理端的改造细节,是本次需求的明确范围。
Decision: 不需要数据迁移。历史订单数据由开发者手动清空。
Rationale: spec 明确"系统未正式使用",新字段通过 ALTER TABLE 添加后所有新订单直接使用新值。旧数据手动清空即可。