|
@@ -4,6 +4,7 @@ import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
|
import com.xzl.web.service.UserPortraitService;
|
|
import com.xzl.web.service.UserPortraitService;
|
|
|
|
+
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
import com.dingtalk.api.response.OapiSnsGetuserinfoBycodeResponse;
|
|
import com.dingtalk.api.response.OapiSnsGetuserinfoBycodeResponse;
|
|
@@ -26,123 +27,113 @@ import com.xzl.system.service.ISysMenuService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 登录验证
|
|
* 登录验证
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @author xzl
|
|
* @author xzl
|
|
*/
|
|
*/
|
|
@RestController
|
|
@RestController
|
|
-public class SysLoginController
|
|
|
|
-{
|
|
|
|
- @Autowired
|
|
|
|
- private SysLoginService loginService;
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
- private ISysMenuService menuService;
|
|
|
|
|
|
+public class SysLoginController {
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysLoginService loginService;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private SysPermissionService permissionService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISysMenuService menuService;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private UserPortraitMapper userPortraitMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysPermissionService permissionService;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private UserPortraitService userPortraitService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private UserPortraitMapper userPortraitMapper;
|
|
|
|
|
|
- /**
|
|
|
|
- * 登录方法
|
|
|
|
- *
|
|
|
|
- * @param loginBody 登录信息
|
|
|
|
- * @return 结果
|
|
|
|
- */
|
|
|
|
- @PostMapping("/login")
|
|
|
|
- public AjaxResult login(@RequestBody LoginBody loginBody)
|
|
|
|
- {
|
|
|
|
- AjaxResult ajax = AjaxResult.success();
|
|
|
|
- // 生成令牌
|
|
|
|
- String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
|
|
|
|
- loginBody.getUuid());
|
|
|
|
- ajax.put(Constants.TOKEN, token);
|
|
|
|
- // 登录NLP系统, 能执行到这一步,表示登录成功
|
|
|
|
- ajax.put("NLPAuthData", userPortraitService.loginNLP(loginBody));
|
|
|
|
- return ajax;
|
|
|
|
- }
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private UserPortraitService userPortraitService;
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 登录方法
|
|
|
|
+ *
|
|
|
|
+ * @param loginBody 登录信息
|
|
|
|
+ * @return 结果
|
|
|
|
+ */
|
|
|
|
+ @PostMapping("/login")
|
|
|
|
+ public AjaxResult login(@RequestBody LoginBody loginBody) {
|
|
|
|
+ AjaxResult ajax = AjaxResult.success();
|
|
|
|
+ // 生成令牌
|
|
|
|
+ String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
|
|
|
|
+ loginBody.getUuid());
|
|
|
|
+ ajax.put(Constants.TOKEN, token);
|
|
|
|
+ // 登录NLP系统, 能执行到这一步,表示登录成功
|
|
|
|
+ ajax.put("NLPAuthData", userPortraitService.loginNLP(loginBody.getUsername()));
|
|
|
|
+ return ajax;
|
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
|
- * 钉钉登录
|
|
|
|
- *
|
|
|
|
- * @param code 钉钉id
|
|
|
|
- * @return 结果
|
|
|
|
- */
|
|
|
|
- @PostMapping("/ddLogin")
|
|
|
|
- public Map<String, String> ddLogin(String code) {
|
|
|
|
- Map<String, String> result = new HashMap<>();
|
|
|
|
- Map<String, String> map = new HashMap<>();
|
|
|
|
- try {
|
|
|
|
- OapiSnsGetuserinfoBycodeResponse ddlogin = DingTalkUtils.ddLogin(code);
|
|
|
|
- if (ddlogin == null) {
|
|
|
|
- result.put("status","error");
|
|
|
|
- result.put("msg","扫码异常,请重新扫码");
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
- if (ddlogin.getUserInfo() == null) {
|
|
|
|
- result.put("status","error");
|
|
|
|
- result.put("msg","不是内部员工");
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
- String unionId = ddlogin.getUserInfo().getUnionid();
|
|
|
|
- SysUser user=userPortraitMapper.getUserByDingUnionId(unionId);
|
|
|
|
- if(user==null||user.getUserName().isEmpty()){
|
|
|
|
- //获取ddID
|
|
|
|
- String ID = DingTalkUtils.getUserInfo(unionId).getUserid();
|
|
|
|
- user=userPortraitMapper.getUserByDingUsername(ID);
|
|
|
|
- if(user==null||user.getUserName().isEmpty()){
|
|
|
|
- result.put("status","error");
|
|
|
|
- result.put("msg","用户不存在");
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
|
|
|
|
- }
|
|
|
|
- // 证明取到user信息了, 调用模拟登录
|
|
|
|
- // 生成令牌
|
|
|
|
- String token = loginService.login(user);
|
|
|
|
- result.put("status","success");
|
|
|
|
- result.put("msg",token);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- throw new RuntimeException(e);
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 钉钉登录
|
|
|
|
+ *
|
|
|
|
+ * @param code 钉钉id
|
|
|
|
+ * @return 结果
|
|
|
|
+ */
|
|
|
|
+ @PostMapping("/ddLogin")
|
|
|
|
+ public AjaxResult ddLogin(String code) {
|
|
|
|
+ AjaxResult ajax = AjaxResult.success();
|
|
|
|
+ try {
|
|
|
|
+ OapiSnsGetuserinfoBycodeResponse ddlogin = DingTalkUtils.ddLogin(code);
|
|
|
|
+ if (ddlogin == null) {
|
|
|
|
+ return AjaxResult.success("扫码异常,请重新扫码");
|
|
|
|
+ }
|
|
|
|
+ if (ddlogin.getUserInfo() == null) {
|
|
|
|
+ return AjaxResult.success("不是内部员工");
|
|
|
|
+ }
|
|
|
|
+ String unionId = ddlogin.getUserInfo().getUnionid();
|
|
|
|
+ SysUser user = userPortraitMapper.getUserByDingUnionId(unionId);
|
|
|
|
+ if (user == null || user.getUserName().isEmpty()) {
|
|
|
|
+ //获取ddID
|
|
|
|
+ String ID = DingTalkUtils.getUserInfo(unionId).getUserid();
|
|
|
|
+ user = userPortraitMapper.getUserByDingUsername(ID);
|
|
|
|
+ if (user == null || user.getUserName().isEmpty()) {
|
|
|
|
+ return AjaxResult.success("用户不存在");
|
|
}
|
|
}
|
|
- return result;
|
|
|
|
|
|
+ }
|
|
|
|
+ // 证明取到user信息了, 调用模拟登录
|
|
|
|
+ // 生成令牌
|
|
|
|
+ String token = loginService.login(user);
|
|
|
|
+ ajax.put(Constants.TOKEN, token);
|
|
|
|
+ // 登录NLP系统, 能执行到这一步,表示登录成功
|
|
|
|
+ ajax.put("NLPAuthData", userPortraitService.loginNLP(user.getUserName()));
|
|
|
|
+ ajax.put("success",1);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ return AjaxResult.success(e.getMessage());
|
|
}
|
|
}
|
|
|
|
+ return ajax;
|
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
|
- * 获取用户信息
|
|
|
|
- *
|
|
|
|
- * @return 用户信息
|
|
|
|
- */
|
|
|
|
- @GetMapping("getInfo")
|
|
|
|
- public AjaxResult getInfo()
|
|
|
|
- {
|
|
|
|
- SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
|
|
- // 角色集合
|
|
|
|
- Set<String> roles = permissionService.getRolePermission(user);
|
|
|
|
- // 权限集合
|
|
|
|
- Set<String> permissions = permissionService.getMenuPermission(user);
|
|
|
|
- AjaxResult ajax = AjaxResult.success();
|
|
|
|
- ajax.put("user", user);
|
|
|
|
- ajax.put("roles", roles);
|
|
|
|
- ajax.put("permissions", permissions);
|
|
|
|
- return ajax;
|
|
|
|
- }
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取用户信息
|
|
|
|
+ *
|
|
|
|
+ * @return 用户信息
|
|
|
|
+ */
|
|
|
|
+ @GetMapping("getInfo")
|
|
|
|
+ public AjaxResult getInfo() {
|
|
|
|
+ SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
|
|
+ // 角色集合
|
|
|
|
+ Set<String> roles = permissionService.getRolePermission(user);
|
|
|
|
+ // 权限集合
|
|
|
|
+ Set<String> permissions = permissionService.getMenuPermission(user);
|
|
|
|
+ AjaxResult ajax = AjaxResult.success();
|
|
|
|
+ ajax.put("user", user);
|
|
|
|
+ ajax.put("roles", roles);
|
|
|
|
+ ajax.put("permissions", permissions);
|
|
|
|
+ return ajax;
|
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
|
- * 获取路由信息
|
|
|
|
- *
|
|
|
|
- * @return 路由信息
|
|
|
|
- */
|
|
|
|
- @GetMapping("getRouters")
|
|
|
|
- public AjaxResult getRouters()
|
|
|
|
- {
|
|
|
|
- Long userId = SecurityUtils.getUserId();
|
|
|
|
- List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
|
|
|
- return AjaxResult.success(menuService.buildMenus(menus));
|
|
|
|
- }
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取路由信息
|
|
|
|
+ *
|
|
|
|
+ * @return 路由信息
|
|
|
|
+ */
|
|
|
|
+ @GetMapping("getRouters")
|
|
|
|
+ public AjaxResult getRouters() {
|
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
|
+ List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
|
|
|
+ return AjaxResult.success(menuService.buildMenus(menus));
|
|
|
|
+ }
|
|
}
|
|
}
|