日期: 2026-07-08
分支: temp-push (origin/cfclub at f6b1282, ahead of b36b888)
同步范围: b36b888..f6b1282 + 远程分析 5 commits
| Commit | 模块 | 变更内容 | 测试影响 |
|---|---|---|---|
f6b1282 |
测试 | 单元测试 + API 测试 + E2E 更新 | 本次新增 |
b36b888 |
cfc-backend | Migration 36-37: family_members 表添加 generation + is_spouse 列,旧数据迁移 | ⚠️ schema.sql 未同步 |
65c6f55 |
docs | 家庭成员辈分重构实施计划 (v2.0) + 关系视角转换设计 (v3.0) | 无代码变更 |
5e7d9d9 |
cfc-web | Admin 页面编辑器增强:ActivityEdit.vue 富文本编辑器,版本 1.0.8 | ✅ E2E 场景已更新 |
538224b |
cfc-backend | 辈分体系:AddFamilyMemberDTO 重构 (relativeMemberId+generationLevel+peerType),FamilyMember 新增 generation/isSpouse,FamilyMemberVO 新增 generation | ❌ 编译失败 |
ae07ac4 |
cfc-backend | PaymentService: testMode 支持 + 私钥加载重构 + createWechatPrepay 新增 openid 参数 | ⚠️ 需新测试 |
8793fb1 |
cfc-frontend | 修复 5 个小程序 UI bug | 前端回归 |
0ed5b6d |
cfc-backend | CORS: PrivateNetwork 头 + 显式 allowedOrigins | 无测试影响 |
098f5d2 |
cfc-backend | Migration 35: points_log 表添加 family_member_id 列 | 已覆盖 |
DatabaseInitializer (第 4113-4126 行):
ensureColumn("family_members", "generation", "INT COMMENT '辈分值'");
ensureColumn("family_members", "is_spouse", "TINYINT(1) DEFAULT 0 COMMENT '是否配偶'");
数据迁移: spouse→generation=0, is_spouse=1; parent→generation=1; child→generation=-1; sibling→generation=0
relativeMemberId (Long, 必填) - 辈分参照成员generationLevel (String, 必填) - great_grandparent/grandparent/parent/peer/child/grandchild/great_grandchildpeerType (String, 选填) - sibling/spouse (仅 peer 时)relationshipType 已移除generation 新增generation + isSpouse 新增, isMale(), isFemale() 方法@Value("${wechat.test-mode:false}") - 配置属性getClassLoader().getResourceAsStream() (classpath 读取)mvn compile → BUILD FAILURE (7 errors)
| # | 文件 | 行号 | 错误 | 原因 |
|---|---|---|---|---|
| 1 | FamilyMemberService.java | 55:16 | getRelationshipType() not found |
DTO字段已移除 |
| 2 | FamilyMemberService.java | 55:53 | getRelationshipType() not found |
DTO字段已移除 |
| 3 | FamilyMemberService.java | 71:62 | getRelationshipType() not found |
DTO字段已移除 |
| 4 | FamilyMemberService.java | 71:29 | 方法引用无效 getTypeKey() |
级联错误 |
| 5 | FamilyMemberService.java | 72:29 | 方法引用无效 getEnabled() |
级联错误 |
| 6 | FamilyMemberService.java | 74:65 | getRelationshipType() not found |
DTO字段已移除 |
| 7 | FamilyMemberService.java | 92:39 | getRelationshipType() not found |
DTO字段已移除 |
根本原因: AddFamilyMemberDTO 被重构为辈分参照模式,但 FamilyMemberService.addMember() 未同步更新。
无法执行 API 测试 - 后端代码编译失败,服务器无法启动。
因主代码编译失败,所有 JUnit 测试无法运行。
| 测试文件 | 方法数 | 是否编译 | 状态 |
|---|---|---|---|
| SupplySystemServiceTest.java | 14 | ⚠️ 主代码阻塞 | 待编译修复 |
| FoodRecommendServiceTest.java | 10 | ⚠️ 主代码阻塞 | 待编译修复 |
| ArticleWorkflowTest.java | 12 | ⚠️ 主代码阻塞 | 待编译修复 |
| ActivityServicePublishTest.java | 6 | ⚠️ 主代码阻塞 | 待编译修复 |
| ProductServiceTest.java | 10+ | ⚠️ 主代码阻塞 | 待编译修复 |
| DimensionScoreServiceTest.java | 15+ | ⚠️ 主代码阻塞 | 待编译修复 |
| 测试套件 | 用例数 | 上次结果 | 当前状态 |
|---|---|---|---|
| REG (回归) | 16 | 16 PASS | ⚠️ 阻塞 |
| FOOD-01~06 (食材) | 6 | 2 PASS / 4 FAIL | ⚠️ 阻塞 |
| SUPPLY-01~07 (供应商) | 7 | 0 EXECUTED | ⚠️ 阻塞 |
| FOOD-REC-01~02 (推荐指数) | 2 | 2 PASS | ⚠️ 阻塞 |
| ARTICLE-WF-00~03 (工作流) | 3+ | 1 PASS / 1 FAIL | ⚠️ 阻塞 |
| ISSUE-001 (vendor login) | 1 | 1 PASS | ⚠️ 阻塞 |
注意: 所有 API 测试因后端编译失败无法执行。
| 文件 | 场景数 | 状态 |
|---|---|---|
| article-management.spec.js | 5 | ✅ 已更新 (需前端环境) |
| activity-registration.spec.js | 5 | ✅ 已更新 (需前端环境) |
| 新功能模块 | 单元测试 | API 测试 | E2E 测试 | 覆盖率评级 |
|---|---|---|---|---|
| 供应商分销体系 | 14 tests | 7 tests | - | ✅ 良好 |
| 食材推荐指数 | 10 tests | 2 tests | - | ✅ 良好 |
| 文章工作流 | 12 tests | 4 tests | 2 场景 | ✅ 良好 |
| Migration 36-37 (generation/isSpouse) | 0 tests | 0 tests | - | ❌ 无覆盖 |
| PaymentService testMode | 0 tests | 0 tests | - | ❌ 无覆盖 |
| ActivityEdit 富文本 | - | - | 0 | ❌ 无覆盖 |
| 缺口 | 影响 | 建议 |
|---|---|---|
| FamilyMemberService 编译失败 | 阻塞所有测试 | 修复 ISSUE-010 |
| schema.sql 未同步 | 部署后 DDL 不一致 | 修复 ISSUE-011 |
| 无 generation/isSpouse 单元测试 | 新字段未验证 | 添加 FamilyMemberServiceTest |
| 无 PaymentService testMode 测试 | 测试模式未验证 | 添加 PaymentServiceTest |
| API 测试缺少新迁移验证 | 后端未部署 | 部署后重新执行 |
️ ISSUE-010: FamilyMemberService.addMember() 未同步新的 AddFamilyMemberDTO
FamilyMemberService.java 第 55, 71, 74, 92 行dto.getRelationshipType() 改为基于 relativeMemberId + generationLevel 的辈分计算️ ISSUE-007: SupplySystem API 500 (表不存在)
/submit-for-review 未注册/api/admin/foods/list 500 (SQL 查询)/api/admin/foods/detail 返回字符串而非 JSON本报告由 Sisyphus 自动生成,基于远程同步 + 代码分析 + mvn compile 验证