**问题理解**
- 需要在发货统计中体现“采购价格”，用于与销售价格/订单金额做对比与分析。
- 当前 `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` 计算）
  - 保持“盈亏”列为后端返回值显示（颜色提示不变）。

**验收标准**
- 新建/编辑支持录入采购单价，并正确写入与返回。
- 列表能展示采购单价、采购总额和销售对比（毛利），并与现有盈亏并行显示。
- 不影响既有筛选、分页与来源类型逻辑。

**后续可选**
- 若采购价格数据来源稳定（如采购单据），可支持远程选择或自动回填；当前先手动录入以快速上线。

请确认以上方案，通过后我将进行数据库字段添加、代码生成与前后端联调实现。