AdminSelectOptionsController.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package cc.uncarbon.module.adminapi.web.common;
  2. import cc.uncarbon.framework.web.model.response.ApiResult;
  3. import cc.uncarbon.module.adminapi.constant.AdminApiConstant;
  4. import cc.uncarbon.module.adminapi.model.response.AdminSelectOptionItemVO;
  5. import cc.uncarbon.module.adminapi.util.AdminStpUtil;
  6. import cc.uncarbon.module.sys.model.response.SysDeptBO;
  7. import cc.uncarbon.module.sys.model.response.SysRoleBO;
  8. import cc.uncarbon.module.sys.service.SysDeptService;
  9. import cc.uncarbon.module.sys.service.SysRoleService;
  10. import cn.dev33.satoken.annotation.SaCheckLogin;
  11. import io.swagger.v3.oas.annotations.tags.Tag;
  12. import io.swagger.v3.oas.annotations.Operation;
  13. import lombok.RequiredArgsConstructor;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.web.bind.annotation.GetMapping;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RestController;
  18. import java.util.List;
  19. // 约束:登录后才能使用 👇 后台管理对应的鉴权工具类
  20. @SaCheckLogin(type = AdminStpUtil.TYPE)
  21. @Tag(name = "后台管理-下拉框数据源接口")
  22. @RequestMapping(AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
  23. @RequiredArgsConstructor
  24. @RestController
  25. @Slf4j
  26. public class AdminSelectOptionsController {
  27. private final SysRoleService sysRoleService;
  28. private final SysDeptService sysDeptService;
  29. /*
  30. 这里统一存放所有用于后台管理的下拉框数据源接口
  31. 避免多人协作时,不知道原来是否已经有了,或者写在某个边边角角里,造成重复开发
  32. */
  33. @Operation(summary = "后台角色下拉框")
  34. @GetMapping(value = "/select-options/roles")
  35. public ApiResult<List<AdminSelectOptionItemVO>> roles() {
  36. return ApiResult.data(
  37. AdminSelectOptionItemVO.listOf(sysRoleService.adminSelectOptions(), SysRoleBO::getId, SysRoleBO::getTitle)
  38. );
  39. }
  40. @Operation(summary = "部门下拉框(前端负责转为树状数据)")
  41. @GetMapping(value = "/select-options/depts")
  42. public ApiResult<List<AdminSelectOptionItemVO>> depts() {
  43. return ApiResult.data(
  44. AdminSelectOptionItemVO.listOf(sysDeptService.adminSelectOptions(true), SysDeptBO::getId, SysDeptBO::getTitle, SysDeptBO::getParentId)
  45. );
  46. }
  47. }