UmsAdminController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.sf.admin.controller;
  2. import com.sf.admin.dto.CommonResult;
  3. import com.sf.admin.dto.req.AdminLoginReqDto;
  4. import com.sf.admin.dto.resp.AdminInfoRespDto;
  5. import com.sf.admin.dto.resp.AdminLoginRespDto;
  6. import com.sf.admin.dto.resp.UmsMenuRespDto;
  7. import com.sf.admin.entity.UmsAdmin;
  8. import com.sf.admin.entity.UmsDept;
  9. import com.sf.admin.entity.UmsMenu;
  10. import com.sf.admin.entity.UmsRole;
  11. import com.sf.admin.service.*;
  12. import lombok.RequiredArgsConstructor;
  13. import org.springframework.beans.BeanUtils;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. /**
  18. * <p>
  19. * 后台用户表 前端控制器
  20. * </p>
  21. *
  22. * @author baomidou
  23. * @since 2024-08-12
  24. */
  25. @RestController
  26. @RequiredArgsConstructor
  27. public class UmsAdminController {
  28. private final IUmsAdminService umsAdminService;
  29. private final IUmsDeptService umsDeptService;
  30. private final IUmsMenuService umsMenuService;
  31. private final IUmsAdminRoleRelationService adminRoleRelationService;
  32. private final IUmsRoleMenuRelationService roleMenuRelationService;
  33. // http://localhost:8013/ums/admin/list
  34. // @GetMapping("/ums/admin/list")
  35. // public List<UmsAdmin> list(){
  36. // return umsAdminService.list();
  37. // }
  38. @PostMapping("/admin/login")
  39. public CommonResult<AdminLoginRespDto> login(@RequestBody AdminLoginReqDto loginReqDto) {
  40. String logined = umsAdminService.login(loginReqDto);
  41. if (logined == null) {
  42. return CommonResult.failed("用户名或密码错误");
  43. }
  44. AdminLoginRespDto adminLoginRespDto = AdminLoginRespDto.builder()
  45. .token(logined).tokenHead("SFCC ").build();
  46. return CommonResult.success(adminLoginRespDto);
  47. }
  48. @GetMapping("/admin/info")
  49. public CommonResult<AdminInfoRespDto> getAdminInfo(@RequestHeader("Authorization") String token) {
  50. if (token == null) {
  51. return CommonResult.unauthorized(null);
  52. }
  53. // 获取用户id
  54. // token = "SFCC token_3"
  55. String id = token.substring(11);
  56. // 获取用户信息
  57. UmsAdmin umsAdmin = umsAdminService.getById(Long.parseLong(id));
  58. // 获取用户对应的部门信息
  59. // ums_admin表中的dept_id 对应 ums_dept表中的id
  60. UmsDept umsDept = umsDeptService.getById(umsAdmin.getDeptId());
  61. // 获取用户对应的角色信息
  62. List<UmsRole> roleList = adminRoleRelationService.getRolesByUserId(umsAdmin.getId());
  63. String[] roles = new String[roleList.size()];
  64. for (int i = 0; i < roleList.size(); i++) {
  65. roles[i] = roleList.get(i).getName();
  66. }
  67. // 获取角色所对应的菜单信息
  68. List<Long> roleIds = new ArrayList<>();
  69. for (UmsRole umsRole : roleList) {
  70. roleIds.add(umsRole.getId());
  71. }
  72. List<Long> menuIds = roleMenuRelationService.queryMenusByRoleId(roleIds);
  73. List<UmsMenuRespDto> menus = umsMenuService.getMenuInfoByIds(menuIds);
  74. // List<UmsMenu> menuList = umsMenuService.getMenuList(Long.parseLong(id));
  75. // List<UmsMenuRespDto> list = menuList.stream().map(umsMenu -> {
  76. // UmsMenuRespDto umsMenuRespDto = new UmsMenuRespDto();
  77. // BeanUtils.copyProperties(umsMenu, umsMenuRespDto);
  78. // return umsMenuRespDto;
  79. // }).toList();
  80. AdminInfoRespDto adminInfoRespDto = AdminInfoRespDto.builder()
  81. .username(umsAdmin.getUsername())
  82. .id(umsAdmin.getId())
  83. .code(umsAdmin.getCode())
  84. .exNum(umsAdmin.getExNum())
  85. .nickName(umsAdmin.getNickName())
  86. .headImg(umsAdmin.getHeadImg())
  87. .deptName(umsDept.getDeptName())
  88. .roles(roles)
  89. .menus(menus)
  90. .build();
  91. return CommonResult.success(adminInfoRespDto);
  92. }
  93. }