Просмотр исходного кода

chore: auto bump version and changelog [skip ci]

iwt 5 дней назад
Родитель
Сommit
f52cff6783

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-6802a6ac4d0fefa69f8a6e86f0e20b2e990c0285
+021b6647396c4eee182385e60951d3a2a61db57e

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2188",
+  "version": "1.0.2189",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.2188",
+      "version": "1.0.2189",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2189",
+  "version": "1.0.2190",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 83 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,89 @@
 
 ---
 
+## v1.0.2190 (2026-11-07)
+
+### 测试
+- R78 登记 B-61 P0 健康方案鉴权缺口 + O-14 langgraph 签名变更协调单
+- R78 闭环汇报 - /admin 5/5 全绿打通(登录+滑块+核心菜单) + /frontend 6/6 复跑确认 + HP-U01~03 鉴权契约(P0 延续) + langgraph test_memory 用例滞后发现
+- R77 闭环汇报 - 后端首次全量实测 95.07% + B-58 口径重定性 + 新增6例签名用例
+- S-cfc-48 RED 契约级单测 team.profit.pipeline 收入管道化触发源扩展 (T9 §4.7杠杆1)
+- S-cfc-38 family.invite.joinRequestCardInfo RED contract tests (WI-4 审批卡片三项信息) + vue SFC jest transform
+- team.profit.settle 契约级单测(RED,实现未落地 32 例全红)
+- S-cfc-42 RED 契约单测 team.profit.hook — 6 订单服务同点位并行调用 ProfitPoolService.settle()(§12-T3+§2.2),反射结构契约,6/7 红
+- S-cfc-40 能力键 team.invitation.create RED 契约级单测
+- RED 契约级单测 team.star.multiplier 星级倍率权重(T10 杠杆2/3/4,13 用例红)
+- family.invite.joinRequiredInfoFrontend RED 契约级单测(join-form 出生日期/性别必填)
+- S-cfc-45 team.user.portal TDD-RED 契约级单测(场景A推荐人绑定缺失 referrerId=null + 邀请校验缺团队业绩预览 2 RED/4)
+- 家庭加入准入校验门禁契约级测试(TDD-RED) - family.invite.joinRequiredInfoTest
+- S-cfc-37 RED 契约级单测 FamilyJoinValidationRulesContractTest(AC-R3/WI-3 准入校验门禁未落地,9 用例红)
+- RED 契约级单测 family.invite.joinValidationGate 准入门禁
+
+### 其他
+- - B-53 第4次量化:13文件 170例/48红 → 187例/6红,42例转绿+17例新增,预测96.83%
+- - B-58 重定性:clean树 langgraph 43收集/26过/17红(13环境+3夹具+1数据),WIP 8文件为修复补丁非刷绿
+- - 新增 B-59(admin TC-A-U05 条件跳过掩盖失败)、B-60(ActivityControllerTest 412s)
+- - 新增 6 例 signature-bus 用例,绑定 e35ca7186 签名独立横屏页(WI-1/WI-4)
+- 
+- 溯源:2026-11-07-referral-team-profit-sharing.md v0.7 §12-T2 + §2.1 分配公式
+- + §4.2 8份分配(#5拍板 每层min(星级,剩余) 最多6份 最少2层)+ §4.3 星级
+- + §4.4 团队奖(#3拍板 platform_rule)+ §7.1/7.3/7.4/7.5 建表
+- 新增契约级单测(仅测试代码,src/main 零改动;反射定位契约类/方法,
+- 类缺失以断言失败暴露 RED 而非编译失败,GREEN 落地后自动转行为校验):
+- - ProfitPoolOrderContractRedTest       4 例:§2.1 总账 S=1000元/C=800元 →
+-   P=20000/O=2000/F=1000/D=17000/R=11900/T=5100/8份池4080/团队奖1020;
+-   预算守恒 R+T=D、8份+团队奖=T;D≤0 不触发分润仅落单;逐项 round 不留尾差
+- - TeamShareRecordEightShareContractRedTest 6 例:§4.2 8份分配 6★/1★/1★ →
+-   3060/510/510 分;6★+2★ 最少2层分完;min(星级,剩余) 封顶;全1★剩余回流;
+-   无引荐人仅本人;§7.3 契约列携带
+- - TeamAwardRecordContractRedTest       6 例:§4.4 团队奖 TA0~TA3 分档
+-   (0%/50%/80%/100%)门槛边界 + awardCent 取整 + #3 归属平台自有团队
+- - StarScoreCalculatorContractRedTest  10 例:§4.3 业绩分 50/40/10 加权、
+-   星级六档边界 0/8千/2.5万/7万/14万/25万、升级双门槛(业绩分达标 AND 直推≥1)
+- - TeamProfitSchemaContractRedTest       6 例:§7 四表实体 @TableName 与建表名一致、
+-   Mapper 继承 BaseMapper<实体>、§7.1/7.3/7.4/7.5 业务列字段覆盖
+- 运行结果(RED):Tests run: 32, Failures: 32, Errors: 0 —— 全部失败:
+-   'RED: 契约类未实现 [§12-T2] com.etotem.cfc.service.ProfitPoolService'
+-   (及 TeamProfitService/StarScoreCalculator/四实体/四 Mapper 同型断言)
+- 暴露真实缺陷:无(纯 RED,T2 实现未落地,cfclub 基线无相关类/表);
+- 权限流 N/A(T2 为服务层契约,无 HTTP 端点/角色)。
+- 构建结果:mvn test-compile 通过;测试运行 BUILD FAILURE(预期红)。
+- 主体为 org.mockito mock + 反射,不依赖真实微信/外部服务。
+- 
+- §5.1/5.2/5.3(团队邀请生成→inviteCode+小程序码wxacode+落地页) + §7.7(复用
+- distribution_relations.invite_code) + §11-#11(独立落地页) + §12-T1。
+- 被测 DistributionInviteController#generate(POST /api/distribution/invite/generate)。
+- 正常流断言 data 为邀请对象(含 inviteCode/wxacode/systemId/teamName/inviterId),
+- 现实现仅返回 Result<String>(裸邀请码)→ 2 用例红;边界/权限流 5 用例绿。
+- 仅测试代码, 不改 src/main。
+- 
+- §12-T10 + §4.7.2 杠杆2/3/4 + §11-#14 + §10#5。
+- 契约断言(宿主 TeamProfitService 未实现 → 全部 RED):
+- - 杠杆2 倍率表:1★=1.0/2★=1.0/3★=1.2/4★=1.5/5★=2.0/6★=3.0;权重 W=星级×倍率
+- - 杠杆2 数学校验:6★(W=18)+1★+1★ 总W=20 → 3672/204/204 分(Σ=4080=T×80% 只重分不增量)
+- - 杠杆2 边界:全6★/全1★ Σ=8份池;层无人份额回流不私发(Σ≤8份池)
+- - 杠杆3 星耀导师:带出1名5★→档位+1;2名→100%上限+年度星耀会候选人
+- - 杠杆4 实时可见:订单完成返回本单分润(pending 可见);D≤0 分润=0
+- - 权限流:不适用(平台服务团队归属口径,无外部引荐链鉴权分支)
+- 暴露真实缺陷:TeamProfitService(8份池星级权重分配/带教里程碑/实时分润)实现未落地。
+- 仅测试代码,src/main 一行未动。
+- 
+- - 正常流:realName/birthday/gender 齐全合法 -> 请求正常创建
+- - 缺失流:三项任一缺失 -> 拒绝且不落库
+- - 非法流:生日未来/极早、姓名超20字、性别大小写混用 -> 拒绝且不落库
+- 仅测试代码,未改业务实现。当前 RED:9失败1通过(门禁未落地)。
+- 
+- - 正常流+边界:三项齐全、姓名 1/20 字、生日=今天、生日=1900-01-01 → 创建待审批请求
+- - 纯 Mockito 无外部依赖;src/main 零改动
+- 
+- - AC2.1/2.2/2.3: realName 空 / birthday null / gender 非 male|female → 拒绝且无 DB 记录
+- - AC3.1: birthday 未来 → 「出生日期不能晚于今天」;AC3.2: 早于 1900-01-01 → 「出生日期不合法」
+- - AC3.3: realName >20 字拒绝;AC3.4: gender 大小写混用/其他值拒绝
+- - AC2.4/AC-R4: 三项齐全合法 → 正常创建待审批请求
+- - 仅测试代码,src/main 零改动
+- 
+
+
 ## v1.0.2189 (2026-11-07)
 
 ### 文档

+ 84 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.2189
+> 当前版本: v1.0.2190
 
 ## 历史版本
 
@@ -8,6 +8,89 @@
 
 ---
 
+## v1.0.2190 (2026-11-07)
+
+### 测试
+- R78 登记 B-61 P0 健康方案鉴权缺口 + O-14 langgraph 签名变更协调单
+- R78 闭环汇报 - /admin 5/5 全绿打通(登录+滑块+核心菜单) + /frontend 6/6 复跑确认 + HP-U01~03 鉴权契约(P0 延续) + langgraph test_memory 用例滞后发现
+- R77 闭环汇报 - 后端首次全量实测 95.07% + B-58 口径重定性 + 新增6例签名用例
+- S-cfc-48 RED 契约级单测 team.profit.pipeline 收入管道化触发源扩展 (T9 §4.7杠杆1)
+- S-cfc-38 family.invite.joinRequestCardInfo RED contract tests (WI-4 审批卡片三项信息) + vue SFC jest transform
+- team.profit.settle 契约级单测(RED,实现未落地 32 例全红)
+- S-cfc-42 RED 契约单测 team.profit.hook — 6 订单服务同点位并行调用 ProfitPoolService.settle()(§12-T3+§2.2),反射结构契约,6/7 红
+- S-cfc-40 能力键 team.invitation.create RED 契约级单测
+- RED 契约级单测 team.star.multiplier 星级倍率权重(T10 杠杆2/3/4,13 用例红)
+- family.invite.joinRequiredInfoFrontend RED 契约级单测(join-form 出生日期/性别必填)
+- S-cfc-45 team.user.portal TDD-RED 契约级单测(场景A推荐人绑定缺失 referrerId=null + 邀请校验缺团队业绩预览 2 RED/4)
+- 家庭加入准入校验门禁契约级测试(TDD-RED) - family.invite.joinRequiredInfoTest
+- S-cfc-37 RED 契约级单测 FamilyJoinValidationRulesContractTest(AC-R3/WI-3 准入校验门禁未落地,9 用例红)
+- RED 契约级单测 family.invite.joinValidationGate 准入门禁
+
+### 其他
+- - B-53 第4次量化:13文件 170例/48红 → 187例/6红,42例转绿+17例新增,预测96.83%
+- - B-58 重定性:clean树 langgraph 43收集/26过/17红(13环境+3夹具+1数据),WIP 8文件为修复补丁非刷绿
+- - 新增 B-59(admin TC-A-U05 条件跳过掩盖失败)、B-60(ActivityControllerTest 412s)
+- - 新增 6 例 signature-bus 用例,绑定 e35ca7186 签名独立横屏页(WI-1/WI-4)
+- 
+- 溯源:2026-11-07-referral-team-profit-sharing.md v0.7 §12-T2 + §2.1 分配公式
+- + §4.2 8份分配(#5拍板 每层min(星级,剩余) 最多6份 最少2层)+ §4.3 星级
+- + §4.4 团队奖(#3拍板 platform_rule)+ §7.1/7.3/7.4/7.5 建表
+- 新增契约级单测(仅测试代码,src/main 零改动;反射定位契约类/方法,
+- 类缺失以断言失败暴露 RED 而非编译失败,GREEN 落地后自动转行为校验):
+- - ProfitPoolOrderContractRedTest       4 例:§2.1 总账 S=1000元/C=800元 →
+-   P=20000/O=2000/F=1000/D=17000/R=11900/T=5100/8份池4080/团队奖1020;
+-   预算守恒 R+T=D、8份+团队奖=T;D≤0 不触发分润仅落单;逐项 round 不留尾差
+- - TeamShareRecordEightShareContractRedTest 6 例:§4.2 8份分配 6★/1★/1★ →
+-   3060/510/510 分;6★+2★ 最少2层分完;min(星级,剩余) 封顶;全1★剩余回流;
+-   无引荐人仅本人;§7.3 契约列携带
+- - TeamAwardRecordContractRedTest       6 例:§4.4 团队奖 TA0~TA3 分档
+-   (0%/50%/80%/100%)门槛边界 + awardCent 取整 + #3 归属平台自有团队
+- - StarScoreCalculatorContractRedTest  10 例:§4.3 业绩分 50/40/10 加权、
+-   星级六档边界 0/8千/2.5万/7万/14万/25万、升级双门槛(业绩分达标 AND 直推≥1)
+- - TeamProfitSchemaContractRedTest       6 例:§7 四表实体 @TableName 与建表名一致、
+-   Mapper 继承 BaseMapper<实体>、§7.1/7.3/7.4/7.5 业务列字段覆盖
+- 运行结果(RED):Tests run: 32, Failures: 32, Errors: 0 —— 全部失败:
+-   'RED: 契约类未实现 [§12-T2] com.etotem.cfc.service.ProfitPoolService'
+-   (及 TeamProfitService/StarScoreCalculator/四实体/四 Mapper 同型断言)
+- 暴露真实缺陷:无(纯 RED,T2 实现未落地,cfclub 基线无相关类/表);
+- 权限流 N/A(T2 为服务层契约,无 HTTP 端点/角色)。
+- 构建结果:mvn test-compile 通过;测试运行 BUILD FAILURE(预期红)。
+- 主体为 org.mockito mock + 反射,不依赖真实微信/外部服务。
+- 
+- §5.1/5.2/5.3(团队邀请生成→inviteCode+小程序码wxacode+落地页) + §7.7(复用
+- distribution_relations.invite_code) + §11-#11(独立落地页) + §12-T1。
+- 被测 DistributionInviteController#generate(POST /api/distribution/invite/generate)。
+- 正常流断言 data 为邀请对象(含 inviteCode/wxacode/systemId/teamName/inviterId),
+- 现实现仅返回 Result<String>(裸邀请码)→ 2 用例红;边界/权限流 5 用例绿。
+- 仅测试代码, 不改 src/main。
+- 
+- §12-T10 + §4.7.2 杠杆2/3/4 + §11-#14 + §10#5。
+- 契约断言(宿主 TeamProfitService 未实现 → 全部 RED):
+- - 杠杆2 倍率表:1★=1.0/2★=1.0/3★=1.2/4★=1.5/5★=2.0/6★=3.0;权重 W=星级×倍率
+- - 杠杆2 数学校验:6★(W=18)+1★+1★ 总W=20 → 3672/204/204 分(Σ=4080=T×80% 只重分不增量)
+- - 杠杆2 边界:全6★/全1★ Σ=8份池;层无人份额回流不私发(Σ≤8份池)
+- - 杠杆3 星耀导师:带出1名5★→档位+1;2名→100%上限+年度星耀会候选人
+- - 杠杆4 实时可见:订单完成返回本单分润(pending 可见);D≤0 分润=0
+- - 权限流:不适用(平台服务团队归属口径,无外部引荐链鉴权分支)
+- 暴露真实缺陷:TeamProfitService(8份池星级权重分配/带教里程碑/实时分润)实现未落地。
+- 仅测试代码,src/main 一行未动。
+- 
+- - 正常流:realName/birthday/gender 齐全合法 -> 请求正常创建
+- - 缺失流:三项任一缺失 -> 拒绝且不落库
+- - 非法流:生日未来/极早、姓名超20字、性别大小写混用 -> 拒绝且不落库
+- 仅测试代码,未改业务实现。当前 RED:9失败1通过(门禁未落地)。
+- 
+- - 正常流+边界:三项齐全、姓名 1/20 字、生日=今天、生日=1900-01-01 → 创建待审批请求
+- - 纯 Mockito 无外部依赖;src/main 零改动
+- 
+- - AC2.1/2.2/2.3: realName 空 / birthday null / gender 非 male|female → 拒绝且无 DB 记录
+- - AC3.1: birthday 未来 → 「出生日期不能晚于今天」;AC3.2: 早于 1900-01-01 → 「出生日期不合法」
+- - AC3.3: realName >20 字拒绝;AC3.4: gender 大小写混用/其他值拒绝
+- - AC2.4/AC-R4: 三项齐全合法 → 正常创建待审批请求
+- - 仅测试代码,src/main 零改动
+- 
+
+
 ## v1.0.2189 (2026-11-07)
 
 ### 文档