# 富维度体系重构:子维度拆分 + 身克富杠杆 + 小程序富页重设计 **状态:** pending **日期:** 2026-07-12 **分支:** cfclub --- ## 背景 当前"富"维度的问题: 1. **成人和孩子的"富"混为一谈**——成人=积分总量/500,孩子=积分获取效率,没有差异化的"富"定义 2. **缺少身克富的系统体现**——相克关系只有文档,没有在能量计算和前端落地 3. **小程序富页面是大杂烩**——显示的是"行动数据"(任务/购买/活动/课程)和"成长报告",与"富"无关,本质是"我的页面" --- ## 目标 - P0: 重构 `EnergyService` 中 `calcChildWealth` / `calcParentWealth`,拆为子维度 - P0: 实现身克富杠杆(健康风险扣减 + 透支预警标记) - P0: 重写 `pages/wealth/index.vue`,角色感知的富展示 - P1: 新增后端 API `GET /api/energy/wealth-detail` - P1: 更新 DTO `MemberEnergyDTO` 增加子维度字段和身克富字段 - P1: 更新设计文档(wuxing-philosophy.md 和 energy-design.md) --- ## 改动清单 ### 后端 (EnergyService.java + DTO) #### 1. DTO:MemberEnergyDTO.java 新增子维度字段和身克富字段: ```java // 富的子维度(parent) private Integer wealthIncome; // 金钱/收入 private Integer wealthAchievement; // 社会成就 private Integer wealthNetwork; // 资源网络 // 富的子维度(child) private Integer wealthEducation; // 学业成绩 private Integer wealthSocial; // 社交筹码 private Integer wealthPoints; // 规则博弈(积分效率) // 身克富标记 private String bodyWealthStatus; // normal / overdraw / penalty private String bodyWealthMessage; // 用户可见的消息 ``` #### 2. 新增 API:EnergyController.java ```java @PostMapping("/api/energy/wealth-detail") public Result getWealthDetail(@RequestParam Long memberId, @RequestParam String memberType) { // childId for child, userId for parent // 返回包含子维度 + 身克富标记的 MemberEnergyDTO } ``` #### 3. EnergyService.java — calcChildWealth 重构 `calcChildWealth(child, dto)` → 返回加权总分,同时填充 dto 的子分 | 子方法 | 数据源 | 权重 | |:-------|--------|:----:| | `calcChildWealthEducation(child)` | DanAssessmentResult(最近3次测评综合分+进步趋势) | 30% | | `calcChildWealthSocial(child)` | 活动参与次数(活动系统) | 20%(占位,暂无数据回0) | | `calcChildWealthPoints(child)` | 现有积分获取效率逻辑 | 50% | 评分公式:`total = edu*0.3 + social*0.2 + points*0.5` #### 4. EnergyService.java — calcParentWealth 重构 `calcParentWealth(parent, dto)` → 返回加权总分,同时填充 dto 的子分 | 子方法 | 数据源 | 权重 | |:-------|--------|:----:| | `calcParentWealthIncome(parent)` | 现有积分算法 | 50% | | `calcParentWealthAchievement(parent)` | User.achievements 扩展字段 JSON | 30%(第一阶段回0) | | `calcParentWealthNetwork(parent)` | 推荐团队人数 | 20%(第一阶段回0) | 评分公式:`total = income*0.5 + achievement*0.3 + network*0.2` #### 5. EnergyService.java — 身克富杠杆 新增通用方法 `applyBodyWealthRestraint(bodyScore, wealthScore, dto)` ``` if (身 < 40): -> penalty(健康稀释财富):wealth * (0.5 + 0.5*身/100) elif (身 < 50 && 富 > 身+20): -> overdraw(透支预警,不下调财富分) else: -> normal(正常,按身高质量时给正向消息) ``` 在 `calcParentEnergy` / `calcChildEnergy` 末尾调用。 --- ### 前端 (pages/wealth/index.vue) #### 页面结构重写 当前页面:品牌头部 + 用户卡片 + 行动数据 + 财富数据 + 成就徽章 + 成长报告 + 菜单列表 新页面: ``` [PageBanner] "利他创富 · 价值共享" [身克富状态条] 身体底盘 + 财富能量 + 消息行 [三子维度卡片] 根据 role 显示成人/孩子子维度 [增值服务入口] 记账打卡 / 保单管理 / 创客中心 / 成就系统 / 成长报告 [底部菜单] 精简后的操作入口 ``` #### 身克富状态条 两个进度条+一条消息的卡片: ```html 身体分解 {{ bodyScore }}分 财力素养 {{ wealthScore }}分 {{ bodyWealthMessage }} ``` 三种状态视觉:`normal` 灰色/ `overdraw` 琥珀色底色+警告 / `penalty` 红色底色+箭头 #### 三子维度卡片 成人版: ```html {{ wealthIncome || '-' }} 金钱/收入 累计佣金 {{ wealthAchievement || '-' }} 个人成就 认证成就 {{ wealthNetwork || '-' }} 资源网络 推荐关系 ``` 孩子版类似,改为成绩/社交/积分。 #### API 调用 新增 `loadWealthDetail()` 替代原有的 `loadEnergyData()`,调用 `POST /api/energy/wealth-detail` --- ### 验证 ```bash # 后端编译 cd cfc-backend && mvn clean compile # 前端 cd cfc-frontend && npm run build:mp-weixin ``` --- ## 文件修改清单 | # | 文件路径 | 操作 | 说明 | |:-:|:---------|:----:|------| | 1 | `cfc-backend/.../dto/MemberEnergyDTO.java` | 修改 | 新增8个子维度+身克富字段 | | 2 | `cfc-backend/.../service/EnergyService.java` | 修改 | calcChildWealth/calcParentWealth重构 + 新增7个方法 + 身克富杠杆 | | 3 | `cfc-backend/.../controller/EnergyController.java` | 修改 | 新增 wealth-detail API | | 4 | `cfc-frontend/pages/wealth/index.vue` | 重写 | 完整页面重设计 | | 5 | `cfc-frontend/utils/api.js` | 修改 | 新增 getWealthDetail 方法 | | 6 | `docs/superpowers/specs/2026-06-08-five-dimension-wuxing-philosophy.md` | 修改 | 身克富解读、富子维度说明 | | 7 | `docs/superpowers/specs/2026-06-05-five-dimension-energy-design.md` | 修改 | 富维度算法更新 | ## 不做的事 - 不改 schema.sql(不新建表) - 不改 DatabaseInitializer(不需要迁移) - 不改 EnergySandboxDTO(家庭聚合值不受影响) - 不改任何 Mapper - 第一阶段不实现成就/网络录入接口(返回0占位)