|
|
@@ -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)
|
|
|
|
|
|
### 其他
|