## 任务描述 实现管理员报价 API,自动计算滞留费并生成总费用。 ## 技术细节 - **文件位置**:`backend/app/api/routes/admin.py` - **端点**:`POST /api/v1/admin/parcels/{parcel_id}/quote` - **请求体**: ```json { "shipping_fee_usd": 50.00, "remote_area_fee_usd": 10.00 } ``` - **响应**: ```json { "shipping_fee_usd": 50.00, "remote_area_fee_usd": 10.00, "storage_fee_usd": 15.00, "total_fee_usd": 75.00, "parcel_status": "payment_pending" } ``` ## 业务逻辑 1. 验证包裹状态必须是 `awaiting_shipment` 2. 获取包裹中所有商品(通过 `parcel_id` 关联) 3. 调用 `StorageFeeService.calculate_item_storage_fee()` 计算每个商品的滞留费 4. 汇总所有商品的滞留费 5. 计算总费用 = 运费 + 偏远费 + 滞留费 6. 更新包裹: - `shipping_quote_usd` = 总费用 - `storage_fee_usd` = 滞留费总和 7. 状态变为 `payment_pending` 8. 记录操作日志 ## 完成标准 - [ ] API 端点实现完成 - [ ] 滞留费计算正确(使用 Decimal 确保精度) - [ ] 状态转换验证正确 - [ ] 单元测试通过(包括滞留费计算测试) - [ ] API 文档更新 ## 参考 - 设计文档:`docs/PARCEL_MANAGEMENT_DESIGN.md` 第 4.2.2 节 - 滞留费服务:`backend/app/services/storage_fee_service.py`