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.
2.4 KiB
2.4 KiB
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改为UserStatsDTOassignUserRoles(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)