## Why 当前系统的资产详情页面没有"历史订单"维度。管理员无法在查看某个资产时直接知道它卖给过谁、买过哪些套餐。换货流程(`ExchangeOrder`)已经在数据库层记录了旧资产→新资产的映射关系,但没有被利用来追溯前代订单。随着资产复用(换货后二次销售)场景增多,管理员需要一种方式能追溯到"这个资产的来源及历史"。 ## What Changes - **[NEW]** 新增 B 端接口:`GET /api/admin/assets/:identifier/orders`,查询某资产本代的历史订单 - **[NEW]** 支持查询参数 `include_previous=true`,通过换货链追溯并返回前代资产的订单(附带世代标注) - 接口路径遵循提案一中已确立的 `:identifier` 统一规范(依赖提案一完成后的注册表和路由规范) ## Capabilities ### New Capabilities - `asset-historical-orders`:资产往期订单查询接口,支持本代/跨代两种视图,响应中明确标注每条订单所属世代 ### Modified Capabilities (无——本提案仅新增接口,不修改现有接口行为) ## Impact **受影响的代码**: - `internal/handler/admin/asset.go`:新增 `Orders` handler - `internal/routes/asset.go`:注册新路由 - `internal/service/asset/service.go`:新增 `GetOrders()` 方法,包含换货链追溯逻辑 - `internal/store/postgres/order_store.go`:新增按 `asset_identifier` 精确查询(依赖提案一的 `asset_identifier` 快照字段) - `internal/store/postgres/exchange_order_store.go`:新增按资产 ID 查询换货链的方法 - `internal/model/dto/asset_dto.go`:新增 `AssetOrdersRequest`、`AssetOrdersResponse`、`AssetOrderItem` DTO - `cmd/api/docs.go` 和 `cmd/gendocs/main.go`:注册新 Handler **前置依赖**: - 提案一(`asset-identifier-standardization`)必须先完成:本提案依赖 `Order.asset_identifier` 快照字段和统一的 `:identifier` 路由规范