You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
2.4 KiB
26 lines
2.4 KiB
|
4 weeks ago
|
# 07 — SystemController 出入参规范化
|
||
|
|
|
||
|
|
**What to build:** 新建 DeptDTO(继承 BaseDTO,含 `children` 树结构,加 `fromEntity`/`toEntity`),新建 AssignDeptDTO(纯 POJO 不继承 BaseDTO,无主键语义)。menuTree 出参从 `List<SysMenu>`(实体直出)改为 `List<ResourceNodeDTO>`。deptTree 出参从 `List<SysDept>`(实体直出)改为 `List<DeptDTO>`。saveDept(5 参数)从 `@RequestParam` 改为 `DeptDTO` 入参。assignUserDepts(3 参数)从 `@RequestParam` 改为 `AssignDeptDTO` 入参。userPage 去掉 `@RequestBody` 改表单绑定(前端破坏性变更——前端从 JSON body 改为 form-urlencoded)。UserStatsVO 改名为 UserStatsDTO。assignUserRoles(2 参数)、deleteDept(1 参数)保持 `@RequestParam`。
|
||
|
|
|
||
|
|
**Blocked by:** 01 (BaseDTO 重构), 02 (InitBinder), 05 (ResourceNodeDTO — menuTree 要用它)
|
||
|
|
|
||
|
|
**Status:** ready-for-agent
|
||
|
|
|
||
|
|
- [ ] 新建 `DeptDTO`(继承 `BaseDTO`,含 `children` 字段,`fromEntity(SysDept)` + `toEntity()`),放 `crm-auth/domain/dto/`
|
||
|
|
- [ ] 新建 `AssignDeptDTO`(纯 POJO,字段 `userId`/`primaryDeptId`/`deptIds`),放 `crm-auth/domain/dto/`
|
||
|
|
- [ ] `UserStatsVO` 改名为 `UserStatsDTO`(不继承 BaseDTO,无主键语义)
|
||
|
|
- [ ] `SystemController.menuTree` 出参从 `List<SysMenu>` 改为 `List<ResourceNodeDTO>`
|
||
|
|
- [ ] `SystemController.deptTree` 出参从 `List<SysDept>` 改为 `List<DeptDTO>`
|
||
|
|
- [ ] `SystemController.saveDept` 从 5 个 `@RequestParam` 改为 `DeptDTO` 入参
|
||
|
|
- [ ] `SystemController.assignUserDepts` 从 3 个 `@RequestParam` 改为 `AssignDeptDTO` 入参
|
||
|
|
- [ ] `SystemController.userPage` 去掉 `@RequestBody`,改为隐式表单绑定
|
||
|
|
- [ ] `SystemController.userStats` 出参类型从 `UserStatsVO` 改为 `UserStatsDTO`
|
||
|
|
- [ ] `assignUserRoles`(2 参数)、`deleteDept`(1 参数)保持 `@RequestParam` 不变
|
||
|
|
- [ ] PermissionResolver.visibleMenuTree 返回类型从 `List<SysMenu>` 改为 `List<ResourceNodeDTO>`(内部做 Entity→DTO 转换)
|
||
|
|
- [ ] SystemController 不再 import `SysMenu`/`SysDept` 实体
|
||
|
|
- [ ] 测试:menuTree/deptTree 返回的 JSON 中不包含 `deleted`/`creatorId`/`updaterId`
|
||
|
|
- [ ] 测试:saveDept 入参为 DeptDTO,提交 `createTime` 被 strip
|
||
|
|
- [ ] 测试:assignUserDepts 入参为 AssignDeptDTO
|
||
|
|
- [ ] 测试:userPage 表单绑定生效(不收 JSON body)
|
||
|
|
- [ ] 前端对接文档同步更新 userPage 的请求格式变更(JSON body → form-urlencoded)
|