feat(distribution): 收口账号同步与支付配置并优化结算
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# Phase 2 验收报告(分销收口、结算 bps 与构建优化)
|
||||
|
||||
> 日期:2026-10-30
|
||||
> 项目:解忧商行(hfb_jysh)
|
||||
> 范围:分销账号同步、主站支付配置、测试站点回归、订单结算 bps、构建拆包
|
||||
> 结论:**1–4 与 6 已完成;真实外部支付 E2E 被支付商户/短信/实名配置阻塞**
|
||||
|
||||
---
|
||||
|
||||
## 1. 分销账号同步
|
||||
|
||||
- 页面:`frontend/src/features/admin/AdminDistributionListingsPage.tsx`
|
||||
- 接口:`POST /api/admin/distribution/sites/:id/sync-accounts`
|
||||
- 权限:`distribution:account_display`
|
||||
- 弹窗支持:新账号默认加价、是否清理失效商品;执行后展示同步/跳过/更新/恢复/清理数量。
|
||||
- 请求类型与结果类型已落 `frontend/src/features/admin/types.ts`,API 封装在 `frontend/src/features/admin/api.ts`。
|
||||
- 验收中未执行真实同步写入。
|
||||
|
||||
## 2. 主站支付配置管理
|
||||
|
||||
- 页面:`frontend/src/features/admin/AdminPaymentConfigsPage.tsx`
|
||||
- 路由:`/console-jy8k3m/payment-configs`
|
||||
- 权限:`payment_config:list/create/update/delete`
|
||||
- 能力:
|
||||
- 服务商、支付方式、状态、环境筛选
|
||||
- 名称、商户号、网关、回调、签名/密钥、额外配置 JSON、业务标签
|
||||
- 创建、编辑、删除;密钥只写不读,编辑时留空不修改
|
||||
- 拉卡拉/顺诚的 `extra_config` 通过 JSON 文本框维护
|
||||
- 后端配置列表在开发库为空,只读 GET 返回 200。
|
||||
|
||||
## 3. 测试站点真实数据回归
|
||||
|
||||
已通过管理端 onboard 接口创建开发测试站点:
|
||||
|
||||
```text
|
||||
site_id: 1
|
||||
site_code: jysh_test_1793347033
|
||||
domain: test-1793347033.zuhaoc.com
|
||||
admin: jysh_admin_1793347033
|
||||
```
|
||||
|
||||
站点级只读接口全部 200:
|
||||
|
||||
- 钱包、提现记录、短信配置、邀请配置
|
||||
- 二维码列表/统计、分销看板、分销用户、站点公告
|
||||
- 收货商品、账号展示、支付通道、结算批次、分销订单
|
||||
|
||||
全部 14 个后台页面路由返回 200,包括分销看板、支付配置与既有分销页面。
|
||||
|
||||
## 4. 订单结算比例 bps 化
|
||||
|
||||
- `backend/internal/modules/order/pricing.go`
|
||||
- 新增 `readOrderSnapshotBPS`:优先读 `buyer_ratio_bps` / `seller_ratio_bps`,缺失时把旧 float 比例换算为 bps。
|
||||
- 新增 `quantityUnits`:M 数量转百分之一 M 的整数单位。
|
||||
- 新增 `roundedDiv` / `proportionalCent`:金额与比例折算改为整数四舍五入除法。
|
||||
- 币费、消耗品号主分摊不再使用 float 乘法。
|
||||
- 新增测试 `TestCalculateCheckoutSettlementPrefersRatioBPS`,验证 bps 覆盖冲突的旧比例。
|
||||
- 验证:
|
||||
|
||||
```text
|
||||
go test ./internal/modules/order ./internal/modules/listing ./pkg/money
|
||||
通过
|
||||
|
||||
go test ./internal/modules/order ./internal/modules/payment ./internal/modules/distribution ./internal/modules/listing ./internal/modules/invitation ./internal/modules/chat
|
||||
全部通过
|
||||
```
|
||||
|
||||
## 5. E2E 执行情况与阻塞
|
||||
|
||||
已完成可执行部分:订单、支付、分销、商品、邀请、聊天模块测试全部通过。
|
||||
|
||||
真实外部支付订单 E2E **未执行**,原因:
|
||||
|
||||
- 开发库没有真实支付商户配置,无法发起外部支付/回调。
|
||||
- 短信签名与实名服务仍为空,无法完成真实注册/实名链路。
|
||||
- 测试站点尚无真实商品、买家和卖家用户数据。
|
||||
|
||||
因此本项记录为环境阻塞,不伪造“全链路已通过”。
|
||||
|
||||
## 6. 构建拆包优化
|
||||
|
||||
`frontend/vite.config.ts` 新增:
|
||||
|
||||
- `vendor-antd-icons`
|
||||
- `vendor-date`
|
||||
|
||||
首次尝试把全部 antd/rc 打进独立包产生 1.2 MB 超大包,已回退该策略,仅拆图标与日期库。
|
||||
|
||||
最终构建:
|
||||
|
||||
```text
|
||||
npx tsc --noEmit 通过
|
||||
npm run build 通过
|
||||
主入口 492.81 kB / gzip 155.77 kB
|
||||
vendor-antd-icons 101.61 kB / gzip 29.54 kB
|
||||
vendor-date 16.77 kB / gzip 6.73 kB
|
||||
```
|
||||
|
||||
主入口已从 525.59 kB 降至 492.81 kB,低于 500 kB;超大包告警消失。
|
||||
|
||||
## 7. 当前工作区
|
||||
|
||||
本轮新增/修改尚未提交:
|
||||
|
||||
- 账号同步与分销商品页
|
||||
- 主站支付配置页与 API/类型
|
||||
- 订单结算 bps 与测试
|
||||
- Vite 拆包配置
|
||||
- 本文档与项目计划
|
||||
|
||||
## 8. 下一步
|
||||
|
||||
1. 提交本轮变更。
|
||||
2. 配置测试支付商户、短信签名与实名服务,再跑真实订单 E2E。
|
||||
3. 用测试站点补充商品/买家/卖家数据,回归商品、订单、钱包、结算写流程。
|
||||
4. 上线前执行完整 `scripts/check.sh` 与生产冒烟。
|
||||
+1
-1
@@ -395,7 +395,7 @@ hfb_jysh/
|
||||
|
||||
### Phase 4:管理后台核心(4–5 周)
|
||||
|
||||
> 状态:**进行中(2026-10-30)**。已完成仪表盘、订单、退款、提现、商品、用户、申诉、财务看板、资金出款、运营开支、公告管理、审计日志、系统配置、分销站点、分销看板、站点钱包、分销订单、结算批次、分销用户、站点公告、分销商品、支付通道、规则版本、二维码池、站点短信与邀请返利;剩余分销账号同步、主站支付配置管理等细分长尾和真实订单端到端回归。
|
||||
> 状态:**进行中(2026-10-30)**。已完成仪表盘、订单、退款、提现、商品、用户、申诉、财务看板、资金出款、运营开支、公告管理、审计日志、系统配置、支付配置、分销站点、分销看板、站点钱包、分销订单、结算批次、分销用户、站点公告、分销商品、支付通道、规则版本、二维码池、站点短信与邀请返利;分销账号同步入口已接入,订单结算比例已 bps 化;剩余真实外部支付 E2E、真实站点数据业务回归与上线准备。
|
||||
|
||||
- 后台登录、工作台、订单列表、订单详情。
|
||||
- 商品列表、商品详情、审核。
|
||||
|
||||
Reference in New Issue
Block a user