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

chore: auto bump version and changelog [skip ci]

iwt 1 неделя назад
Родитель
Сommit
b334e7dc2f
4 измененных файлов с 97 добавлено и 3 удалено
  1. 1 1
      cfc-web/.last_build_commit
  2. 1 1
      cfc-web/package.json
  3. 47 0
      cfc-web/public/CHANGELOG-v1.0.md
  4. 48 1
      cfc-web/public/CHANGELOG.md

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-350cd4d7a44e43c11d39f53290844b2e726271bb
+c6acdbd370eb0c85529343ebc765f90346f24596

+ 1 - 1
cfc-web/package.json

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

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

@@ -4,6 +4,53 @@
 
 
 ---
 ---
 
 
+## v1.0.2043 (2026-11-04)
+
+### Bug 修复
+- B-4 修复管理端列表 envelope 契约不一致 + commission config 更新 400
+- B-5 Result.error() 恒500结构级修复 — 新增400/403/404/409工厂方法 + Activity发布/审核调用点迁移
+
+### 其他
+- - AdminButlerController 的 user-list / list / service-records / settlements 4 个列表
+-   由 data.put("list") 改为 data.put("records"),与活动列表等其他管理端列表契约对齐;
+-   assignments 本身已返回 records,无需改。
+- - 前端消费点 cfc-web ButlerAudit.vue(读 /butler/user-list)同步由 data.list 改为 data.records;
+-   ButlerAssignments.vue 读 data.records 本就一致。grep 确认仓库内无其他 .data.list 消费点。
+- - 新增契约单测 AdminButlerControllerEnvelopeTest(4 case 断言 records 非空、list 键不存在)。
+- F2(POST /api/admin/commission/config/update 400 根因与修复):
+- - 根因:E2E payload({percent,ratio,label,status}) 与实体字段(name/rate/rateType/remark)不匹配,
+-   id=null 走 insert 时 name(表 NOT NULL)缺失触发数据完整性异常返回 400。
+- - 修复:updateConfig 先做参数校验——空 body/缺 name 返回 400 并给出明确 message(非 500),
+-   合法 body 才走 insert/updateById 并返回 200,更新真实落库。
+- - E2E payload 修正为实体字段;新增契约单测 AdminCommissionConfigControllerTest(5 case:
+-   合法 insert/update → 200+落库验证;缺 name/空 body → 400+message)。
+- 验证:mvn compile 通过;mvn test(2 新测试类 9/9)通过;本地实跑确认
+- butler 5 个列表全返回 records、commission 合法 200/缺字段 400 且更新后回查新值;
+- cfc-web npm run build 通过。
+- 
+- B-2(R5): fix admin-auth login exposing HTTP 500 on unauthorized/empty-body
+- 未授权/空 body/缺参调用 POST /api/admin-auth/login 返回业务码 500
+- (message=手机号和验证码不能为空),且空 body 会 NPE;安全测试无法稳定断言被拒。
+- 修复(对齐项目既有惯例: Result 业务码表达语义 + HTTP 200 信封;真实 HTTP 401
+- 由 JwtInterceptor 对受保护路径负责,登录端点为公开路径):
+- - login: dto==null 先判空避免 NPE; 缺 phone/code 属参数校验 -> 400(原 500)
+- - login-by-password / send-code: 同面公开端点同类 R5 暴露, 一并判空 + 400
+- - 手机号格式校验也归参数校验 -> 400
+- - 成功路径/验证码校验/登录锁定/角色判定逻辑零改动
+- 契约测试 AdminAuthControllerLoginStatusTest(10 case, MockMvc standalone + 全 mock):
+- 空 body/{} /缺 code/缺 phone -> 400 非 5xx 无 NPE; 合法验证码登录 -> 200+token。
+- mvn clean compile 通过; mvn test -Dtest=AdminAuthController*Test 10/10 通过;
+- cfc-web npm run build 通过。
+- 
+- 变更:Result.java 新增 badRequest/forbidden/notFound/conflict 工厂方法(仅新增零破坏);ActivityAdminService/ActivityService 参数缺失/无权限/不存在/冲突语义改走 4xx 工厂,不再兜 500。新增 ResultCodeFactoryTest 11 例全绿;ActivityServicePublishTest 6/6、ActivityAdminServiceTest 10/10 全绿。
+- 验证:mvn -o test ResultCodeFactoryTest=11/11;Activity 两组 16/16。
+- 
+
+### 测试
+- 接口冒烟闭环 2026-11-04 13:23 — 通过率 46% (fix=2 reg=0) [CONN_ERR翻转标flaky: fix=2 reg=0]; 测试用例 361/386 完成(文档化219)
+- S-cfc-6 getPlanDetail 契约级 RED 单测落地(8例全绿)+ 回复 TR-1 + B-8 已解除/B-9 鉴权缺口观察登记 — guide.trainingPlan.getPlanDetail
+
+
 ## v1.0.2042 (2026-11-04)
 ## v1.0.2042 (2026-11-04)
 
 
 ### 其他
 ### 其他

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

