**问题理解** - 需要在发货统计中体现“采购价格”,用于与销售价格/订单金额做对比与分析。 - 当前 `ops_shipping_stats` 仅存储销售单价 `product_price_cents`,无采购单价。 **数据库变更** - 在 `ops_shipping_stats` 表新增字段: - `purchase_price_cents BIGINT NOT NULL DEFAULT 0 COMMENT '采购单价(分)'` - SQL(MySQL): - `ALTER TABLE ops_shipping_stats ADD COLUMN purchase_price_cents BIGINT NOT NULL DEFAULT 0 COMMENT '采购单价(分)';` - 生成代码:执行 gormgen 以更新 Model/DAO(`cmd/gormgen/main.go`,保持原有 DSN 与 `-tables` 参数)。 **后端改造** - 控制器 `internal/api/admin/shipping_stats_admin.go`: - 创建请求体 `CreateShippingStatRequest` 增加 `purchase_price_cents`(可选)。 - 更新请求体 `UpdateShippingStatRequest` 增加 `purchase_price_cents`(可选)。 - 保存/更新时写入 `purchase_price_cents`。 - 盈亏策略:保持现有“盈亏=销售单价×发货数量 − 订单实付金额”; - 额外提供两个对比维度(不入库,仅响应扩展字段,便于前端展示): - `purchase_total_cents = purchase_price_cents * shipped_qty` - `gross_profit_cents = (product_price_cents - purchase_price_cents) * shipped_qty` - 若你希望持久化以上值,也可扩展表结构,但默认前端计算即可。 - 列表与详情响应:保持原结构,新增返回 `purchase_price_cents`(其余对比指标前端计算)。 **前端改造** - 创建/编辑表单(已两列布局): - 左列补充“采购单价(分)”输入框,默认可为空(为空按0处理)。 - 列表新增列: - 采购单价(分→元格式化) - 采购总额(分→元,前端用 `purchase_price_cents * shipped_qty` 计算) - 毛利(分→元,前端用 `(product_price_cents - purchase_price_cents) * shipped_qty` 计算) - 保持“盈亏”列为后端返回值显示(颜色提示不变)。 **验收标准** - 新建/编辑支持录入采购单价,并正确写入与返回。 - 列表能展示采购单价、采购总额和销售对比(毛利),并与现有盈亏并行显示。 - 不影响既有筛选、分页与来源类型逻辑。 **后续可选** - 若采购价格数据来源稳定(如采购单据),可支持远程选择或自动回填;当前先手动录入以快速上线。 请确认以上方案,通过后我将进行数据库字段添加、代码生成与前后端联调实现。