| 
					
				 | 
			
			
				@@ -4,6 +4,7 @@ import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Set; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.xzl.web.service.UserPortraitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.dingtalk.api.response.OapiSnsGetuserinfoBycodeResponse; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -26,123 +27,113 @@ import com.xzl.system.service.ISysMenuService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 登录验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @author xzl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |