CompanyLoginController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.fs.company.controller;
  2. import com.fs.common.constant.Constants;
  3. import com.fs.common.core.domain.AjaxResult;
  4. import com.fs.common.core.redis.RedisCache;
  5. import com.fs.common.utils.PatternUtils;
  6. import com.fs.common.utils.ServletUtils;
  7. import com.fs.company.domain.CompanyMenu;
  8. import com.fs.company.domain.CompanyUser;
  9. import com.fs.company.service.ICompanyMenuService;
  10. import com.fs.core.security.LoginBody;
  11. import com.fs.core.security.LoginUser;
  12. import com.fs.core.web.service.CompanyLoginService;
  13. import com.fs.core.web.service.CompanyPermissionService;
  14. import com.fs.core.web.service.TokenService;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.GetMapping;
  17. import org.springframework.web.bind.annotation.PostMapping;
  18. import org.springframework.web.bind.annotation.RequestBody;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.Set;
  23. /**
  24. * 登录验证
  25. *
  26. */
  27. @RestController
  28. public class CompanyLoginController
  29. {
  30. @Autowired
  31. private CompanyLoginService loginService;
  32. @Autowired
  33. private ICompanyMenuService menuService;
  34. @Autowired
  35. private CompanyPermissionService permissionService;
  36. @Autowired
  37. private TokenService tokenService;
  38. @Autowired
  39. private RedisCache redisCache;
  40. /**
  41. * 登录方法
  42. *
  43. * @param loginBody 登录信息
  44. * @return 结果
  45. */
  46. @PostMapping("/login")
  47. public AjaxResult login(@RequestBody LoginBody loginBody)
  48. {
  49. if (!PatternUtils.checkPassword(loginBody.getPassword())) {
  50. return AjaxResult.error("密码格式不正确,需包含字母、数字和特殊字符,长度为 8-20 位");
  51. }
  52. AjaxResult ajax = AjaxResult.success();
  53. // 生成令牌
  54. String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
  55. loginBody.getUuid());
  56. ajax.put(Constants.TOKEN, token);
  57. return ajax;
  58. }
  59. // @PostMapping("/loginByToken")
  60. // public AjaxResult loginByAdmin(@RequestBody LoginToken param)
  61. // {
  62. // Long userId=redisCache.getCacheObject("")
  63. //
  64. // AjaxResult ajax = AjaxResult.success();
  65. // // 生成令牌
  66. // String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
  67. // loginBody.getUuid());
  68. // ajax.put(Constants.TOKEN, token);
  69. // return ajax;
  70. // }
  71. /**
  72. * 获取用户信息
  73. *
  74. * @return 用户信息
  75. */
  76. @GetMapping("getInfo")
  77. public AjaxResult getInfo()
  78. {
  79. LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  80. CompanyUser user = loginUser.getUser();
  81. // 角色集合
  82. Set<String> roles = permissionService.getRolePermission(user);
  83. // 权限集合
  84. Set<String> permissions = permissionService.getMenuPermission(user);
  85. AjaxResult ajax = AjaxResult.success();
  86. ajax.put("user", user);
  87. ajax.put("roles", roles);
  88. ajax.put("permissions", permissions);
  89. return ajax;
  90. }
  91. /**
  92. * 获取路由信息
  93. *
  94. * @return 路由信息
  95. */
  96. @GetMapping("getRouters")
  97. public AjaxResult getRouters()
  98. {
  99. LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  100. Long companyId = loginUser.getCompany().getCompanyId();
  101. // 用户信息
  102. CompanyUser user = loginUser.getUser();
  103. List<CompanyMenu> menus = new ArrayList<>();
  104. if (companyId.equals(174L)){
  105. menus = menuService.selectMenuTreeByCompany(user.getUserId(), loginUser.getUser().isAdmin());
  106. }else {
  107. menus = menuService.selectMenuTreeByUserId(user.getUserId(), loginUser.getUser().isAdmin());
  108. }
  109. return AjaxResult.success(menuService.buildMenus(menus));
  110. }
  111. }