@@ -1,6 +1,6 @@
 # 更新日志
 # 更新日志
 
 
-> 当前版本: v1.0.2042
+> 当前版本: v1.0.2043
 
 
 ## 历史版本
 ## 历史版本
 
 
@@ -8,6 +8,53 @@
 
 
 ---
 ---
 
 
+## v1.0.2043 (2026-11-04)
+
+### Bug 修复
+- B-4 修复管理端列表 envelope 契约不一致 + commission config 更新 400
+- B-5 Result.error() 恒500结构级修复 — 新增400/403/404/409工厂方法 + Activity发布/审核调用点迁移
+
+### 其他
+- - AdminButlerController 的 user-list / list / service-records / settlements 4 个列表
+-   由 data.put("list") 改为 data.put("records"),与活动列表等其他管理端列表契约对齐;
+-   assignments 本身已返回 records,无需改。
+- - 前端消费点 cfc-web ButlerAudit.vue(读 /butler/user-list)同步由 data.list 改为 data.records;
+-   ButlerAssignments.vue 读 data.records 本就一致。grep 确认仓库内无其他 .data.list 消费点。
+- - 新增契约单测 AdminButlerControllerEnvelopeTest(4 case 断言 records 非空、list 键不存在)。
+- F2(POST /api/admin/commission/config/update 400 根因与修复):
+- - 根因:E2E payload({percent,ratio,label,status}) 与实体字段(name/rate/rateType/remark)不匹配,
+-   id=null 走 insert 时 name(表 NOT NULL)缺失触发数据完整性异常返回 400。
+- - 修复:updateConfig 先做参数校验——空 body/缺 name 返回 400 并给出明确 message(非 500),
+-   合法 body 才走 insert/updateById 并返回 200,更新真实落库。
+- - E2E payload 修正为实体字段;新增契约单测 AdminCommissionConfigControllerTest(5 case:
+-   合法 insert/update → 200+落库验证;缺 name/空 body → 400+message)。
+- 验证:mvn compile 通过;mvn test(2 新测试类 9/9)通过;本地实跑确认
+- butler 5 个列表全返回 records、commission 合法 200/缺字段 400 且更新后回查新值;
+- cfc-web npm run build 通过。
+- 
+- B-2(R5): fix admin-auth login exposing HTTP 500 on unauthorized/empty-body
+- 未授权/空 body/缺参调用 POST /api/admin-auth/login 返回业务码 500
+- (message=手机号和验证码不能为空),且空 body 会 NPE;安全测试无法稳定断言被拒。
+- 修复(对齐项目既有惯例: Result 业务码表达语义 + HTTP 200 信封;真实 HTTP 401
+- 由 JwtInterceptor 对受保护路径负责,登录端点为公开路径):
+- - login: dto==null 先判空避免 NPE; 缺 phone/code 属参数校验 -> 400(原 500)
+- - login-by-password / send-code: 同面公开端点同类 R5 暴露, 一并判空 + 400
+- - 手机号格式校验也归参数校验 -> 400
+- - 成功路径/验证码校验/登录锁定/角色判定逻辑零改动
+- 契约测试 AdminAuthControllerLoginStatusTest(10 case, MockMvc standalone + 全 mock):
+- 空 body/{} /缺 code/缺 phone -> 400 非 5xx 无 NPE; 合法验证码登录 -> 200+token。
+- mvn clean compile 通过; mvn test -Dtest=AdminAuthController*Test 10/10 通过;
+- cfc-web npm run build 通过。
+- 
+- 变更:Result.java 新增 badRequest/forbidden/notFound/conflict 工厂方法(仅新增零破坏);ActivityAdminService/ActivityService 参数缺失/无权限/不存在/冲突语义改走 4xx 工厂,不再兜 500。新增 ResultCodeFactoryTest 11 例全绿;ActivityServicePublishTest 6/6、ActivityAdminServiceTest 10/10 全绿。
+- 验证:mvn -o test ResultCodeFactoryTest=11/11;Activity 两组 16/16。
+- 
+
+### 测试
+- 接口冒烟闭环 2026-11-04 13:23 — 通过率 46% (fix=2 reg=0) [CONN_ERR翻转标flaky: fix=2 reg=0]; 测试用例 361/386 完成(文档化219)
+- S-cfc-6 getPlanDetail 契约级 RED 单测落地(8例全绿)+ 回复 TR-1 + B-8 已解除/B-9 鉴权缺口观察登记 — guide.trainingPlan.getPlanDetail
+
+
 ## v1.0.2042 (2026-11-04)
 ## v1.0.2042 (2026-11-04)
 
 
 ### 其他
 ### 其他