feat(distribution): 收口账号同步与支付配置并优化结算

This commit is contained in:
yml2213
2026-10-30 16:03:30 +08:00
parent d37cbad323
commit 81a19431fa
11 changed files with 1122 additions and 26 deletions
@@ -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
View File
@@ -395,7 +395,7 @@ hfb_jysh/
### Phase 4:管理后台核心(4–5 周)
> 状态:**进行中(2026-10-30)**。已完成仪表盘、订单、退款、提现、商品、用户、申诉、财务看板、资金出款、运营开支、公告管理、审计日志、系统配置、分销站点、分销看板、站点钱包、分销订单、结算批次、分销用户、站点公告、分销商品、支付通道、规则版本、二维码池、站点短信与邀请返利;剩余分销账号同步、主站支付配置管理等细分长尾和真实订单端到端回归。
> 状态:**进行中(2026-10-30)**。已完成仪表盘、订单、退款、提现、商品、用户、申诉、财务看板、资金出款、运营开支、公告管理、审计日志、系统配置、支付配置、分销站点、分销看板、站点钱包、分销订单、结算批次、分销用户、站点公告、分销商品、支付通道、规则版本、二维码池、站点短信与邀请返利;分销账号同步入口已接入,订单结算比例已 bps 化;剩余真实外部支付 E2E、真实站点数据业务回归与上线准备。
- 后台登录、工作台、订单列表、订单详情。
- 商品列表、商品详情、审核。