|
|
@@ -4,6 +4,90 @@
|
|
|
|
|
|
---
|
|
|
|
|
|
+## v1.0.2207 (2026-11-08)
|
|
|
+
|
|
|
+### 测试
|
|
|
+- S-cfc-76 admin.family.actionMenu — RED 契约单测(更多按钮去掉查看成员/删除,4例全红)
|
|
|
+- S-cfc-74 能力键 admin.family.planEntry 契约级单测(TDD-RED,预期红 6/6)——planCount=0 可点击进方案明细 + plans 弹窗补「代生成方案」入口
|
|
|
+- S-cfc-73 能力键 admin.family.reportEntry 契约级单测(TDD-RED,预期红 6/6)——reportCount=0 可点击进报告明细 + 报告弹窗补代传报告入口
|
|
|
+- S-cfc-72 admin.familyCoupon.backToList — RED 契约单测(3例全红)
|
|
|
+
|
|
|
+### 其他
|
|
|
+- 溯源·需求:docs/superpowers/specs/2026-11-08-family-admin-list-polish.md §需求5
|
|
|
+- (更多按钮里去掉查看成员,家庭不能删除)
|
|
|
+- 溯源·设计:Families.vue L92-96 删除 viewMembers/delete 两个 dropdown-item;
|
|
|
+- L384-390 handleActionCmd 清理对应 case;后端保留 deleteFamily API 不删。
|
|
|
+- 契约断言(6例,4红2绿):
|
|
|
+- - 操作列存在 / 「更多」下拉菜单渲染(基线,绿)
|
|
|
+- - 下拉菜单不再出现 command=viewMembers(红:当前仍存在)
|
|
|
+- - 下拉菜单不再出现 command=delete(红:当前仍存在)
|
|
|
+- - handleActionCmd 不再分发 viewMembers(红:当前仍分发)
|
|
|
+- - handleActionCmd 不再分发 delete(红:当前仍分发)
|
|
|
+- 当前实现未落地,预期 RED;GREEN 阶段按设计删除对应 dropdown-item 与 case 后转绿。
|
|
|
+- 参考同批 S-cfc-75 Families.createdAtDisplay.spec.js 的读源码风格。
|
|
|
+-
|
|
|
+- 溯源:docs/superpowers/specs/2026-11-08-family-admin-list-polish.md §需求1
|
|
|
+- 契约断言:
|
|
|
+- - 从家庭管理列表进入优惠券管理页时,PageHeader 渲染返回按钮(back=true)
|
|
|
+- - 点击返回按钮应 router.push 回 /admin/families(显式导航)
|
|
|
+- - 返回列表不使用 history.back(),而是 router.push 指定目标路径
|
|
|
+- 当前实现未落地,预期 RED;GREEN 阶段实现后三例转绿。
|
|
|
+- 参考 PageHeader 现有 idiom(OrderDetail.vue back + @back 显式 push)。
|
|
|
+-
|
|
|
+- merge(S-cfc-58): family.invite.joinValidationRules 准入校验规则(MIN_BIRTHDAY+分错误文案;统一以58为基准,57/59同源实现)
|
|
|
+-
|
|
|
+- - 真实姓名 trim 非空且长度 1-20 字;出生日期非空、不晚于今天、不早于 1900-01-01(不设年龄上限)
|
|
|
+- - 性别严格 male/female(大小写敏感);缺失/非法直接抛错、不落库
|
|
|
+- - 对齐 UserService.java:492-505 解析口径(规格 2026-11-07-family-join-required-info §3 AC-R3 / §5 WI-3)
|
|
|
+- - FamilyJoinValidationRulesContractTest 14/14 绿;同实现的 Gate 12/12、RequiredInfo 10/10 同步转绿
|
|
|
+-
|
|
|
+- (契约 §5.2: inviteCode + 小程序码wxacode(独立团队落地页) + systemId + teamName + inviterId):
|
|
|
+- - 复用 distributionService.generateInviteCode 生成 8 位邀请码(§7.7 不新建表);
|
|
|
+- - wxacode = WechatService.generateWxacode(scene=code, page=pages/team-invite/join),
|
|
|
+- WechatService 不可用/失败时降级返回落地页路径兜底(契约仅要求非空);
|
|
|
+- - teamName = getUserTeams 解析命中体系名, 查询不可用降级空串;
|
|
|
+- - 错误透传: 体系不存在/未启用/不在体系中沿用 service message。
|
|
|
+- TeamInvitationCreateContractTest 7 用例 2 红转绿(5 边界/权限流维持绿)。
|
|
|
+-
|
|
|
+- - realName null/空白/超20字、birthday null、gender 非 male|female → 拒绝加入且不落库
|
|
|
+- - birthday 晚于今天 / 早于1900-01-01 → 拒绝(年龄不设上限)
|
|
|
+- - 契约测试 12/12 全绿(FamilyJoinRequestServiceJoinValidationGateTest)
|
|
|
+-
|
|
|
+- - StarScoreCalculator 补齐看板契约:starThreshold / weightedScore / gapToNextStar /
|
|
|
+- isPromotable(双门槛,兼容看板与重评两种调用约定) + 实时聚合 currentStarLevel / totalScore /
|
|
|
+- dimensionBreakdown / dualThresholdProgress / conversionRates / conversionPaths(按最易够到排序) /
|
|
|
+- twelveMonthTrajectory(读 team_star_snapshot 近 12 月,升序)/ myView 聚合
|
|
|
+- - 新增 TeamStarController:POST /api/team-star/my-view,统一 Result<T>,@RequestAttribute userId
|
|
|
+- - 新增看板 DTO:TeamStarMyViewVO + 三维构成/双门槛进度/换算率/换算路径/轨迹点
|
|
|
+- - TeamProfitConfigService 增加 team_profit.star_conversion 换算率读取(默认 250/200/10)
|
|
|
+- - 数据源:TeamProfitStatsMapper(直接/团队/推荐收入、团队直推)+ TeamStarSnapshotMapper;
|
|
|
+- 无 Spring/DB 的反射契约场景安全回退默认值
|
|
|
+- - schema.sql / team_star_snapshot(uk_user_period)与实体沿用既有实现,测试已在 origin/cfclub 绿
|
|
|
+- 验证:mvn -o -Dtest=TeamStarMyViewContractTest(24/24 通过);
|
|
|
+- 邻接 StarScoreCalculatorContractRedTest 10/10、TeamProfitAdminManageContractTest 20/20 通过;
|
|
|
+- TeamProfitCronContractTest.refundWithinCooling_cancelAllRecordsFundsNotPaid 为改动前既有红(已复现基线确认)。
|
|
|
+-
|
|
|
+
|
|
|
+### 文档
|
|
|
+- 测试负责人第86轮闭环汇报 - langgraph 27→26(-1, B-54 DLL漂移)、B-51本地Chromium闭环、浏览器5/5+6/6零回归
|
|
|
+- 测试负责人第85轮工作汇报 - B-61源码已修/部署滞后、B-64装置漂移、langgraph 27/43、3条用例补录
|
|
|
+- 第85轮研发交接通知 - B-61 部署请求(P0)、B-64 装置漂移、langgraph环境红清单
|
|
|
+- 测试负责人第85轮闭环汇报 - B-61源码已修/部署滞后、B-64新增、langgraph +1转绿、3条用例补录(S-cfc-57/58/59/60/70)
|
|
|
+- 研发负责人第67轮汇报(错峰03)账本收口:S-cfc-57/58/59/60/70+B-61 改判done + 5键YELLOW回填yellow_sha
|
|
|
+
|
|
|
+### Bug 修复
|
|
|
+- S-cfc-57/58/59 统一校验实现 - 调用点前移至用户存在检查后(兼容三键契约测试设计锚点,58实现为基准)
|
|
|
+- 健康方案 family 接口纳入登录鉴权 - JwtInterceptor LOGIN_REQUIRED_PATHS 补 /api/health/plan/ 前缀,匿名请求将 401(同族 /api/health/report/ 风格)
|
|
|
+
|
|
|
+### 新功能
|
|
|
+- 实现 team.star.digest 月度星级简报(升/降/持平 + 行动建议 + 权益)
|
|
|
+- S-cfc-58 使绿 - createJoinRequest 准入校验门禁 validateJoinRequiredInfo
|
|
|
+- S-cfc-60 team.invitation.create 生成团队邀请返回对象(含wxacode/teamName)
|
|
|
+- S-cfc-57 family.invite.joinValidationGate 加入申请前校验真实姓名/出生日期/性别
|
|
|
+- S-cfc-71 我的星级看板与差距换算(§12-T7 + §4.3.1 ①②)
|
|
|
+- S-cfc-59 家庭加入准入校验门禁 validateJoinRequiredInfo 实现(真实姓名/出生日期/性别三必填,WI-2/WI-3)
|
|
|
+
|
|
|
+
|
|
|
## v1.0.2206 (2026-11-08)
|
|
|
|
|
|
### 文档
|