设计文档: docs/superpowers/specs/2026-07-14-family-promotion-redesign.md
计划评审: Momus [OKAY] — 无阻塞性问题
| 阶段 | 内容 | 工作量估计 |
|---|---|---|
| P1 | 二维码改造:全部切 wxacode + env_version 修复 + scene 解析 | ~4h |
| P2 | 家庭公共账户:建表 + CommissionService 改造 + 注册绑定 | ~8h |
| P3 | 前端重构:推广中心重设计 + 成员贡献榜 + 支付集成 | ~12h |
| P4 | 管理后台:家庭收益管理 + 提现审核 | ~4h |
所有二维码改为 wxacode 小程序码,修复 env_version,新增 ref= 场景处理。
1.1 → 1.2 → (1.3, 1.4 并行) → 1.5 → 1.6 → 1.7
| 任务 | 依赖 | QA 工具 |
|---|---|---|
| 1.1 | 无 | mvn compile 验证 |
| 1.2 | 1.1 | Postman 调用 POST /api/common/qrcode 检查返回图片格式 |
| 1.3 | 1.2 | Postman 调 InviteController 验证异常处理 |
| 1.4 | 1.2 | 同 1.3 |
| 1.5 | 1.2 | 微信开发者工具模拟扫码场景 |
| 1.6 | 1.5 | 微信开发者工具验证注册绑定 |
| 1.7 | 全部 | mvn clean compile |
cfc-backend/src/main/java/com/etotem/cfc/service/WechatService.java:195env_version 从硬编码 "trial" 改为 @Value("${wechat.env-version:release}")application-*.yml 增加 wechat.env-versioncfc-backend/src/main/java/com/etotem/cfc/controller/CommonController.java{ content } 改为 { type, referralCode }WechatService.generateWxacode() 生成小程序码ref={referralCode}, page=pages/invite/joincfc-backend/src/main/java/com/etotem/cfc/controller/InviteController.javacfc-backend/src/main/java/com/etotem/cfc/controller/family/FamilyInviteController.javacfc-frontend/App.vuehandleScene() 增加 ref= 前缀解析cfc-frontend/pages/invite/join.vuerefCode 参数,注册时提交到后端cd cfc-backend && mvn clean compile新增 3 张表 + CommissionService 家庭归因 + 注册绑定。
(2.1, 2.3) → 2.2 → (2.4, 2.5, 2.6 并行)
| 表名 | 操作 | 说明 |
|---|---|---|
family_earnings |
CREATE | 家庭公共账户余额、可提现额、总收益 |
family_earnings_member |
CREATE | 成员分配额度、权限(is_admin)、贡献金额 |
family_earnings_record |
CREATE | 流水记录:收入/提现/颁发/消费 |
commission_records |
ALTER | 加 family_id 列 |
schema.sql |
SYNC | 同步建表语句 |
| DatabaseInitializer | 添加 | ensureTable + ensureColumn 迁移 |
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.javacfc-backend/src/main/java/com/etotem/cfc/service/FamilyEarningsService.javagetFamilySummary(familyId) — 家庭总览getMemberContributions(familyId) — 成员贡献earn(familyId, amount, fromUserId) — 收入withdraw(familyId, amount, adminUserId) — 提现distribute(familyId, toUserId, amount, adminUserId) — 颁发consume(familyId, userId, amount) — 消费扣款getRecords(familyId, type) — 流水查询cfc-backend/src/main/java/com/etotem/cfc/service/commission/CommissionService.javasettle() 和 settleTwoLevel() 增加家庭归因逻辑family_earnings + family_earnings_recordcfc-backend/.../service/assessment/AssessmentOrderService.javacfc-backend/.../service/payment/PaymentService.javacfc-backend/.../service/PackagePaymentService.javacfc-backend/.../service/ProductOrderService.javacfc-backend/.../service/MemberSubscriptionService.javacfc-backend/.../service/MembershipService.javacfc-backend/src/main/java/com/etotem/cfc/controller/FamilyEarningsController.javaPOST /api/earnings/family/summaryPOST /api/earnings/family/membersPOST /api/earnings/family/recordsPOST /api/earnings/admin/distributePOST /api/earnings/admin/toggle-memberPOST /api/earnings/admin/withdrawrefCode 注册directCountfamily_earnings_record推广中心重新设计,家庭级数据展示 + 成员贡献榜 + 管理员面板。
cfc-frontend/pages/promotion/index.vuecfc-frontend/pages/promotion/ 子组件cfc-frontend/pages/promotion/index.vuecfc-frontend/utils/api.js(或类似文件)管理员后台支持家庭收益管理和提现审核。
cfc-web/src/views/earnings/cfc-web/src/views/earnings/