## Why 订单创建后,售后场景无法通过手机号快速验证订单归属(需跨表关联),且 `OrderItem` 缺少套餐类型快照,套餐删除后类型信息永久丢失。将买家手机号、昵称、套餐类型在创建时快照到订单,彻底解决这两个问题。 ## What Changes - **Order 表**:新增 `buyer_phone`(下单时买家主手机号快照)、`buyer_nickname`(下单时买家昵称快照,允许为空) - **OrderItem 表**:新增 `package_type`(套餐类型快照,`formal` / `addon`) - **数据库迁移**:新增字段;历史订单 `buyer_phone` / `buyer_nickname` 留空,`package_type` 从套餐表回填 - **下单逻辑**:`client_order` Service 和 `admin_order` Service 创建订单时自动查询并填充三个快照字段 - **查询接口**:订单列表/详情 DTO 暴露新字段;后台订单列表支持按 `buyer_phone` 精确过滤 ## Capabilities ### New Capabilities 无新能力,均为现有能力的字段扩充。 ### Modified Capabilities - `order-management`:订单模型新增买家快照字段(buyer_phone、buyer_nickname),后台查询支持按手机号过滤 - `client-order-purchase`:C 端下单时自动填充买家快照(手机号、昵称) - `iot-order`:OrderItem 模型新增 package_type 快照,下单时填充 ## Impact - **数据层**:`tb_order`(新增 2 列)、`tb_order_item`(新增 1 列)、迁移脚本 - **代码层**: - `internal/model/order.go` — Order、OrderItem struct 新增字段 - `internal/service/client_order/service.go` — CreateOrder 填充快照 - `internal/service/admin_order/service.go`(代购场景)— 同步填充 - `internal/model/dto/order_dto.go`、`client_order_dto.go` — 响应 DTO 新增字段 - `internal/store/postgres/order_store.go` — List 查询支持 buyer_phone 过滤 - **无破坏性变更**:新字段均可为空,现有接口响应向下兼容(仅追加字段)