Bläddra i källkod

chore: update docs zxyj→cfc references

User 3 månader sedan
förälder
incheckning
879922f68a

+ 10 - 10
docs/dan-requirements.md

@@ -756,18 +756,18 @@ CREATE TABLE dan_assessment_result (
 ## 九、现有代码参考
 
 ### 9.1 实体类(需更新)
-- `zxyj-backend/src/main/java/com/zxyj/entity/DanAssessmentResult.java` - 需增加 packageCode 和 indicatorScores
-- `zxyj-backend/src/main/java/com/zxyj/entity/AssessmentAppointment.java` - 需增加 packageCode
+- `cfc-backend/src/main/java/com/etotem/cfc/entity/DanAssessmentResult.java` - 需增加 packageCode 和 indicatorScores
+- `cfc-backend/src/main/java/com/etotem/cfc/entity/AssessmentAppointment.java` - 需增加 packageCode
 
 ### 9.2 需创建
-- `zxyj-backend/src/main/java/com/zxyj/entity/DanPackage.java`
-- `zxyj-backend/src/main/java/com/zxyj/entity/DanIndicator.java`
-- `zxyj-backend/src/main/java/com/zxyj/entity/DanIndicatorTemplate.java`
-- `zxyj-backend/src/main/java/com/zxyj/controller/dan/DanPackageController.java`
-- `zxyj-backend/src/main/java/com/zxyj/controller/dan/DanIndicatorController.java`
-- `zxyj-backend/src/main/java/com/zxyj/controller/dan/DanAssessmentController.java`
-- `zxyj-backend/src/main/java/com/zxyj/controller/dan/DanRecommendController.java`
-- `zxyj-frontend/pages/dan/` 目录及页面
+- `cfc-backend/src/main/java/com/etotem/cfc/entity/DanPackage.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/entity/DanIndicator.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/entity/DanIndicatorTemplate.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanPackageController.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanIndicatorController.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanAssessmentController.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanRecommendController.java`
+- `cfc-frontend/pages/dan/` 目录及页面
 
 ---
 

+ 2 - 2
docs/focus-requirements.md

@@ -289,7 +289,7 @@ CREATE TABLE game_ranking (
 ## 八、现有代码参考
 
 ### 8.1 实体类位置
-`zxyj-backend/src/main/java/com/zxyj/entity/MiniGame.java`
+`cfc-backend/src/main/java/com/etotem/cfc/entity/MiniGame.java`
 
 ### 8.2 现有三款游戏
 | 游戏 | gameCode | 状态 |
@@ -299,7 +299,7 @@ CREATE TABLE game_ranking (
 | 数独 | sudoku | ✅ 已实现 |
 
 ### 8.3 前端页面
-- `zxyj-frontend/pages/games/` 目录下已有对应页面
+- `cfc-frontend/pages/games/` 目录下已有对应页面
 
 ### 8.4 待补充
 - 游戏记录存储(需新增表)

+ 1 - 1
docs/requirements-analysis.md

@@ -66,7 +66,7 @@
 | 选择后进入详情页 | ✅ 已实现 - `confirmRole()` 方法切换到详情表单 | ✅ |
 
 **实现位置**:
-- `zxyj-frontend/pages/user-edit/user-edit.vue`
+- `cfc-frontend/pages/user-edit/user-edit.vue`
 - 首次登录判断:`options.needsRoleSelect === 'true'`
 
 ---

+ 1 - 1
docs/superpowers/plans/2026-05-11-phase3-map-to-dto.md

@@ -76,7 +76,7 @@
 ## Implementation Approach
 
 For each DTO:
-1. Create DTO class in `com.zxyj.dto` with @Data + @NotNull/@NotBlank/@Size annotations
+1. Create DTO class in `com.etotem.cfc.dto` with @Data + @NotNull/@NotBlank/@Size annotations
 2. Add @Valid + new DTO type to Controller method signature
 3. Replace Map field extraction with DTO getter calls
 4. Remove redundant null checks now covered by @Valid

+ 2 - 2
docs/superpowers/plans/2026-05-13-priority-groups-sfms-migration-parent-tasks.md

@@ -82,7 +82,7 @@ sfms:
 - [ ] **Step 2: 编译验证**
 
   ```bash
-  cd zxyj-backend && mvn clean compile
+  cd cfc-backend && mvn clean compile
   ```
   预期: BUILD SUCCESS
 
@@ -98,7 +98,7 @@ sfms:
 - [ ] **Step 4: 提交**
 
   ```bash
-  git add zxyj-backend/src/main/java/com/zxyj/config/SfmsDataSourceConfig.java
+  git add cfc-backend/src/main/java/com/etotem/cfc/config/SfmsDataSourceConfig.java
   git commit -m "fix: 修复SfmsDataSourceConfig配置前缀不匹配,去掉hikari层级"
   ```
 

+ 6 - 6
docs/superpowers/plans/2026-05-16-parent-redesign.md

@@ -13,7 +13,7 @@
 ### Task 1: Create child-detail.vue (new page)
 
 **Files:**
-- Create: `zxyj-frontend/pages/parent/child-detail.vue`
+- Create: `cfc-frontend/pages/parent/child-detail.vue`
 
 **Spec:**
 - Route `/pages/parent/child-detail?childId=X`
@@ -43,7 +43,7 @@
 ### Task 2: Restructure parent-index.vue
 
 **Files:**
-- Modify: `zxyj-frontend/pages/index/parent-index.vue`
+- Modify: `cfc-frontend/pages/index/parent-index.vue`
 
 **Changes:**
 1. Replace the existing `child-status-card` with a **child cards row** at the top (after greeting):
@@ -68,7 +68,7 @@ child cards row (scroll-view horizontal, new)
 ### Task 3: Register child-detail route in pages.json
 
 **Files:**
-- Modify: `zxyj-frontend/pages.json`
+- Modify: `cfc-frontend/pages.json`
 
 **Add:**
 ```json
@@ -83,7 +83,7 @@ child cards row (scroll-view horizontal, new)
 ### Task 4: Support childId param in create-task.vue
 
 **Files:**
-- Modify: `zxyj-frontend/pages/tasks/create-task.vue`
+- Modify: `cfc-frontend/pages/tasks/create-task.vue`
 
 **Changes:**
 - In `onLoad(options)`: if `options.childId` exists, pre-select that child in the picker
@@ -93,7 +93,7 @@ child cards row (scroll-view horizontal, new)
 ### Task 5: Support childId param in parent/wishes/index.vue
 
 **Files:**
-- Modify: `zxyj-frontend/pages/parent/wishes/index.vue`
+- Modify: `cfc-frontend/pages/parent/wishes/index.vue`
 
 **Changes:**
 - In `onLoad(options)`: accept `childId`, filter wishes by childId if provided
@@ -102,7 +102,7 @@ child cards row (scroll-view horizontal, new)
 ### Task 6: Support childId param in growth/index.vue
 
 **Files:**
-- Modify: `zxyj-frontend/pages/growth/index.vue`
+- Modify: `cfc-frontend/pages/growth/index.vue`
 
 **Changes:**
 - In `onLoad(options)`: accept `childId`, auto-select that child

+ 16 - 16
docs/superpowers/plans/2026-05-19-guide-invite-code-flow.md

@@ -13,9 +13,9 @@
 ### Task 1: Backend — Add type field to GuideInviteCode
 
 **Files:**
-- Modify: `zxyj-backend/.../entity/GuideInviteCode.java:24` (add type field)
-- Modify: `zxyj-backend/.../service/GuideInviteCodeService.java` (support type in create/generate)
-- Modify: `zxyj-backend/.../controller/guide/GuideTeamController.java` (add type to invite-code response)
+- Modify: `cfc-backend/.../entity/GuideInviteCode.java:24` (add type field)
+- Modify: `cfc-backend/.../service/GuideInviteCodeService.java` (support type in create/generate)
+- Modify: `cfc-backend/.../controller/guide/GuideTeamController.java` (add type to invite-code response)
 
 **Details:**
 - Add `private String type;` to `GuideInviteCode` with values `"team"` / `"family"`
@@ -29,8 +29,8 @@
 ### Task 2: Backend — Invite code validation with type routing
 
 **Files:**
-- Modify: `zxyj-backend/.../service/GuideInviteCodeService.java`
-- Modify: `zxyj-backend/.../controller/guide/GuideManagementController.java`
+- Modify: `cfc-backend/.../service/GuideInviteCodeService.java`
+- Modify: `cfc-backend/.../controller/guide/GuideManagementController.java`
 
 **Details:**
 - `validateInviteCode(code, type)` — validates code matches the expected type
@@ -42,7 +42,7 @@
 ### Task 3: Backend — Team join/leave endpoints
 
 **Files:**
-- New: (add to) `zxyj-backend/.../controller/guide/GuideTeamController.java`
+- New: (add to) `cfc-backend/.../controller/guide/GuideTeamController.java`
 
 **Endpoints:**
 - `POST /api/guide/team/join` — accept `{ inviteCode, userId }`, validates code, checks if user is already a teacher, if in another team → error telling them to leave first
@@ -54,8 +54,8 @@
 ### Task 4: Web admin — Show both codes in Layout.vue dialog
 
 **Files:**
-- Modify: `zxyj-web/src/api/guide.js` — add `getMyFamilyInviteCode()`
-- Modify: `zxyj-web/src/views/Layout.vue` — extend invite code dialog
+- Modify: `cfc-web/src/api/guide.js` — add `getMyFamilyInviteCode()`
+- Modify: `cfc-web/src/views/Layout.vue` — extend invite code dialog
 
 **Details:**
 - Add "家庭邀请码" section below "团队邀请码" in the existing dialog
@@ -68,8 +68,8 @@
 ### Task 5: Mini-program — Registration with invite code
 
 **Files:**
-- Modify: `zxyj-frontend/pages/login/login.vue`
-- Modify: `zxyj-frontend/utils/api.js`
+- Modify: `cfc-frontend/pages/login/login.vue`
+- Modify: `cfc-frontend/utils/api.js`
 
 **Details:**
 - When app opens with invite code param (from QR code or shared link), store it
@@ -82,9 +82,9 @@
 ### Task 6: Mini-program — Invite code routing (application flow)
 
 **Files:**
-- New: `zxyj-frontend/pages/guide/apply/index.vue` (guide application page)
-- Modify: `zxyj-frontend/pages/teacher/index.vue`
-- Modify: `zxyj-frontend/App.vue`
+- New: `cfc-frontend/pages/guide/apply/index.vue` (guide application page)
+- Modify: `cfc-frontend/pages/teacher/index.vue`
+- Modify: `cfc-frontend/App.vue`
 
 **Details:**
 - After registration, if invite code is team-type:
@@ -99,7 +99,7 @@
 ### Task 7: Mini-program — Team join confirmation page
 
 **Files:**
-- New: `zxyj-frontend/pages/guide/team-confirm/index.vue`
+- New: `cfc-frontend/pages/guide/team-confirm/index.vue`
 
 **Details:**
 - Shows: inviting guide info (name, avatar), current team info (if any)
@@ -112,7 +112,7 @@
 ### Task 8: Database migration
 
 **Files:**
-- Modify: `zxyj-backend/.../config/DatabaseInitializer.java`
+- Modify: `cfc-backend/.../config/DatabaseInitializer.java`
 
 **SQL:**
 ```sql
@@ -125,7 +125,7 @@ ALTER TABLE guide_invite_codes ADD INDEX idx_type (type);
 ### Task 9: Mini-program registration page update
 
 **Files:**
-- Modify: `zxyj-frontend/pages/login/login.vue` or registration page
+- Modify: `cfc-frontend/pages/login/login.vue` or registration page
 
 **Details:**
 - Remove role selector when invite code is present

+ 37 - 37
docs/superpowers/plans/2026-05-24-parent-homepage-system-points.md

@@ -34,10 +34,10 @@ points_log 表: + category VARCHAR(20)         -- 'task' / 'system' 分类标识
 ### Task 1: 数据库 Schema 变更
 
 **Files:**
-- Modify: `zxyj-backend/src/main/resources/schema.sql`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/entity/PointsLog.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/entity/Child.java`
+- Modify: `cfc-backend/src/main/resources/schema.sql`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/entity/PointsLog.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/entity/Child.java`
 
 - [ ] **Step 1: schema.sql 添加字段**
 
@@ -91,7 +91,7 @@ private String category;
 
 - [ ] **Step 5: 编译验证**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 ---
@@ -99,9 +99,9 @@ Expected: BUILD SUCCESS
 ### Task 2: PointsService 添加系统积分方法
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/service/PointsService.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/service/api/PointsServiceInterface.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/mapper/PointsLogMapper.java` (一般不需要改)
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/service/PointsService.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/service/api/PointsServiceInterface.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/mapper/PointsLogMapper.java` (一般不需要改)
 
 - [ ] **Step 1: PointsService 添加 awardSystemPoints 方法**
 
@@ -236,7 +236,7 @@ Page<PointsLog> getPointsLogsByCategory(Long childId, String category, Integer p
 
 - [ ] **Step 3: 编译验证**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 ---
@@ -244,8 +244,8 @@ Expected: BUILD SUCCESS
 ### Task 3: 测评完成自动发放系统积分
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/controller/guide/GuideRecordController.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/service/AssessmentService.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideRecordController.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentService.java`
 
 - [ ] **Step 1: GuideRecordController.createRecord 中发放系统积分**
 
@@ -304,7 +304,7 @@ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Gu
 
 - [ ] **Step 3: 编译验证**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 ---
@@ -312,8 +312,8 @@ Expected: BUILD SUCCESS
 ### Task 4: ChildInfoDTO 增加 systemPoints
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/dto/ChildInfoDTO.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/service/UserService.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/dto/ChildInfoDTO.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/service/UserService.java`
 
 - [ ] **Step 1: ChildInfoDTO 添加 systemPoints**
 
@@ -331,7 +331,7 @@ dto.setSystemPoints(child.getSystemPoints());
 
 - [ ] **Step 3: 编译验证**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 ---
@@ -339,19 +339,19 @@ Expected: BUILD SUCCESS
 ### Task 5: 家长首页统计数据 API
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/parent/ParentDashboardController.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/service/TaskStatsService.java` (如需要)
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/parent/ParentDashboardController.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/service/TaskStatsService.java` (如需要)
 
 - [ ] **Step 1: 创建 ParentDashboardController**
 
 ```java
-package com.zxyj.controller.parent;
+package com.etotem.cfc.controller.parent;
 
-import com.zxyj.common.Result;
-import com.zxyj.dto.ChildInfoDTO;
-import com.zxyj.service.PointsService;
-import com.zxyj.service.TaskService;
-import com.zxyj.service.UserService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.dto.ChildInfoDTO;
+import com.etotem.cfc.service.PointsService;
+import com.etotem.cfc.service.TaskService;
+import com.etotem.cfc.service.UserService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.*;
@@ -421,9 +421,9 @@ public class ParentDashboardController {
     }
 }
 
-import com.zxyj.mapper.TaskMapper;
+import com.etotem.cfc.mapper.TaskMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.Task;
+import com.etotem.cfc.entity.Task;
 ```
 
 - [ ] **Step 2: TaskService 添加 getChildTaskStats 方法**
@@ -498,7 +498,7 @@ import java.util.Map;
 
 - [ ] **Step 3: 编译验证**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 ---
@@ -506,8 +506,8 @@ Expected: BUILD SUCCESS
 ### Task 6: 修复 getFamilyMembers() URL 并增加系统积分字段
 
 **Files:**
-- Modify: `zxyj-frontend/utils/api.js`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/controller/UserController.java`
+- Modify: `cfc-frontend/utils/api.js`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/controller/UserController.java`
 
 - [ ] **Step 1: 修复前端 API URL**
 
@@ -564,7 +564,7 @@ public Result<Map<String, Object>> getFamilyMembers(HttpServletRequest request)
 
 - [ ] **Step 3: 编译验证**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 ---
@@ -572,7 +572,7 @@ Expected: BUILD SUCCESS
 ### Task 7: 家长首页对接真实数据
 
 **Files:**
-- Modify: `zxyj-frontend/pages/index/parent-index.vue`
+- Modify: `cfc-frontend/pages/index/parent-index.vue`
 
 - [ ] **Step 1: 添加 dashboard API 调用**
 
@@ -711,7 +711,7 @@ async loadData() {
 ### Task 8: PointsController 增加系统积分相关接口
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/controller/family/PointsController.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/controller/family/PointsController.java`
 
 - [ ] **Step 1: 添加系统积分余额接口**
 
@@ -743,7 +743,7 @@ public Result<Page<PointsLog>> getPointsLogsByCategory(@RequestBody Map<String,
 
 - [ ] **Step 2: 编译验证**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 ---
@@ -751,8 +751,8 @@ Expected: BUILD SUCCESS
 ### Task 9: 系统积分前端展示
 
 **Files:**
-- Modify: `zxyj-frontend/pages/rewards/rewards.vue`(积分展示区域)
-- Modify: `zxyj-frontend/pages/profile/profile.vue`(个人中心展示)
+- Modify: `cfc-frontend/pages/rewards/rewards.vue`(积分展示区域)
+- Modify: `cfc-frontend/pages/profile/profile.vue`(个人中心展示)
 
 - [ ] **Step 1: 封装前端 API**
 
@@ -786,20 +786,20 @@ try {
 
 - [ ] **Step 1: 后端编译**
 
-Run: `cd zxyj-backend && mvn clean compile`
+Run: `cd cfc-backend && mvn clean compile`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 2: 检查路由冲突**
 
 ```bash
-grep -rn '@GetMapping\|@PostMapping\|@PutMapping\|@DeleteMapping' src/main/java/com/zxyj/controller/ | grep -oP '@\w+Mapping\("\K[^"]*' | sort -u | grep -E 'dashboard|system-balance|logs-by-category|family-members'
+grep -rn '@GetMapping\|@PostMapping\|@PutMapping\|@DeleteMapping' src/main/java/com/etotem/cfc/controller/ | grep -oP '@\w+Mapping\("\K[^"]*' | sort -u | grep -E 'dashboard|system-balance|logs-by-category|family-members'
 ```
 
 Expected: 无冲突路由
 
 - [ ] **Step 3: 启动后端**
 
-Run: `cd zxyj-backend && mvn spring-boot:run`
+Run: `cd cfc-backend && mvn spring-boot:run`
 Expected: Started Application in X seconds
 
 ---

+ 47 - 47
docs/superpowers/plans/2026-05-25-invite-card-sharing.md

@@ -14,16 +14,16 @@
 
 | 文件 | 操作 | 职责 |
 |------|------|------|
-| `zxyj-backend/.../entity/InviteCard.java` | 新建 | 邀请码实体 |
-| `zxyj-backend/.../mapper/InviteCardMapper.java` | 新建 | MyBatis Mapper |
-| `zxyj-backend/.../service/InviteCardService.java` | 新建 | 生成/验证/使用邀请码 |
-| `zxyj-backend/.../controller/InviteCardController.java` | 新建 | 3个 REST 端点 |
-| `zxyj-backend/.../config/DatabaseInitializer.java` | 修改 | 建 invite_card 表 |
-| `zxyj-frontend/utils/api.js` | 修改 | 新增 3 个 API 函数 |
-| `zxyj-frontend/pages/profile/children.vue` | 修改 | 每个孩子加「邀请」按钮 + share |
-| `zxyj-frontend/pages/profile/profile.vue` | 修改 | 加「邀请家人」按钮 + share |
-| `zxyj-frontend/pages/growth/index.vue` | 修改 | 加「邀请规划师」按钮 + share |
-| `zxyj-frontend/pages/login/login.vue` | 修改 | 处理 invite_code 自动登录 |
+| `cfc-backend/.../entity/InviteCard.java` | 新建 | 邀请码实体 |
+| `cfc-backend/.../mapper/InviteCardMapper.java` | 新建 | MyBatis Mapper |
+| `cfc-backend/.../service/InviteCardService.java` | 新建 | 生成/验证/使用邀请码 |
+| `cfc-backend/.../controller/InviteCardController.java` | 新建 | 3个 REST 端点 |
+| `cfc-backend/.../config/DatabaseInitializer.java` | 修改 | 建 invite_card 表 |
+| `cfc-frontend/utils/api.js` | 修改 | 新增 3 个 API 函数 |
+| `cfc-frontend/pages/profile/children.vue` | 修改 | 每个孩子加「邀请」按钮 + share |
+| `cfc-frontend/pages/profile/profile.vue` | 修改 | 加「邀请家人」按钮 + share |
+| `cfc-frontend/pages/growth/index.vue` | 修改 | 加「邀请规划师」按钮 + share |
+| `cfc-frontend/pages/login/login.vue` | 修改 | 处理 invite_code 自动登录 |
 
 ---
 
@@ -32,15 +32,15 @@
 **前提:** 了解项目 MyBatis-Plus 实体/Mapper 写法:见 `entity/User.java`、`mapper/UserMapper.java`。
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/InviteCard.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/mapper/InviteCardMapper.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java`(加建表语句)
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/InviteCard.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/mapper/InviteCardMapper.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java`(加建表语句)
 - Test: 启动后端验证建表成功
 
 - [ ] **Step 1: 创建 InviteCard 实体**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
 import java.time.LocalDateTime;
@@ -83,10 +83,10 @@ public class InviteCard {
 - [ ] **Step 2: 创建 InviteCardMapper**
 
 ```java
-package com.zxyj.mapper;
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.InviteCard;
+import com.etotem.cfc.entity.InviteCard;
 
 public interface InviteCardMapper extends BaseMapper<InviteCard> {
 }
@@ -115,7 +115,7 @@ CREATE TABLE IF NOT EXISTS invite_card (
 - [ ] **Step 4: 编译并启动验证**
 
 ```bash
-cd zxyj-backend && mvn clean compile spring-boot:run
+cd cfc-backend && mvn clean compile spring-boot:run
 ```
 
 确认启动日志无报错,表自动创建。
@@ -123,9 +123,9 @@ cd zxyj-backend && mvn clean compile spring-boot:run
 - [ ] **Step 5: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/entity/InviteCard.java
-git add zxyj-backend/src/main/java/com/zxyj/mapper/InviteCardMapper.java
-git add zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java
+git add cfc-backend/src/main/java/com/etotem/cfc/entity/InviteCard.java
+git add cfc-backend/src/main/java/com/etotem/cfc/mapper/InviteCardMapper.java
+git add cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java
 git commit -m "feat: add invite_card table and entity"
 ```
 
@@ -134,19 +134,19 @@ git commit -m "feat: add invite_card table and entity"
 ### Task 2: 后端 — InviteCardService 生成 + 验证 + 使用
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/service/InviteCardService.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/service/InviteCardService.java`
 - Test: 编译验证
 
 - [ ] **Step 1: 创建 InviteCardService**
 
 ```java
-package com.zxyj.service;
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.common.Result;
-import com.zxyj.entity.*;
-import com.zxyj.mapper.*;
-import com.zxyj.service.UserService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.*;
+import com.etotem.cfc.mapper.*;
+import com.etotem.cfc.service.UserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -376,7 +376,7 @@ public class InviteCardService {
 - [ ] **Step 2: 编译验证**
 
 ```bash
-cd zxyj-backend && mvn clean compile
+cd cfc-backend && mvn clean compile
 ```
 
 确认无编译错误。
@@ -384,7 +384,7 @@ cd zxyj-backend && mvn clean compile
 - [ ] **Step 3: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/service/InviteCardService.java
+git add cfc-backend/src/main/java/com/etotem/cfc/service/InviteCardService.java
 git commit -m "feat: add InviteCardService with generate/verify/accept logic"
 ```
 
@@ -393,18 +393,18 @@ git commit -m "feat: add InviteCardService with generate/verify/accept logic"
 ### Task 3: 后端 — InviteCardController 三个端点
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/guide/InviteCardController.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/guide/InviteCardController.java`
 - Test: 启动后端 + curl 测试
 
 - [ ] **Step 1: 创建 InviteCardController**
 
 ```java
-package com.zxyj.controller.guide;
+package com.etotem.cfc.controller.guide;
 
-import com.zxyj.common.Result;
-import com.zxyj.entity.*;
-import com.zxyj.mapper.*;
-import com.zxyj.service.InviteCardService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.*;
+import com.etotem.cfc.mapper.*;
+import com.etotem.cfc.service.InviteCardService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.*;
@@ -493,7 +493,7 @@ public class InviteCardController {
 ```java
 // 在 InviteCardService 中注入 JwtUtil
 @Resource
-private com.zxyj.config.JwtUtil jwtUtil;
+private com.etotem.cfc.config.JwtUtil jwtUtil;
 
 // 然后 generateToken 方法:
 private String generateToken(User user) {
@@ -506,7 +506,7 @@ private String generateToken(User user) {
 - [ ] **Step 3: 启动后端测试**
 
 ```bash
-cd zxyj-backend && mvn spring-boot:run
+cd cfc-backend && mvn spring-boot:run
 ```
 
 在另一个终端测试:
@@ -530,7 +530,7 @@ curl -X POST http://localhost:8080/api/invite-card/verify \
 - [ ] **Step 4: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/controller/guide/InviteCardController.java
+git add cfc-backend/src/main/java/com/etotem/cfc/controller/guide/InviteCardController.java
 git commit -m "feat: add InviteCardController with generate/verify/accept endpoints"
 ```
 
@@ -539,7 +539,7 @@ git commit -m "feat: add InviteCardController with generate/verify/accept endpoi
 ### Task 4: 前端 — api.js 新增三个 API 函数
 
 **Files:**
-- Modify: `zxyj-frontend/utils/api.js`
+- Modify: `cfc-frontend/utils/api.js`
 
 - [ ] **Step 1: 新增 API 函数**
 
@@ -563,7 +563,7 @@ export const acceptInviteCard = (code, phone) => {
 - [ ] **Step 2: Commit**
 
 ```bash
-git add zxyj-frontend/utils/api.js
+git add cfc-frontend/utils/api.js
 git commit -m "feat: add invite card API functions"
 ```
 
@@ -572,7 +572,7 @@ git commit -m "feat: add invite card API functions"
 ### Task 5: 前端 — 孩子管理页添加「邀请」按钮
 
 **Files:**
-- Modify: `zxyj-frontend/pages/profile/children.vue`
+- Modify: `cfc-frontend/pages/profile/children.vue`
 
 - [ ] **Step 1: 在模板每个孩子项加「邀请」按钮**
 
@@ -686,7 +686,7 @@ async prepareInvite(child) {
 - [ ] **Step 6: Commit**
 
 ```bash
-git add zxyj-frontend/pages/profile/children.vue
+git add cfc-frontend/pages/profile/children.vue
 git commit -m "feat: add invite button for each child in children management"
 ```
 
@@ -695,7 +695,7 @@ git commit -m "feat: add invite button for each child in children management"
 ### Task 6: 前端 — 我的页面加「邀请家人」按钮
 
 **Files:**
-- Modify: `zxyj-frontend/pages/profile/profile.vue`
+- Modify: `cfc-frontend/pages/profile/profile.vue`
 
 - [ ] **Step 1: 添加 invite 相关数据和 onShareAppMessage**
 
@@ -792,7 +792,7 @@ async prepareFamilyInvite() {
 - [ ] **Step 6: Commit**
 
 ```bash
-git add zxyj-frontend/pages/profile/profile.vue
+git add cfc-frontend/pages/profile/profile.vue
 git commit -m "feat: add invite family button in profile page"
 ```
 
@@ -801,7 +801,7 @@ git commit -m "feat: add invite family button in profile page"
 ### Task 7: 前端 — 成长档案页加「邀请规划师」按钮
 
 **Files:**
-- Modify: `zxyj-frontend/pages/growth/index.vue`
+- Modify: `cfc-frontend/pages/growth/index.vue`
 
 - [ ] **Step 1: 添加分享数据和 onShareAppMessage**
 
@@ -884,7 +884,7 @@ async prepareGuideInvite() {
 - [ ] **Step 5: Commit**
 
 ```bash
-git add zxyj-frontend/pages/growth/index.vue
+git add cfc-frontend/pages/growth/index.vue
 git commit -m "feat: add invite guide button in growth page"
 ```
 
@@ -893,7 +893,7 @@ git commit -m "feat: add invite guide button in growth page"
 ### Task 8: 前端 — 登录页处理邀请码自动登录
 
 **Files:**
-- Modify: `zxyj-frontend/pages/login/login.vue`
+- Modify: `cfc-frontend/pages/login/login.vue`
 
 - [ ] **Step 1: onLoad 增加 invite_code 捕获**
 
@@ -1003,7 +1003,7 @@ async phoneLogin() {
 - [ ] **Step 4: Commit**
 
 ```bash
-git add zxyj-frontend/pages/login/login.vue
+git add cfc-frontend/pages/login/login.vue
 git commit -m "feat: handle invite_code auto-login in login page"
 ```
 

+ 188 - 188
docs/superpowers/plans/2026-06-02-care-family-club-design.md

@@ -10,7 +10,7 @@
 - 后端: Java 1.8 + Spring Boot 2.7.18 + MyBatis-Plus
 - 前端小程序: uni-app (Vue 2 Options API)
 - Web管理端: Vue 2 + Element UI
-- 数据库: MySQL 8.0 (zxyj主库 + sfms只读源库)
+- 数据库: MySQL 8.0 (cfc主库 + sfms只读源库)
 - 认证: JWT Bearer Token
 - 电商: Lilishop (独立微服务, REST API集成)
 
@@ -75,7 +75,7 @@
 ### 后端新增文件
 
 ```
-zxyj-backend/src/main/java/com/zxyj/
+cfc-backend/src/main/java/com/etotem/cfc/
 ├── controller/
 │   ├── body/                          # NEW
 │   │   ├── BodyHealthController.java
@@ -150,7 +150,7 @@ zxyj-backend/src/main/java/com/zxyj/
 ### 前端新增/修改文件
 
 ```
-zxyj-frontend/
+cfc-frontend/
 ├── pages/
 │   ├── index/
 │   │   ├── index.vue                  # MODIFY - 四象限首页
@@ -200,15 +200,15 @@ zxyj-frontend/
 ### Task 1: 创建 Body 域 Entity
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/BodyHealthMetric.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/BodyNutritionLog.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/BodyAntiAgingAssessment.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/BodyExerciseLog.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/BodyHealthMetric.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/BodyNutritionLog.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/BodyAntiAgingAssessment.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/BodyExerciseLog.java`
 
 - [ ] **Step 1: 创建 BodyHealthMetric entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -241,7 +241,7 @@ public class BodyHealthMetric {
 - [ ] **Step 2: 创建 BodyNutritionLog entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -274,7 +274,7 @@ public class BodyNutritionLog {
 - [ ] **Step 3: 创建 BodyAntiAgingAssessment entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -307,7 +307,7 @@ public class BodyAntiAgingAssessment {
 - [ ] **Step 4: 创建 BodyExerciseLog entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -337,7 +337,7 @@ public class BodyExerciseLog {
 
 - [ ] **Step 5: 编译验证**
 
-Run: `cd zxyj-backend && mvn compile -q`
+Run: `cd cfc-backend && mvn compile -q`
 
 Expected: BUILD SUCCESS
 
@@ -346,15 +346,15 @@ Expected: BUILD SUCCESS
 ### Task 2: 创建 Mind 域 Entity
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/MindMoodLog.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/MindPsychologicalAssessment.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/MindFamilyAtmosphereIndex.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/MindMeditationSession.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/MindMoodLog.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/MindPsychologicalAssessment.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/MindFamilyAtmosphereIndex.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/MindMeditationSession.java`
 
 - [ ] **Step 1: 创建 MindMoodLog entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -384,7 +384,7 @@ public class MindMoodLog {
 - [ ] **Step 2: 创建 MindPsychologicalAssessment entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -417,7 +417,7 @@ public class MindPsychologicalAssessment {
 - [ ] **Step 3: 创建 MindFamilyAtmosphereIndex entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -447,7 +447,7 @@ public class MindFamilyAtmosphereIndex {
 - [ ] **Step 4: 创建 MindMeditationSession entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -476,7 +476,7 @@ public class MindMeditationSession {
 
 - [ ] **Step 5: 编译验证**
 
-Run: `cd zxyj-backend && mvn compile -q`
+Run: `cd cfc-backend && mvn compile -q`
 
 Expected: BUILD SUCCESS
 
@@ -485,20 +485,20 @@ Expected: BUILD SUCCESS
 ### Task 3: 创建 Action 域 Entity
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionActivity.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionActivityRegistration.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionArticle.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionArticleCategory.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionElderCarePlan.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionElderCareLog.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionPracticeTask.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionCommunityPost.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/ActionCommunityComment.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionActivity.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionActivityRegistration.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionArticle.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionArticleCategory.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionElderCarePlan.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionElderCareLog.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionPracticeTask.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionCommunityPost.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/ActionCommunityComment.java`
 
 - [ ] **Step 1: 创建 ActionActivity entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -536,7 +536,7 @@ public class ActionActivity {
 - [ ] **Step 2: 创建 ActionActivityRegistration entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -564,7 +564,7 @@ public class ActionActivityRegistration {
 - [ ] **Step 3: 创建 ActionArticle entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -597,7 +597,7 @@ public class ActionArticle {
 - [ ] **Step 4: 创建 ActionArticleCategory entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -623,7 +623,7 @@ public class ActionArticleCategory {
 - [ ] **Step 5: 创建 ActionElderCarePlan entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -655,7 +655,7 @@ public class ActionElderCarePlan {
 - [ ] **Step 6: 创建 ActionElderCareLog entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -684,7 +684,7 @@ public class ActionElderCareLog {
 - [ ] **Step 7: 创建 ActionPracticeTask entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -716,7 +716,7 @@ public class ActionPracticeTask {
 - [ ] **Step 8: 创建 ActionCommunityPost entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -748,7 +748,7 @@ public class ActionCommunityPost {
 - [ ] **Step 9: 创建 ActionCommunityComment entity**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -774,7 +774,7 @@ public class ActionCommunityComment {
 
 - [ ] **Step 10: 编译验证**
 
-Run: `cd zxyj-backend && mvn compile -q`
+Run: `cd cfc-backend && mvn compile -q`
 
 Expected: BUILD SUCCESS
 
@@ -788,11 +788,11 @@ Expected: BUILD SUCCESS
 - [ ] **Step 1: 创建 Body 域 Mapper**
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/BodyHealthMetricMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/BodyHealthMetricMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.BodyHealthMetric;
+import com.etotem.cfc.entity.BodyHealthMetric;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -800,11 +800,11 @@ public interface BodyHealthMetricMapper extends BaseMapper<BodyHealthMetric> {}
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/BodyNutritionLogMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/BodyNutritionLogMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.BodyNutritionLog;
+import com.etotem.cfc.entity.BodyNutritionLog;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -812,11 +812,11 @@ public interface BodyNutritionLogMapper extends BaseMapper<BodyNutritionLog> {}
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/BodyAntiAgingAssessmentMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/BodyAntiAgingAssessmentMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.BodyAntiAgingAssessment;
+import com.etotem.cfc.entity.BodyAntiAgingAssessment;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -824,11 +824,11 @@ public interface BodyAntiAgingAssessmentMapper extends BaseMapper<BodyAntiAgingA
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/BodyExerciseLogMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/BodyExerciseLogMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.BodyExerciseLog;
+import com.etotem.cfc.entity.BodyExerciseLog;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -838,11 +838,11 @@ public interface BodyExerciseLogMapper extends BaseMapper<BodyExerciseLog> {}
 - [ ] **Step 2: 创建 Mind 域 Mapper**
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/MindMoodLogMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/MindMoodLogMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.MindMoodLog;
+import com.etotem.cfc.entity.MindMoodLog;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -850,11 +850,11 @@ public interface MindMoodLogMapper extends BaseMapper<MindMoodLog> {}
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/MindPsychologicalAssessmentMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/MindPsychologicalAssessmentMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.MindPsychologicalAssessment;
+import com.etotem.cfc.entity.MindPsychologicalAssessment;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -862,11 +862,11 @@ public interface MindPsychologicalAssessmentMapper extends BaseMapper<MindPsycho
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/MindFamilyAtmosphereIndexMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/MindFamilyAtmosphereIndexMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.MindFamilyAtmosphereIndex;
+import com.etotem.cfc.entity.MindFamilyAtmosphereIndex;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -874,11 +874,11 @@ public interface MindFamilyAtmosphereIndexMapper extends BaseMapper<MindFamilyAt
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/MindMeditationSessionMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/MindMeditationSessionMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.MindMeditationSession;
+import com.etotem.cfc.entity.MindMeditationSession;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -888,11 +888,11 @@ public interface MindMeditationSessionMapper extends BaseMapper<MindMeditationSe
 - [ ] **Step 3: 创建 Action 域 Mapper**
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionActivityMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionActivityMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionActivity;
+import com.etotem.cfc.entity.ActionActivity;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -900,11 +900,11 @@ public interface ActionActivityMapper extends BaseMapper<ActionActivity> {}
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionActivityRegistrationMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionActivityRegistrationMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionActivityRegistration;
+import com.etotem.cfc.entity.ActionActivityRegistration;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -912,11 +912,11 @@ public interface ActionActivityRegistrationMapper extends BaseMapper<ActionActiv
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionArticleMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionArticleMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionArticle;
+import com.etotem.cfc.entity.ActionArticle;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -924,11 +924,11 @@ public interface ActionArticleMapper extends BaseMapper<ActionArticle> {}
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionArticleCategoryMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionArticleCategoryMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionArticleCategory;
+import com.etotem.cfc.entity.ActionArticleCategory;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -936,11 +936,11 @@ public interface ActionArticleCategoryMapper extends BaseMapper<ActionArticleCat
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionElderCarePlanMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionElderCarePlanMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionElderCarePlan;
+import com.etotem.cfc.entity.ActionElderCarePlan;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -948,11 +948,11 @@ public interface ActionElderCarePlanMapper extends BaseMapper<ActionElderCarePla
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionElderCareLogMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionElderCareLogMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionElderCareLog;
+import com.etotem.cfc.entity.ActionElderCareLog;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -960,11 +960,11 @@ public interface ActionElderCareLogMapper extends BaseMapper<ActionElderCareLog>
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionPracticeTaskMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionPracticeTaskMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionPracticeTask;
+import com.etotem.cfc.entity.ActionPracticeTask;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -972,11 +972,11 @@ public interface ActionPracticeTaskMapper extends BaseMapper<ActionPracticeTask>
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionCommunityPostMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionCommunityPostMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionCommunityPost;
+import com.etotem.cfc.entity.ActionCommunityPost;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -984,11 +984,11 @@ public interface ActionCommunityPostMapper extends BaseMapper<ActionCommunityPos
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/mapper/ActionCommunityCommentMapper.java
-package com.zxyj.mapper;
+// cfc-backend/src/main/java/com/etotem/cfc/mapper/ActionCommunityCommentMapper.java
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.ActionCommunityComment;
+import com.etotem.cfc.entity.ActionCommunityComment;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -997,7 +997,7 @@ public interface ActionCommunityCommentMapper extends BaseMapper<ActionCommunity
 
 - [ ] **Step 4: 编译验证**
 
-Run: `cd zxyj-backend && mvn compile -q`
+Run: `cd cfc-backend && mvn compile -q`
 
 Expected: BUILD SUCCESS
 
@@ -1006,7 +1006,7 @@ Expected: BUILD SUCCESS
 ### Task 5: DatabaseInitializer 增加新表
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java`
 
 - [ ] **Step 1: 在 DatabaseInitializer 中添加 17 张新表的 CREATE TABLE 语句**
 
@@ -1288,7 +1288,7 @@ try {
 
 - [ ] **Step 3: 启动验证**
 
-Run: `cd zxyj-backend && mvn spring-boot:run` (确认启动不报错,新表自动创建)
+Run: `cd cfc-backend && mvn spring-boot:run` (确认启动不报错,新表自动创建)
 
 Expected: Application starts successfully, logs show new tables created
 
@@ -1302,12 +1302,12 @@ Expected: Application starts successfully, logs show new tables created
 - [ ] **Step 1: 创建 Body 域 Service**
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/BodyHealthService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/BodyHealthService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.BodyHealthMetric;
-import com.zxyj.mapper.BodyHealthMetricMapper;
+import com.etotem.cfc.entity.BodyHealthMetric;
+import com.etotem.cfc.mapper.BodyHealthMetricMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1345,12 +1345,12 @@ public class BodyHealthService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/BodyNutritionService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/BodyNutritionService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.BodyNutritionLog;
-import com.zxyj.mapper.BodyNutritionLogMapper;
+import com.etotem.cfc.entity.BodyNutritionLog;
+import com.etotem.cfc.mapper.BodyNutritionLogMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1379,12 +1379,12 @@ public class BodyNutritionService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/BodyAntiAgingService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/BodyAntiAgingService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.BodyAntiAgingAssessment;
-import com.zxyj.mapper.BodyAntiAgingAssessmentMapper;
+import com.etotem.cfc.entity.BodyAntiAgingAssessment;
+import com.etotem.cfc.mapper.BodyAntiAgingAssessmentMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1412,12 +1412,12 @@ public class BodyAntiAgingService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/BodyExerciseService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/BodyExerciseService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.BodyExerciseLog;
-import com.zxyj.mapper.BodyExerciseLogMapper;
+import com.etotem.cfc.entity.BodyExerciseLog;
+import com.etotem.cfc.mapper.BodyExerciseLogMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1448,12 +1448,12 @@ public class BodyExerciseService {
 - [ ] **Step 2: 创建 Mind 域 Service**
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/MindMoodService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/MindMoodService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.MindMoodLog;
-import com.zxyj.mapper.MindMoodLogMapper;
+import com.etotem.cfc.entity.MindMoodLog;
+import com.etotem.cfc.mapper.MindMoodLogMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1482,12 +1482,12 @@ public class MindMoodService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/MindAssessmentService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/MindAssessmentService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.MindPsychologicalAssessment;
-import com.zxyj.mapper.MindPsychologicalAssessmentMapper;
+import com.etotem.cfc.entity.MindPsychologicalAssessment;
+import com.etotem.cfc.mapper.MindPsychologicalAssessmentMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1515,12 +1515,12 @@ public class MindAssessmentService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/MindFamilyAtmosphereService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/MindFamilyAtmosphereService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.MindFamilyAtmosphereIndex;
-import com.zxyj.mapper.MindFamilyAtmosphereIndexMapper;
+import com.etotem.cfc.entity.MindFamilyAtmosphereIndex;
+import com.etotem.cfc.mapper.MindFamilyAtmosphereIndexMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1548,12 +1548,12 @@ public class MindFamilyAtmosphereService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/MindMeditationService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/MindMeditationService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.MindMeditationSession;
-import com.zxyj.mapper.MindMeditationSessionMapper;
+import com.etotem.cfc.entity.MindMeditationSession;
+import com.etotem.cfc.mapper.MindMeditationSessionMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1584,14 +1584,14 @@ public class MindMeditationService {
 - [ ] **Step 3: 创建 Action 域 Service**
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/ActionActivityService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/ActionActivityService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.ActionActivity;
-import com.zxyj.entity.ActionActivityRegistration;
-import com.zxyj.mapper.ActionActivityMapper;
-import com.zxyj.mapper.ActionActivityRegistrationMapper;
+import com.etotem.cfc.entity.ActionActivity;
+import com.etotem.cfc.entity.ActionActivityRegistration;
+import com.etotem.cfc.mapper.ActionActivityMapper;
+import com.etotem.cfc.mapper.ActionActivityRegistrationMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -1645,12 +1645,12 @@ public class ActionActivityService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/ActionArticleService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/ActionArticleService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.ActionArticle;
-import com.zxyj.mapper.ActionArticleMapper;
+import com.etotem.cfc.entity.ActionArticle;
+import com.etotem.cfc.mapper.ActionArticleMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1685,14 +1685,14 @@ public class ActionArticleService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/ActionElderCareService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/ActionElderCareService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.ActionElderCarePlan;
-import com.zxyj.entity.ActionElderCareLog;
-import com.zxyj.mapper.ActionElderCarePlanMapper;
-import com.zxyj.mapper.ActionElderCareLogMapper;
+import com.etotem.cfc.entity.ActionElderCarePlan;
+import com.etotem.cfc.entity.ActionElderCareLog;
+import com.etotem.cfc.mapper.ActionElderCarePlanMapper;
+import com.etotem.cfc.mapper.ActionElderCareLogMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1736,12 +1736,12 @@ public class ActionElderCareService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/ActionPracticeService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/ActionPracticeService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.ActionPracticeTask;
-import com.zxyj.mapper.ActionPracticeTaskMapper;
+import com.etotem.cfc.entity.ActionPracticeTask;
+import com.etotem.cfc.mapper.ActionPracticeTaskMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -1769,14 +1769,14 @@ public class ActionPracticeService {
 ```
 
 ```java
-// zxyj-backend/src/main/java/com/zxyj/service/ActionCommunityService.java
-package com.zxyj.service;
+// cfc-backend/src/main/java/com/etotem/cfc/service/ActionCommunityService.java
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zxyj.entity.ActionCommunityPost;
-import com.zxyj.entity.ActionCommunityComment;
-import com.zxyj.mapper.ActionCommunityPostMapper;
-import com.zxyj.mapper.ActionCommunityCommentMapper;
+import com.etotem.cfc.entity.ActionCommunityPost;
+import com.etotem.cfc.entity.ActionCommunityComment;
+import com.etotem.cfc.mapper.ActionCommunityPostMapper;
+import com.etotem.cfc.mapper.ActionCommunityCommentMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -1829,7 +1829,7 @@ public class ActionCommunityService {
 
 - [ ] **Step 4: 编译验证**
 
-Run: `cd zxyj-backend && mvn compile -q`
+Run: `cd cfc-backend && mvn compile -q`
 
 Expected: BUILD SUCCESS
 
@@ -1838,19 +1838,19 @@ Expected: BUILD SUCCESS
 ### Task 7: 创建后端 Controller 骨架
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/body/BodyHealthController.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/mind/MindMoodController.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/action/ActionController.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/action/ActionArticleController.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/body/BodyHealthController.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/mind/MindMoodController.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/action/ActionController.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/action/ActionArticleController.java`
 
 - [ ] **Step 1: 创建 BodyHealthController**
 
 ```java
-package com.zxyj.controller.body;
+package com.etotem.cfc.controller.body;
 
-import com.zxyj.common.Result;
-import com.zxyj.entity.BodyHealthMetric;
-import com.zxyj.service.BodyHealthService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.BodyHealthMetric;
+import com.etotem.cfc.service.BodyHealthService;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -1887,11 +1887,11 @@ public class BodyHealthController {
 - [ ] **Step 2: 创建 MindMoodController**
 
 ```java
-package com.zxyj.controller.mind;
+package com.etotem.cfc.controller.mind;
 
-import com.zxyj.common.Result;
-import com.zxyj.entity.MindMoodLog;
-import com.zxyj.service.MindMoodService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.MindMoodLog;
+import com.etotem.cfc.service.MindMoodService;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -1922,12 +1922,12 @@ public class MindMoodController {
 - [ ] **Step 3: 创建 ActionController (活动+社区)**
 
 ```java
-package com.zxyj.controller.action;
+package com.etotem.cfc.controller.action;
 
-import com.zxyj.common.Result;
-import com.zxyj.entity.ActionActivity;
-import com.zxyj.entity.ActionActivityRegistration;
-import com.zxyj.service.ActionActivityService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.ActionActivity;
+import com.etotem.cfc.entity.ActionActivityRegistration;
+import com.etotem.cfc.service.ActionActivityService;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -1971,11 +1971,11 @@ public class ActionController {
 - [ ] **Step 4: 创建 ActionArticleController**
 
 ```java
-package com.zxyj.controller.action;
+package com.etotem.cfc.controller.action;
 
-import com.zxyj.common.Result;
-import com.zxyj.entity.ActionArticle;
-import com.zxyj.service.ActionArticleService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.ActionArticle;
+import com.etotem.cfc.service.ActionArticleService;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -2011,7 +2011,7 @@ public class ActionArticleController {
 
 - [ ] **Step 5: 编译验证**
 
-Run: `cd zxyj-backend && mvn compile -q`
+Run: `cd cfc-backend && mvn compile -q`
 
 Expected: BUILD SUCCESS
 
@@ -2020,7 +2020,7 @@ Expected: BUILD SUCCESS
 ### Task 8: PointsLog Entity 增加 domain 字段
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/entity/PointsLog.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/entity/PointsLog.java`
 
 - [ ] **Step 1: 在 PointsLog.java 中增加 domain 字段**
 
@@ -2032,7 +2032,7 @@ private String domain; // 积分来源域: body/mind/wisdom/action,默认 "wis
 
 - [ ] **Step 2: 编译验证**
 
-Run: `cd zxyj-backend && mvn compile -q`
+Run: `cd cfc-backend && mvn compile -q`
 
 Expected: BUILD SUCCESS
 
@@ -2041,12 +2041,12 @@ Expected: BUILD SUCCESS
 ### Task 9: 前端首页四象限重构
 
 **Files:**
-- Modify: `zxyj-frontend/pages/index/index.vue`
-- Modify: `zxyj-frontend/pages/index/parent-index.vue`
-- Modify: `zxyj-frontend/pages/index/child-index.vue`
-- Modify: `zxyj-frontend/pages.json`
-- Modify: `zxyj-frontend/utils/api.js`
-- Modify: `zxyj-frontend/store/index.js`
+- Modify: `cfc-frontend/pages/index/index.vue`
+- Modify: `cfc-frontend/pages/index/parent-index.vue`
+- Modify: `cfc-frontend/pages/index/child-index.vue`
+- Modify: `cfc-frontend/pages.json`
+- Modify: `cfc-frontend/utils/api.js`
+- Modify: `cfc-frontend/store/index.js`
 
 - [ ] **Step 1: 修改 pages.json — 注册新页面路径 + 调整tabBar**
 
@@ -2370,7 +2370,7 @@ export default {}
 
 - [ ] **Step 5: 修改 api.js — 增加域 API 封装**
 
-在 `zxyj-frontend/utils/api.js` 末尾添加:
+在 `cfc-frontend/utils/api.js` 末尾添加:
 
 ```javascript
 // === Body 域 API ===
@@ -2445,7 +2445,7 @@ git commit -m "feat: 溪福俱乐部四域框架搭建 - 17个新entity/mapper/s
 > 1. 完善后端 Controller + Service 业务逻辑(CRUD + 业务规则)
 > 2. 实现前端功能页面(替换占位页面)
 > 3. 接入积分系统(域内行为可获积分)
-> 4. 管理端页面(zxyj-web 内容管理)
+> 4. 管理端页面(cfc-web 内容管理)
 
 ### 行域功能清单
 
@@ -2502,7 +2502,7 @@ git commit -m "feat: 溪福俱乐部四域框架搭建 - 17个新entity/mapper/s
 | 购物车 | CommerceController → Lilishop buyer-api | cart | P0 |
 | 下单/支付 | CommerceController → Lilishop buyer-api | checkout | P1 |
 | 订单管理 | CommerceController → Lilishop buyer-api | order-list | P1 |
-| 商品管理(管理端) | CommerceAdminController → Lilishop seller-api | zxyj-web 商品管理页 | P2 |
+| 商品管理(管理端) | CommerceAdminController → Lilishop seller-api | cfc-web 商品管理页 | P2 |
 
 ### Lilishop 配置
 
@@ -2514,14 +2514,14 @@ lilishop:
   seller-api: http://localhost:8889
   manager-api: http://localhost:8887
   service-account:
-    username: zxyj_service
+    username: cfc_service
     password: ${LILISHOP_SERVICE_PASSWORD}
   token-cache-minutes: 50
 ```
 
 ---
 
-## Phase 6: 管理端 (zxyj-web) 扩展
+## Phase 6: 管理端 (cfc-web) 扩展
 
 **目标:** 在 Web 管理端新增四域内容管理页面。
 

+ 34 - 34
docs/superpowers/plans/2026-06-03-phase0-skeleton.md

@@ -22,7 +22,7 @@
 ### Task 1: User entity — add vendor/service provider fields
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/entity/User.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/entity/User.java`
 
 - [ ] **Step 1: Add 4 fields to User.java**
 
@@ -44,7 +44,7 @@ Add after the existing `familyRole` field (before `createdAt`):
 
 - [ ] **Step 2: Verify compilation**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 ---
@@ -52,7 +52,7 @@ Expected: BUILD SUCCESS
 ### Task 2: DatabaseInitializer — add vendor columns migration
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java`
 
 - [ ] **Step 1: Find the `runMigrations()` method and add ALTER TABLE statements**
 
@@ -81,7 +81,7 @@ jdbcTemplate.update(
 
 - [ ] **Step 3: Verify compilation**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 ---
@@ -89,18 +89,18 @@ Expected: BUILD SUCCESS
 ### Task 3: VendorController + VendorService (backend)
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/vendor/VendorController.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/service/VendorService.java`
-- Modify: `zxyj-backend/src/main/java/com/zxyj/mapper/UserMapper.java` (only if methods are missing, likely already has basic CRUD)
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/vendor/VendorController.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/service/VendorService.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/mapper/UserMapper.java` (only if methods are missing, likely already has basic CRUD)
 
 - [ ] **Step 1: Create VendorService**
 
 ```java
-package com.zxyj.service;
+package com.etotem.cfc.service;
 
-import com.zxyj.common.Result;
-import com.zxyj.entity.User;
-import com.zxyj.mapper.UserMapper;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.User;
+import com.etotem.cfc.mapper.UserMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -170,10 +170,10 @@ public class VendorService {
 - [ ] **Step 2: Create VendorController**
 
 ```java
-package com.zxyj.controller.vendor;
+package com.etotem.cfc.controller.vendor;
 
-import com.zxyj.common.Result;
-import com.zxyj.service.VendorService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.service.VendorService;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -238,7 +238,7 @@ public class VendorController {
 
 - [ ] **Step 3: Verify compilation**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Check: The new directory `controller/vendor/` is picked up by Spring component scan. Verify no bean name conflicts.
 
 ---
@@ -246,7 +246,7 @@ Check: The new directory `controller/vendor/` is picked up by Spring component s
 ### Task 4: Admin vendor API — Web端审核服务商入驻
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/controller/admin/AdminController.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminController.java`
 
 - [ ] **Step 1: Add admin vendor review endpoints to AdminController**
 
@@ -311,8 +311,8 @@ public Result vendorReview(@RequestBody Map<String, Object> params) {
 
 Add the required imports at the top:
 ```java
-import com.zxyj.entity.User;
-import com.zxyj.mapper.UserMapper;
+import com.etotem.cfc.entity.User;
+import com.etotem.cfc.mapper.UserMapper;
 import java.util.Date;
 ```
 
@@ -320,7 +320,7 @@ And confirm `@Resource private UserMapper userMapper;` is present in the class.
 
 - [ ] **Step 2: Verify compilation**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 ---
@@ -328,7 +328,7 @@ Expected: BUILD SUCCESS
 ### Task 5: Frontend API additions — vendor module
 
 **Files:**
-- Modify: `zxyj-frontend/utils/api.js`
+- Modify: `cfc-frontend/utils/api.js`
 
 - [ ] **Step 1: Add vendor API calls to api.js**
 
@@ -358,7 +358,7 @@ export const vendorInfo = () => {
 ### Task 6: TabBar change — pages.json
 
 **Files:**
-- Modify: `zxyj-frontend/pages.json`
+- Modify: `cfc-frontend/pages.json`
 
 - [ ] **Step 1: Change TabBar list and add new page registrations**
 
@@ -426,7 +426,7 @@ Add new page registrations in the `pages` array (before the `globalStyle` sectio
 ### Task 7: Discover placeholder page
 
 **Files:**
-- Create: `zxyj-frontend/pages/discover/index.vue`
+- Create: `cfc-frontend/pages/discover/index.vue`
 
 - [ ] **Step 1: Create discover placeholder page**
 
@@ -487,7 +487,7 @@ export default {
 ### Task 8: Shop placeholder page
 
 **Files:**
-- Create: `zxyj-frontend/pages/shop/index.vue`
+- Create: `cfc-frontend/pages/shop/index.vue`
 
 - [ ] **Step 1: Create shop placeholder page**
 
@@ -548,7 +548,7 @@ export default {
 ### Task 9: Vendor apply page (frontend)
 
 **Files:**
-- Create: `zxyj-frontend/pages/vendor/apply.vue`
+- Create: `cfc-frontend/pages/vendor/apply.vue`
 
 - [ ] **Step 1: Create vendor application form page**
 
@@ -724,7 +724,7 @@ export default {
 ### Task 10: Vendor center page (frontend)
 
 **Files:**
-- Create: `zxyj-frontend/pages/vendor/center.vue`
+- Create: `cfc-frontend/pages/vendor/center.vue`
 
 - [ ] **Step 1: Create vendor center page**
 
@@ -886,7 +886,7 @@ export default {
 ### Task 11: Profile page — add membership + vendor entries
 
 **Files:**
-- Modify: `zxyj-frontend/pages/profile/profile.vue`
+- Modify: `cfc-frontend/pages/profile/profile.vue`
 
 - [ ] **Step 1: Add membership entry and vendor entry after "积分记录" menu item**
 
@@ -953,8 +953,8 @@ import { vendorStatus } from '../../utils/api'
 ### Task 12: Homepage 五行能量沙盘(五角星)+ membership banner
 
 **Files:**
-- Modify: `zxyj-frontend/pages/index/parent-index.vue`
-- Modify: `zxyj-frontend/pages/index/child-index.vue`
+- Modify: `cfc-frontend/pages/index/parent-index.vue`
+- Modify: `cfc-frontend/pages/index/child-index.vue`
 
 - [ ] **Step 1: Add 五行能量沙盘 (pentagram) component after welcome section**
 
@@ -1233,14 +1233,14 @@ Read the file and replicate the same 五行沙盘 + membership banner insertion
 ### Task 13: Web admin — vendor review page
 
 **Files:**
-- Create: `zxyj-web/src/views/admin/VendorReview.vue`
-- Modify: `zxyj-web/src/router/index.js`
-- Create: `zxyj-web/src/api/vendor.js`
+- Create: `cfc-web/src/views/admin/VendorReview.vue`
+- Modify: `cfc-web/src/router/index.js`
+- Create: `cfc-web/src/api/vendor.js`
 
 - [ ] **Step 1: Create vendor API file**
 
 ```javascript
-// zxyj-web/src/api/vendor.js
+// cfc-web/src/api/vendor.js
 import request from '@/utils/request'
 
 // 服务商入驻申请列表
@@ -1262,7 +1262,7 @@ export function reviewVendor(data) {
 }
 ```
 
-Check `zxyj-web/src/utils/request.js` to confirm the request wrapper pattern matches.
+Check `cfc-web/src/utils/request.js` to confirm the request wrapper pattern matches.
 
 - [ ] **Step 2: Create VendorReview.vue**
 
@@ -1438,7 +1438,7 @@ Add `'VendorReview'` to the `adminRoutes` array in the route guard section:
 ### Task 14: Web admin — add sidebar menu for vendor review
 
 **Files:**
-- Modify: `zxyj-web/src/views/Layout.vue`
+- Modify: `cfc-web/src/views/Layout.vue`
 
 - [ ] **Step 1: Add sidebar menu item**
 

+ 2 - 2
docs/superpowers/plans/2026-06-04-phase1-and-phase2-diff-analysis.md

@@ -86,8 +86,8 @@
 
 #### 3.2.3 无人引用的 API
 
-- **无 frontend 消费者**: `grep` 整个 `zxyj-frontend` (排除 node_modules) 找不到 `membership` 相关引用
-- **无 web admin 消费者**: `grep` 整个 `zxyj-web` (排除 node_modules) 找不到 `membership` 相关引用
+- **无 frontend 消费者**: `grep` 整个 `cfc-frontend` (排除 node_modules) 找不到 `membership` 相关引用
+- **无 web admin 消费者**: `grep` 整个 `cfc-web` (排除 node_modules) 找不到 `membership` 相关引用
 - **无内部 Service 调用**: 现有代码无其他 Service 调用 MembershipService
 
 **结论:** 现有 Phase 2 代码是**孤岛** — 没有任何消费者。修改它不会影响其他业务。

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 162 - 162
docs/superpowers/plans/2026-06-04-phase1-product-system.md


+ 21 - 21
docs/superpowers/plans/2026-06-04-pre-login-discovery.md

@@ -13,12 +13,12 @@
 ### Task 1: 品牌更名 溪艾福→汐艾福
 
 **Files:**
-- Modify: `zxyj-frontend/pages/index/parent-index.vue` (4处)
-- Modify: `zxyj-frontend/pages/index/child-index.vue` (2处)
-- Modify: `zxyj-frontend/pages.json` (1处)
-- Modify: `zxyj-frontend/pages/profile/profile.vue` (1处)
-- Modify: `zxyj-frontend/utils/api.js` (1处)
-- Modify: `zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java` (4处)
+- Modify: `cfc-frontend/pages/index/parent-index.vue` (4处)
+- Modify: `cfc-frontend/pages/index/child-index.vue` (2处)
+- Modify: `cfc-frontend/pages.json` (1处)
+- Modify: `cfc-frontend/pages/profile/profile.vue` (1处)
+- Modify: `cfc-frontend/utils/api.js` (1处)
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java` (4处)
 
 - [ ] **Step 1: 替换所有前端「溪艾福」→「汐艾福」**
 
@@ -47,7 +47,7 @@ Replace in DatabaseInitializer.java (comments only):
 - [ ] **Step 2: Commit**
 
 ```bash
-git add $(rtk list -u --modified -- zxyj-frontend/ zxyj-backend/)
+git add $(rtk list -u --modified -- cfc-frontend/ cfc-backend/)
 git commit -m "chore: 品牌名溪艾福/溪福俱乐部统一改为汐艾福/汐福俱乐部"
 ```
 
@@ -56,9 +56,9 @@ git commit -m "chore: 品牌名溪艾福/溪福俱乐部统一改为汐艾福/
 ### Task 2: 提取五行沙盘为独立组件
 
 **Files:**
-- Create: `zxyj-frontend/components/wuxing-sandbox.vue`
-- Modify: `zxyj-frontend/pages/index/parent-index.vue`
-- Modify: `zxyj-frontend/pages/index/child-index.vue`
+- Create: `cfc-frontend/components/wuxing-sandbox.vue`
+- Modify: `cfc-frontend/pages/index/parent-index.vue`
+- Modify: `cfc-frontend/pages/index/child-index.vue`
 
 - [ ] **Step 1: 创建 wuxing-sandbox.vue 组件**
 
@@ -236,7 +236,7 @@ Remove the entire inline `<style>` block for `.wuxing-sandbox` CSS from both par
 - [ ] **Step 4: Commit**
 
 ```bash
-git add zxyj-frontend/components/wuxing-sandbox.vue zxyj-frontend/pages/index/parent-index.vue zxyj-frontend/pages/index/child-index.vue
+git add cfc-frontend/components/wuxing-sandbox.vue cfc-frontend/pages/index/parent-index.vue cfc-frontend/pages/index/child-index.vue
 git commit -m "refactor: 提取五行沙盘为独立组件(wuxing-sandbox.vue)支持三种模式"
 ```
 
@@ -245,7 +245,7 @@ git commit -m "refactor: 提取五行沙盘为独立组件(wuxing-sandbox.vue)
 ### Task 3: 创建自定义底部导航组件
 
 **Files:**
-- Create: `zxyj-frontend/components/bottom-nav.vue`
+- Create: `cfc-frontend/components/bottom-nav.vue`
 
 - [ ] **Step 1: 创建 bottom-nav.vue 组件**
 
@@ -322,7 +322,7 @@ export default {
 - [ ] **Step 2: Commit**
 
 ```bash
-git add zxyj-frontend/components/bottom-nav.vue
+git add cfc-frontend/components/bottom-nav.vue
 git commit -m "feat: 创建自定义底部导航组件(bottom-nav)用于未登录态2Tab展示"
 ```
 
@@ -331,7 +331,7 @@ git commit -m "feat: 创建自定义底部导航组件(bottom-nav)用于未登
 ### Task 4: 重构 App.vue 登录态 + TabBar 切换逻辑
 
 **Files:**
-- Modify: `zxyj-frontend/App.vue`
+- Modify: `cfc-frontend/App.vue`
 
 - [ ] **Step 1: 修改 App.vue onLaunch**
 
@@ -386,7 +386,7 @@ This should already work with the App.vue changes. No need to modify login.vue T
 - [ ] **Step 3: Commit**
 
 ```bash
-git add zxyj-frontend/App.vue
+git add cfc-frontend/App.vue
 git commit -m "feat: App.vue 添加登录态TabBar切换逻辑(未登录隐藏原生TabBar)"
 ```
 
@@ -395,7 +395,7 @@ git commit -m "feat: App.vue 添加登录态TabBar切换逻辑(未登录隐藏
 ### Task 5: 重构发现页(核心页面)
 
 **Files:**
-- Modify: `zxyj-frontend/pages/discover/index.vue`
+- Modify: `cfc-frontend/pages/discover/index.vue`
 
 - [ ] **Step 1: 完整重写 discover/index.vue**
 
@@ -605,7 +605,7 @@ export default {
 - [ ] **Step 2: Commit**
 
 ```bash
-git add zxyj-frontend/pages/discover/index.vue
+git add cfc-frontend/pages/discover/index.vue
 git commit -m "feat: 重构发现页为预登录首页(沙盘+活动+商品+登录引导)"
 ```
 
@@ -614,7 +614,7 @@ git commit -m "feat: 重构发现页为预登录首页(沙盘+活动+商品+登
 ### Task 6: 商城页添加未登录态预览
 
 **Files:**
-- Modify: `zxyj-frontend/pages/shop/index.vue`
+- Modify: `cfc-frontend/pages/shop/index.vue`
 
 - [ ] **Step 1: 重写 shop/index.vue**
 
@@ -739,7 +739,7 @@ export default {
 - [ ] **Step 2: Commit**
 
 ```bash
-git add zxyj-frontend/pages/shop/index.vue
+git add cfc-frontend/pages/shop/index.vue
 git commit -m "feat: 商城页添加未登录预览态(静态商品展示+登录引导)"
 ```
 
@@ -748,7 +748,7 @@ git commit -m "feat: 商城页添加未登录预览态(静态商品展示+登录
 ### Task 7: Login 页添加 redirect 参数支持
 
 **Files:**
-- Modify: `zxyj-frontend/pages/login/login.vue`
+- Modify: `cfc-frontend/pages/login/login.vue`
 
 - [ ] **Step 1: 修改 login.vue onLoad 接受 redirect 参数**
 
@@ -797,7 +797,7 @@ Replace the existing navigateToHome method:
 - [ ] **Step 3: Commit**
 
 ```bash
-git add zxyj-frontend/pages/login/login.vue
+git add cfc-frontend/pages/login/login.vue
 git commit -m "feat: 登录页支持redirect参数(登录后返回来源页)"
 ```
 

+ 77 - 77
docs/superpowers/plans/2026-06-05-five-dimension-energy-system.md

@@ -17,43 +17,43 @@
 ### 后端新建文件
 | 文件 | 职责 |
 |------|------|
-| `zxyj-backend/src/main/java/com/zxyj/entity/EnergyDimension.java` | 维度定义实体 |
-| `zxyj-backend/src/main/java/com/zxyj/entity/EnergySourceConfig.java` | 服务-维度比例配置实体 |
-| `zxyj-backend/src/main/java/com/zxyj/entity/EnergyLog.java` | 能量流水实体 |
-| `zxyj-backend/src/main/java/com/zxyj/entity/EnergyBalance.java` | 维度余额实体 |
-| `zxyj-backend/src/main/java/com/zxyj/mapper/EnergyDimensionMapper.java` | 维度CRUD |
-| `zxyj-backend/src/main/java/com/zxyj/mapper/EnergySourceConfigMapper.java` | 比例配置CRUD |
-| `zxyj-backend/src/main/java/com/zxyj/mapper/EnergyLogMapper.java` | 流水查询 |
-| `zxyj-backend/src/main/java/com/zxyj/mapper/EnergyBalanceMapper.java` | 余额查询/更新 |
-| `zxyj-backend/src/main/java/com/zxyj/service/EnergyService.java` | 核心业务:发放/扣除/查概览/查流水/配比例 |
-| `zxyj-backend/src/main/java/com/zxyj/controller/energy/EnergyController.java` | API入口 |
+| `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergyDimension.java` | 维度定义实体 |
+| `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergySourceConfig.java` | 服务-维度比例配置实体 |
+| `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergyLog.java` | 能量流水实体 |
+| `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergyBalance.java` | 维度余额实体 |
+| `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergyDimensionMapper.java` | 维度CRUD |
+| `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergySourceConfigMapper.java` | 比例配置CRUD |
+| `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergyLogMapper.java` | 流水查询 |
+| `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergyBalanceMapper.java` | 余额查询/更新 |
+| `cfc-backend/src/main/java/com/etotem/cfc/service/EnergyService.java` | 核心业务:发放/扣除/查概览/查流水/配比例 |
+| `cfc-backend/src/main/java/com/etotem/cfc/controller/energy/EnergyController.java` | API入口 |
 
 ### 后端修改文件
 | 文件 | 修改内容 |
 |------|----------|
-| `zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java` | 添加4张表DDL + 种子数据 + 比例配置迁移 |
-| `zxyj-backend/src/main/java/com/zxyj/service/TaskService.java` | completeTask()末尾添加energyService.awardEnergy()调用 |
+| `cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java` | 添加4张表DDL + 种子数据 + 比例配置迁移 |
+| `cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java` | completeTask()末尾添加energyService.awardEnergy()调用 |
 
 ### 前端修改文件
 | 文件 | 修改内容 |
 |------|----------|
-| `zxyj-frontend/components/wuxing-sandbox.vue` | 完全重写:接收dimensions/totalEnergy/totalHealthIndex props,显示真实数据,三层视觉结构 |
-| `zxyj-frontend/utils/api.js` | 添加getEnergyOverview/getEnergyLogs |
-| `zxyj-frontend/pages/index/parent-index.vue` | 传入API获取的dimensions/totalEnergy/totalHealthIndex |
-| `zxyj-frontend/pages/index/child-index.vue` | 同上 |
-| `zxyj-frontend/pages.json` | 注册energy/detail页面 |
+| `cfc-frontend/components/wuxing-sandbox.vue` | 完全重写:接收dimensions/totalEnergy/totalHealthIndex props,显示真实数据,三层视觉结构 |
+| `cfc-frontend/utils/api.js` | 添加getEnergyOverview/getEnergyLogs |
+| `cfc-frontend/pages/index/parent-index.vue` | 传入API获取的dimensions/totalEnergy/totalHealthIndex |
+| `cfc-frontend/pages/index/child-index.vue` | 同上 |
+| `cfc-frontend/pages.json` | 注册energy/detail页面 |
 
 ### 前端新建文件
 | 文件 | 职责 |
 |------|------|
-| `zxyj-frontend/pages/energy/detail.vue` | 维度详情页:能量值、流水记录 |
+| `cfc-frontend/pages/energy/detail.vue` | 维度详情页:能量值、流水记录 |
 
 ---
 
 ## Task 1: 数据库迁移 — 4张新表 + 种子数据
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java`
 
 在 `initSchema()` 方法末尾(`log.info("数据库迁移完成")` 之前)添加能量系统4张表DDL和种子数据。
 
@@ -201,13 +201,13 @@ try {
 
 - [ ] **Step 4: 验证编译通过**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 5: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java
+git add cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java
 git commit -m "feat(energy): add 4 energy tables + seed data to DatabaseInitializer"
 ```
 
@@ -216,17 +216,17 @@ git commit -m "feat(energy): add 4 energy tables + seed data to DatabaseInitiali
 ## Task 2: 后端实体类 — 4个Entity
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/EnergyDimension.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/EnergySourceConfig.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/EnergyLog.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/entity/EnergyBalance.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergyDimension.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergySourceConfig.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergyLog.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/entity/EnergyBalance.java`
 
 遵循现有entity模式:`@Data @TableName @TableId(type=IdType.AUTO) implements Serializable`,字段名用驼峰。
 
 - [ ] **Step 1: 创建 EnergyDimension.java**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -253,7 +253,7 @@ public class EnergyDimension implements Serializable {
 - [ ] **Step 2: 创建 EnergySourceConfig.java**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -280,7 +280,7 @@ public class EnergySourceConfig implements Serializable {
 - [ ] **Step 3: 创建 EnergyLog.java**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -308,7 +308,7 @@ public class EnergyLog implements Serializable {
 - [ ] **Step 4: 创建 EnergyBalance.java**
 
 ```java
-package com.zxyj.entity;
+package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -333,13 +333,13 @@ public class EnergyBalance implements Serializable {
 
 - [ ] **Step 5: 验证编译**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 6: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/entity/Energy*.java
+git add cfc-backend/src/main/java/com/etotem/cfc/entity/Energy*.java
 git commit -m "feat(energy): add 4 energy entity classes"
 ```
 
@@ -348,10 +348,10 @@ git commit -m "feat(energy): add 4 energy entity classes"
 ## Task 3: 后端Mapper接口 — 4个Mapper
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/mapper/EnergyDimensionMapper.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/mapper/EnergySourceConfigMapper.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/mapper/EnergyLogMapper.java`
-- Create: `zxyj-backend/src/main/java/com/zxyj/mapper/EnergyBalanceMapper.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergyDimensionMapper.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergySourceConfigMapper.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergyLogMapper.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/mapper/EnergyBalanceMapper.java`
 
 遵循现有mapper模式:`@Mapper interface XxxMapper extends BaseMapper<Xxx>`,无自定义方法。
 
@@ -359,10 +359,10 @@ git commit -m "feat(energy): add 4 energy entity classes"
 
 ```java
 // EnergyDimensionMapper.java
-package com.zxyj.mapper;
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.EnergyDimension;
+import com.etotem.cfc.entity.EnergyDimension;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -372,10 +372,10 @@ public interface EnergyDimensionMapper extends BaseMapper<EnergyDimension> {
 
 ```java
 // EnergySourceConfigMapper.java
-package com.zxyj.mapper;
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.EnergySourceConfig;
+import com.etotem.cfc.entity.EnergySourceConfig;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -385,10 +385,10 @@ public interface EnergySourceConfigMapper extends BaseMapper<EnergySourceConfig>
 
 ```java
 // EnergyLogMapper.java
-package com.zxyj.mapper;
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.EnergyLog;
+import com.etotem.cfc.entity.EnergyLog;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -398,10 +398,10 @@ public interface EnergyLogMapper extends BaseMapper<EnergyLog> {
 
 ```java
 // EnergyBalanceMapper.java
-package com.zxyj.mapper;
+package com.etotem.cfc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zxyj.entity.EnergyBalance;
+import com.etotem.cfc.entity.EnergyBalance;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
@@ -411,13 +411,13 @@ public interface EnergyBalanceMapper extends BaseMapper<EnergyBalance> {
 
 - [ ] **Step 2: 验证编译**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 3: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/mapper/Energy*Mapper.java
+git add cfc-backend/src/main/java/com/etotem/cfc/mapper/Energy*Mapper.java
 git commit -m "feat(energy): add 4 energy mapper interfaces"
 ```
 
@@ -426,19 +426,19 @@ git commit -m "feat(energy): add 4 energy mapper interfaces"
 ## Task 4: 后端核心服务 — EnergyService
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/service/EnergyService.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/service/EnergyService.java`
 
 这是能量系统最核心的文件。实现5个核心方法:awardEnergy、deductEnergy、getOverview、getLogs、configureSourceRatios。
 
 - [ ] **Step 1: 创建EnergyService.java**
 
 ```java
-package com.zxyj.service;
+package com.etotem.cfc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zxyj.entity.*;
-import com.zxyj.mapper.*;
+import com.etotem.cfc.entity.*;
+import com.etotem.cfc.mapper.*;
 import javax.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -770,13 +770,13 @@ public class EnergyService {
 
 - [ ] **Step 2: 验证编译**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 3: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/service/EnergyService.java
+git add cfc-backend/src/main/java/com/etotem/cfc/service/EnergyService.java
 git commit -m "feat(energy): add EnergyService with award/deduct/overview/logs/configure"
 ```
 
@@ -785,19 +785,19 @@ git commit -m "feat(energy): add EnergyService with award/deduct/overview/logs/c
 ## Task 5: 后端API入口 — EnergyController
 
 **Files:**
-- Create: `zxyj-backend/src/main/java/com/zxyj/controller/energy/EnergyController.java`
+- Create: `cfc-backend/src/main/java/com/etotem/cfc/controller/energy/EnergyController.java`
 
 遵循现有controller模式:`@RestController @RequestMapping`,统一`@PostMapping`,`@Resource`注入Service,`Result<T>`响应。
 
 - [ ] **Step 1: 创建EnergyController.java**
 
 ```java
-package com.zxyj.controller.energy;
+package com.etotem.cfc.controller.energy;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zxyj.common.Result;
-import com.zxyj.entity.EnergyLog;
-import com.zxyj.service.EnergyService;
+import com.etotem.cfc.common.Result;
+import com.etotem.cfc.entity.EnergyLog;
+import com.etotem.cfc.service.EnergyService;
 import javax.annotation.Resource;
 import org.springframework.web.bind.annotation.*;
 import java.util.Map;
@@ -859,13 +859,13 @@ public class EnergyController {
 
 - [ ] **Step 2: 验证编译**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 3: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/controller/energy/EnergyController.java
+git add cfc-backend/src/main/java/com/etotem/cfc/controller/energy/EnergyController.java
 git commit -m "feat(energy): add EnergyController with overview/logs/configure endpoints"
 ```
 
@@ -874,7 +874,7 @@ git commit -m "feat(energy): add EnergyController with overview/logs/configure e
 ## Task 6: 集成到TaskService — 完成任务时发放能量
 
 **Files:**
-- Modify: `zxyj-backend/src/main/java/com/zxyj/service/TaskService.java`
+- Modify: `cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java`
 
 在`completeTask()`方法的`pointsLogMapper.insert(pointsLog)`之后、`Map<String, Object> result`之前,添加一行energyService调用。
 
@@ -909,13 +909,13 @@ try {
 
 - [ ] **Step 3: 验证编译**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 4: Commit**
 
 ```bash
-git add zxyj-backend/src/main/java/com/zxyj/service/TaskService.java
+git add cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java
 git commit -m "feat(energy): integrate energy award into TaskService.completeTask()"
 ```
 
@@ -924,7 +924,7 @@ git commit -m "feat(energy): integrate energy award into TaskService.completeTas
 ## Task 7: 前端API封装 — api.js添加能量接口
 
 **Files:**
-- Modify: `zxyj-frontend/utils/api.js`
+- Modify: `cfc-frontend/utils/api.js`
 
 在文件末尾添加能量系统两个API调用。
 
@@ -944,7 +944,7 @@ export const getEnergyLogs = (childId, dimensionCode, page = 1, size = 10) => {
 - [ ] **Step 2: Commit**
 
 ```bash
-git add zxyj-frontend/utils/api.js
+git add cfc-frontend/utils/api.js
 git commit -m "feat(energy): add energy API calls to frontend api.js"
 ```
 
@@ -953,7 +953,7 @@ git commit -m "feat(energy): add energy API calls to frontend api.js"
 ## Task 8: 前端wuxing-sandbox组件重写
 
 **Files:**
-- Modify: `zxyj-frontend/components/wuxing-sandbox.vue`
+- Modify: `cfc-frontend/components/wuxing-sandbox.vue`
 
 完全重写组件,接收真实数据props,实现三层视觉结构(外层维度角、中层健康指数扇区、内层中心圆)。
 
@@ -1268,7 +1268,7 @@ export default {
 - [ ] **Step 2: Commit**
 
 ```bash
-git add zxyj-frontend/components/wuxing-sandbox.vue
+git add cfc-frontend/components/wuxing-sandbox.vue
 git commit -m "feat(energy): rewrite wuxing-sandbox with real data props and 3-layer visual structure"
 ```
 
@@ -1277,8 +1277,8 @@ git commit -m "feat(energy): rewrite wuxing-sandbox with real data props and 3-l
 ## Task 9: 前端首页集成 — parent-index和child-index传入真实数据
 
 **Files:**
-- Modify: `zxyj-frontend/pages/index/parent-index.vue`
-- Modify: `zxyj-frontend/pages/index/child-index.vue`
+- Modify: `cfc-frontend/pages/index/parent-index.vue`
+- Modify: `cfc-frontend/pages/index/child-index.vue`
 
 在两个首页的`onShow`或`onLoad`生命周期中调用`getEnergyOverview`API,将结果传给wuxing-sandbox组件。
 
@@ -1389,7 +1389,7 @@ loadEnergyOverview: function () {
 - [ ] **Step 3: Commit**
 
 ```bash
-git add zxyj-frontend/pages/index/parent-index.vue zxyj-frontend/pages/index/child-index.vue
+git add cfc-frontend/pages/index/parent-index.vue cfc-frontend/pages/index/child-index.vue
 git commit -m "feat(energy): integrate energy overview API into parent and child index pages"
 ```
 
@@ -1398,8 +1398,8 @@ git commit -m "feat(energy): integrate energy overview API into parent and child
 ## Task 10: 前端能量详情页 + pages.json注册
 
 **Files:**
-- Create: `zxyj-frontend/pages/energy/detail.vue`
-- Modify: `zxyj-frontend/pages.json`
+- Create: `cfc-frontend/pages/energy/detail.vue`
+- Modify: `cfc-frontend/pages.json`
 
 创建维度详情页:显示维度名称/图标/能量值/健康指数,下方展示流水记录。从wuxing-sandbox点击维度时navigateTo进入。
 
@@ -1608,7 +1608,7 @@ goToDomain: function (code) {
 - [ ] **Step 4: Commit**
 
 ```bash
-git add zxyj-frontend/pages/energy/detail.vue zxyj-frontend/pages.json zxyj-frontend/pages/index/parent-index.vue zxyj-frontend/pages/index/child-index.vue
+git add cfc-frontend/pages/energy/detail.vue cfc-frontend/pages.json cfc-frontend/pages/index/parent-index.vue cfc-frontend/pages/index/child-index.vue
 git commit -m "feat(energy): add energy detail page + register in pages.json + add navigation"
 ```
 
@@ -1617,7 +1617,7 @@ git commit -m "feat(energy): add energy detail page + register in pages.json + a
 ## Task 11: discover页预览模式更新
 
 **Files:**
-- Modify: `zxyj-frontend/pages/discover/index.vue`
+- Modify: `cfc-frontend/pages/discover/index.vue`
 
 discover页保持preview模式,不需要调用API,但需要传入空dimensions数组保证组件正常渲染。
 
@@ -1642,7 +1642,7 @@ discover页保持preview模式,不需要调用API,但需要传入空dimensio
 - [ ] **Step 2: Commit**
 
 ```bash
-git add zxyj-frontend/pages/discover/index.vue
+git add cfc-frontend/pages/discover/index.vue
 git commit -m "feat(energy): update discover page with empty energy props for preview mode"
 ```
 
@@ -1654,15 +1654,15 @@ git commit -m "feat(energy): update discover page with empty energy props for pr
 
 - [ ] **Step 1: 后端完整编译**
 
-Run: `cd zxyj-backend && mvn clean compile -q`
+Run: `cd cfc-backend && mvn clean compile -q`
 Expected: BUILD SUCCESS
 
 - [ ] **Step 2: 检查LSP诊断**
 
 Run: `lsp_diagnostics` on:
-- `zxyj-backend/src/main/java/com/zxyj/service/EnergyService.java`
-- `zxyj-backend/src/main/java/com/zxyj/controller/energy/EnergyController.java`
-- `zxyj-backend/src/main/java/com/zxyj/service/TaskService.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/service/EnergyService.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/energy/EnergyController.java`
+- `cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java`
 
 Expected: 无新增error
 

+ 3 - 3
docs/superpowers/specs/2026-05-13-users-admins-merge.md

@@ -164,14 +164,14 @@ public Result<Boolean> resetWebPassword(@RequestAttribute("userId") Long userId,
 
 | 文件 | 变更类型 | 说明 |
 |------|----------|------|
-| `zxyj-frontend/pages/teacher/teacher-profile.vue` | 修改 | 拆分密码设置为首次设置和修改密码两个入口 |
-| `zxyj-frontend/utils/api.js` | 修改 | 新增 set-web-password, reset-web-password API |
+| `cfc-frontend/pages/teacher/teacher-profile.vue` | 修改 | 拆分密码设置为首次设置和修改密码两个入口 |
+| `cfc-frontend/utils/api.js` | 修改 | 新增 set-web-password, reset-web-password API |
 
 ### Web端文件变更
 
 | 文件 | 变更类型 | 说明 |
 |------|----------|------|
-| `zxyj-web/src/views/Login.vue` | 无需修改 | AdminAuthController 端点不变(logic变化内部处理) |
+| `cfc-web/src/views/Login.vue` | 无需修改 | AdminAuthController 端点不变(logic变化内部处理) |
 
 ## 6. 安全考虑
 

+ 7 - 7
docs/superpowers/specs/2026-06-04-pre-login-discovery-design.md

@@ -246,13 +246,13 @@
 
 | 文件 | 改动类型 | 说明 |
 |------|----------|------|
-| `zxyj-frontend/App.vue` | 修改 | 登录态判断 + TabBar 切换逻辑 |
-| `zxyj-frontend/pages/discover/index.vue` | 重构 | 全新布局(沙盘+活动+商品) |
-| `zxyj-frontend/pages/shop/index.vue` | 修改 | 添加未登录态预览逻辑 |
-| `zxyj-frontend/pages/login/login.vue` | 微调 | 支持 redirect 参数 |
-| `zxyj-frontend/components/wuxing-sandbox.vue` | 新增 | 五行沙盘组件提取 |
-| `zxyj-frontend/components/bottom-nav.vue` | 新增 | 自定义底部导航组件 |
-| `zxyj-frontend/utils/api.js` | 新增 | 公开内容接口 |
+| `cfc-frontend/App.vue` | 修改 | 登录态判断 + TabBar 切换逻辑 |
+| `cfc-frontend/pages/discover/index.vue` | 重构 | 全新布局(沙盘+活动+商品) |
+| `cfc-frontend/pages/shop/index.vue` | 修改 | 添加未登录态预览逻辑 |
+| `cfc-frontend/pages/login/login.vue` | 微调 | 支持 redirect 参数 |
+| `cfc-frontend/components/wuxing-sandbox.vue` | 新增 | 五行沙盘组件提取 |
+| `cfc-frontend/components/bottom-nav.vue` | 新增 | 自定义底部导航组件 |
+| `cfc-frontend/utils/api.js` | 新增 | 公开内容接口 |
 | 全站前端文件 | 文本替换 | 溪艾福→汐艾福 |
 
 ### 不改动的范围

+ 2 - 2
docs/系统测试/package-lock.json

@@ -1,11 +1,11 @@
 {
-  "name": "zxyj-automation-tests",
+  "name": "cfc-automation-tests",
   "version": "1.0.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
-      "name": "zxyj-automation-tests",
+      "name": "cfc-automation-tests",
       "version": "1.0.0",
       "license": "MIT",
       "dependencies": {

+ 1 - 1
docs/系统测试/package.json

@@ -1,5 +1,5 @@
 {
-  "name": "zxyj-automation-tests",
+  "name": "cfc-automation-tests",
   "version": "1.0.0",
   "description": "心知益家小程序自动化测试套件",
   "main": "run-tests.js",

+ 1 - 1
docs/需求分析/需求分析文档.md

@@ -45,7 +45,7 @@
 | **测评订单(含支付)** | **✅ 已完成** | **P0链路贯通** |
 | **测评预约管理** | **✅ 已完成** | **规划师/家长端** |
 | **Web管理端侧边栏** | **✅ 已完成** | **admin+teacher双菜单** |
-| **多数据源+迁移** | **✅ 已完成** | **sfms→zxyj迁移** |
+| **多数据源+迁移** | **✅ 已完成** | **sfms→cfc迁移** |
 | 成长档案 | ✅ 已完成 | 创建/查看/详情 |
 | **成长规划师端** | **🟡 已完成** | **Web端7页面+小程序端** |
 | **成长档案(增强)** | **🟡 已完成** | **测评关联/快照** |

Vissa filer visades inte eftersom för många filer har ändrats