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.
23 lines
1.8 KiB
23 lines
1.8 KiB
|
4 weeks ago
|
# 06 — RoleController 出入参规范化
|
||
|
|
|
||
|
|
**What to build:** RoleDetailVO 改名为 RoleDTO(继承 BaseDTO,加 `fromEntity`/`toEntity`)。新建 RoleParam extends BaseParam,RoleController.page 改用它并经 PageConverter 转换——修复分页绕过(当前自行 `new Page<>` 无页大小上限、排序字段可注入)。page 出参从 `PageResult<SysRole>`(实体直出)改为 `PageResult<RoleDTO>`——`deleted`/`creatorId` 不再泄露。saveOrUpdate 从 6 个 `@RequestParam` 改为 RoleDTO 入参(≥3 阈值触发封装)。assignResources(2 参数)和 delete(1 参数)保持 `@RequestParam`。
|
||
|
|
|
||
|
|
**Blocked by:** 01 (BaseDTO 重构), 02 (InitBinder)
|
||
|
|
|
||
|
|
**Status:** ready-for-agent
|
||
|
|
|
||
|
|
- [ ] `RoleDetailVO` 改名为 `RoleDTO`,继承 `BaseDTO`,加 `@EqualsAndHashCode(callSuper = true)`
|
||
|
|
- [ ] `RoleDTO` 上实现 `fromEntity(SysRole)` 静态方法和 `toEntity()` 实例方法
|
||
|
|
- [ ] 新建 `RoleParam extends BaseParam`,放 `param/` 包,含 `keyword` 等角色查询字段
|
||
|
|
- [ ] `RoleController.page` 入参从 3 个 `@RequestParam` 改为 `RoleParam`,经 `PageConverter.toMpPage` 转换
|
||
|
|
- [ ] `RoleController.page` 出参从 `PageResult<SysRole>` 改为 `PageResult<RoleDTO>`
|
||
|
|
- [ ] `RoleController.saveOrUpdate` 从 6 个 `@RequestParam` 改为 `RoleDTO` 入参
|
||
|
|
- [ ] `RoleController.detail` 出参从 `RoleDetailVO` 改为 `RoleDTO`
|
||
|
|
- [ ] `RoleController.assignResources`(2 参数)保持 `@RequestParam`
|
||
|
|
- [ ] `RoleController.delete`(1 参数)保持 `@RequestParam`
|
||
|
|
- [ ] RoleController 不再 import `SysRole` 实体
|
||
|
|
- [ ] 测试:page 返回的 JSON 中不包含 `deleted`/`creatorId`/`updaterId`
|
||
|
|
- [ ] 测试:page 经 PageConverter,页大小超过上限被收敛
|
||
|
|
- [ ] 测试:saveOrUpdate 入参为 RoleDTO,提交 `createTime` 被 strip
|
||
|
|
- [ ] 测试:assignResources 保持 @RequestParam 不变
|