状态: pending 日期: 2026-07-12 分支: cfclub
当前"富"维度的问题:
EnergyService 中 calcChildWealth / calcParentWealth,拆为子维度pages/wealth/index.vue,角色感知的富展示GET /api/energy/wealth-detailMemberEnergyDTO 增加子维度字段和身克富字段新增子维度字段和身克富字段:
// 富的子维度(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; // 用户可见的消息
@PostMapping("/api/energy/wealth-detail")
public Result<MemberEnergyDTO> getWealthDetail(@RequestParam Long memberId,
@RequestParam String memberType) {
// childId for child, userId for parent
// 返回包含子维度 + 身克富标记的 MemberEnergyDTO
}
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
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
新增通用方法 applyBodyWealthRestraint(bodyScore, wealthScore, dto)
if (身 < 40): -> penalty(健康稀释财富):wealth * (0.5 + 0.5*身/100)
elif (身 < 50 && 富 > 身+20): -> overdraw(透支预警,不下调财富分)
else: -> normal(正常,按身高质量时给正向消息)
在 calcParentEnergy / calcChildEnergy 末尾调用。
当前页面:品牌头部 + 用户卡片 + 行动数据 + 财富数据 + 成就徽章 + 成长报告 + 菜单列表
新页面:
[PageBanner] "利他创富 · 价值共享"
[身克富状态条] 身体底盘 + 财富能量 + 消息行
[三子维度卡片] 根据 role 显示成人/孩子子维度
[增值服务入口] 记账打卡 / 保单管理 / 创客中心 / 成就系统 / 成长报告
[底部菜单] 精简后的操作入口
两个进度条+一条消息的卡片:
<view class="body-wealth-bar" :class="'status-' + bodyWealthStatus">
<view class="bar-row">
<text class="bar-label">身体分解</text>
<view class="bar-track"><view class="bar-fill body-bar" :style="'width:'+bodyScore+'%'"></view></view>
<text class="bar-value">{{ bodyScore }}分</text>
</view>
<view class="bar-row">
<text class="bar-label">财力素养</text>
<view class="bar-track"><view class="bar-fill wealth-bar" :style="'width:'+wealthScore+'%'"></view></view>
<text class="bar-value">{{ wealthScore }}分</text>
</view>
<view v-if="bodyWealthMessage" class="bw-message">{{ bodyWealthMessage }}</view>
</view>
三种状态视觉:normal 灰色/ overdraw 琥珀色底色+警告 / penalty 红色底色+箭头
成人版:
<view class="sub-dim-grid" v-if="role === 'parent'">
<view class="sub-dim-card" @click="goToIncome">
<text class="sub-dim-score">{{ wealthIncome || '-' }}</text>
<text class="sub-dim-label">金钱/收入</text>
<text class="sub-dim-desc">累计佣金</text>
</view>
<view class="sub-dim-card" @click="goToAchievements">
<text class="sub-dim-score">{{ wealthAchievement || '-' }}</text>
<text class="sub-dim-label">个人成就</text>
<text class="sub-dim-desc">认证成就</text>
</view>
<view class="sub-dim-card" @click="goToNetwork">
<text class="sub-dim-score">{{ wealthNetwork || '-' }}</text>
<text class="sub-dim-label">资源网络</text>
<text class="sub-dim-desc">推荐关系</text>
</view>
</view>
孩子版类似,改为成绩/社交/积分。
新增 loadWealthDetail() 替代原有的 loadEnergyData(),调用 POST /api/energy/wealth-detail
# 后端编译
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 |
修改 | 富维度算法更新 |