SysLoginController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package com.takai.web.controller.system;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Set;
  6. import com.takai.common.utils.StringUtils;
  7. import com.takai.framework.web.service.JkLoginService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.*;
  10. import com.takai.common.constant.Constants;
  11. import com.takai.common.core.domain.AjaxResult;
  12. import com.takai.common.core.domain.entity.SysMenu;
  13. import com.takai.common.core.domain.entity.SysUser;
  14. import com.takai.common.core.domain.model.LoginBody;
  15. import com.takai.common.utils.SecurityUtils;
  16. import com.takai.framework.web.service.SysLoginService;
  17. import com.takai.framework.web.service.SysPermissionService;
  18. import com.takai.system.service.ISysMenuService;
  19. import javax.servlet.http.HttpServletRequest;
  20. /**
  21. * 登录验证
  22. *
  23. * @author takai
  24. */
  25. @RestController
  26. public class SysLoginController
  27. {
  28. @Autowired
  29. private SysLoginService loginService;
  30. @Autowired
  31. private JkLoginService jkLoginService;
  32. @Autowired
  33. private ISysMenuService menuService;
  34. @Autowired
  35. private SysPermissionService permissionService;
  36. /**
  37. * 登录方法
  38. *
  39. * @param loginBody 登录信息
  40. * @return 结果
  41. */
  42. @PostMapping("/login")
  43. public AjaxResult login(@RequestBody LoginBody loginBody)
  44. {
  45. AjaxResult ajax = AjaxResult.success();
  46. // 生成令牌
  47. // String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
  48. // loginBody.getUuid());
  49. // ajax.put(Constants.TOKEN, token);
  50. Map<String, Object> map = loginService.login(loginBody.getUserName(), loginBody.getPassword());
  51. ajax.put("data", map);
  52. return ajax;
  53. }
  54. /**
  55. * 建科用户登录方法
  56. *
  57. * @param loginBody 登录信息
  58. * @return 结果
  59. */
  60. @PostMapping("/jk_code_login")
  61. public AjaxResult jkLogin(@RequestBody LoginBody loginBody)
  62. {
  63. AjaxResult ajax = AjaxResult.success();
  64. Map<String, Object> map = jkLoginService.login(loginBody.getCode(),loginBody.getRedirectUrl());
  65. ajax.put("data", map);
  66. return ajax;
  67. }
  68. /**
  69. * 登录方法
  70. *
  71. * @param loginBody 登录信息
  72. * @return 结果
  73. */
  74. @PostMapping("/getToken")
  75. public AjaxResult getToken(@RequestBody LoginBody loginBody)
  76. {
  77. AjaxResult ajax = AjaxResult.success();
  78. // 生成令牌
  79. String token = loginService.getToken(loginBody.getUserName(), loginBody.getPassword());
  80. ajax.put("token", token);
  81. return ajax;
  82. }
  83. /**
  84. * 获取用户信息
  85. *
  86. * @return 用户信息
  87. */
  88. @GetMapping("/getInfo")
  89. public AjaxResult getInfo()
  90. {
  91. SysUser user = SecurityUtils.getLoginUser().getUser();
  92. // 角色集合
  93. Set<String> roles = permissionService.getRolePermission(user);
  94. // 权限集合
  95. Set<String> permissions = permissionService.getMenuPermission(user);
  96. AjaxResult ajax = AjaxResult.success();
  97. ajax.put("user", user);
  98. ajax.put("roles", roles);
  99. ajax.put("permissions", permissions);
  100. return ajax;
  101. }
  102. /**
  103. * 获取路由信息
  104. *
  105. * @return 路由信息
  106. */
  107. @GetMapping("/getRouters")
  108. public AjaxResult getRouters()
  109. {
  110. Long userId = SecurityUtils.getUserId();
  111. List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
  112. return AjaxResult.success(menuService.buildMenus(menus));
  113. }
  114. /**
  115. * token校验
  116. * @param token
  117. * @return
  118. */
  119. @GetMapping("/checkToken")
  120. public AjaxResult checkToken(@RequestHeader String token){
  121. boolean status = loginService.checkToken(token);
  122. if(status){
  123. AjaxResult ajax = AjaxResult.success();
  124. Map<String, Object> map = new HashMap();
  125. map.put("status", status);
  126. ajax.put("data", map);
  127. return ajax;
  128. }else{
  129. AjaxResult ajax = AjaxResult.errors("请求访问:/checkToken,认证失败,无法访问系统资源", null);
  130. return ajax;
  131. }
  132. }
  133. /**
  134. * 退出登录
  135. * @return
  136. */
  137. @PostMapping("/logout")
  138. public AjaxResult logout(){
  139. loginService.logout();
  140. return AjaxResult.success();
  141. }
  142. /**
  143. * 权限管理后台登录方法
  144. * @param loginBody
  145. * @return
  146. */
  147. @PostMapping("/admin/login")
  148. public AjaxResult adminLogin(@RequestBody LoginBody loginBody)
  149. {
  150. AjaxResult ajax = AjaxResult.success();
  151. // 生成令牌
  152. String token = loginService.login(loginBody.getUserName(), loginBody.getPassword(), loginBody.getCode(),
  153. loginBody.getUuid());
  154. ajax.put(Constants.TOKEN, token);
  155. return ajax;
  156. }
  157. /**
  158. * rag管理后台获取用户信息
  159. * @param userId
  160. * @return
  161. */
  162. @GetMapping("/deepseek/getInfo/{userId}")
  163. public AjaxResult getInfoByDeepSeek(@PathVariable("userId") String userId)
  164. {
  165. SysUser user = new SysUser();
  166. user.setUserId(Long.valueOf(userId));
  167. // 角色集合
  168. Set<String> roles = permissionService.getRolePermission(user);
  169. // 权限集合
  170. Set<String> permissions = permissionService.getMenuPermission(user);
  171. AjaxResult ajax = AjaxResult.success();
  172. ajax.put("user", user);
  173. ajax.put("roles", roles);
  174. ajax.put("permissions", permissions);
  175. return ajax;
  176. }
  177. }