Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 40s
feat(pay): 添加支付API基础结构 feat(miniapp): 创建支付测试小程序页面与配置 feat(wechatpay): 配置微信支付参数与证书 fix(guild): 修复成员列表查询条件 docs: 更新代码规范文档与需求文档 style: 统一前后端枚举显示与注释格式 refactor(admin): 重构用户奖励发放接口参数处理 test(title): 添加称号效果参数验证测试
41 lines
2.5 KiB
Markdown
41 lines
2.5 KiB
Markdown
**问题理解**
|
||
- 需要在发货统计中体现“采购价格”,用于与销售价格/订单金额做对比与分析。
|
||
- 当前 `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` 计算)
|
||
- 保持“盈亏”列为后端返回值显示(颜色提示不变)。
|
||
|
||
**验收标准**
|
||
- 新建/编辑支持录入采购单价,并正确写入与返回。
|
||
- 列表能展示采购单价、采购总额和销售对比(毛利),并与现有盈亏并行显示。
|
||
- 不影响既有筛选、分页与来源类型逻辑。
|
||
|
||
**后续可选**
|
||
- 若采购价格数据来源稳定(如采购单据),可支持远程选择或自动回填;当前先手动录入以快速上线。
|
||
|
||
请确认以上方案,通过后我将进行数据库字段添加、代码生成与前后端联调实现。 |