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.
 
 
 
 
 

1.8 KiB

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 不变