2026-05-08-REQ-USR-003.md
1.42 KB
req_id: REQ-USR-003 date: 2026-05-08 round: 4
reviewer: superpower-code-reviewer
Review: REQ-USR-003 — round 4
结论
approve
Must-fix
(无)
Nice-to-have
- backend/src/main/java/com/example/erp/module/usr/controller/UserController.java:35-50 — docs/05 声明了 Permission: usr:query,但当前 SecurityConfig 仅做鉴权(authenticated),未启用 @PreAuthorize,属跨切面 REQ 的存量缺口,非本 REQ 引入
- backend/src/main/java/com/example/erp/common/response/Result.java:19 — docs/04 § 1.3 示例写 code:0,实际实现与 docs/05 一致为 200;docs/04 示例是历史遗留,可单独 docs commit 修正
- backend/src/main/resources/mapper/UsrUserMapper.xml:29,43 — staffName/department equals 分支未加 IS NULL OR,因为 equals '部门名' 语义上不应匹配无职员用户,行为正确但可补注释说明
- backend/src/test/java/com/example/erp/module/usr/UserControllerTest.java:109 — getUsers_withToken_returns200 未用 ArgumentCaptor 验证五个参数均正确转发给 service
反例 / 测试覆盖缺口
- 无 XML 动态查询路径(含/不含/等于、disabled 是否、lastLoginDate DATE 过滤、pageSize cap)的集成/切片测试;mapper 被 mock 后 XML 逻辑未被单元覆盖
- UserControllerTest 未断言响应中不含 sPasswordHash / iLoginFailCount / tLockUntil
- 前端测试未覆盖翻页 onChange 回调(load 以正确页码调用)