| 
					
				 | 
			
			
				@@ -63,7 +63,7 @@ public class AuthController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/token", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "验证token", httpMethod = "POST") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Response<MyDto> token(@RequestHeader("token") String token, HttpSession session, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Response<MyDto> token(@RequestHeader(value = "token", required = false) String token, HttpSession session, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         User user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (token == null || token.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             user = shiroHelp.getLoginUser(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -109,29 +109,33 @@ public class AuthController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         User user = (User) shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (user!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 已登录用户,绑定 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            usersService.Oauth(user, code, "wechat_pc"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user = usersService.Oauth(user, code, "wechat_pc", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            shiroHelp.getSession().login(shiroHelp.oauth(code, "wechat_pc")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            shiroHelp.getSession().login(shiroHelp.oauth(code, "wechat_pc", true)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user = shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        User entity = shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MyDto dto = processUser(entity, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MyDto dto = processUser(user, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ResponseHelp.success(dto); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 公众号登录注册:wechat(false) -> wechat(true) -> bind 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // pc登录注册:wechat_pc(true) -> bind 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //           login -> wechat_pc(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/wechat", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @ApiOperation(value = "直接微信二维码登录", httpMethod = "GET") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "直接微信公众号登录", httpMethod = "GET") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Response<MyDto> directWechat( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             @RequestParam(required = false, defaultValue = "") String code, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @RequestParam(required = false, defaultValue = "") boolean userInfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             HttpSession session, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         User user = (User) shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (user!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 已登录用户,绑定 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            usersService.Oauth(user, code, "wechat_native"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 第二次获取userInfo的,重新登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            shiroHelp.getSession().login(shiroHelp.oauth(code, "wechat_native", userInfo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            shiroHelp.getSession().login(shiroHelp.oauth(code, "wechat_native")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            shiroHelp.getSession().login(shiroHelp.oauth(code, "wechat_native", userInfo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user = shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        User entity = shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MyDto dto = processUser(entity, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MyDto dto = processUser(user, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ResponseHelp.success(dto); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -144,14 +148,14 @@ public class AuthController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/bind", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "绑定手机号", notes="第三方登录后可执行", httpMethod = "POST") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Response<Boolean> bind(@RequestBody @Validated UserValidMobileDto userValidMobileDto, HttpSession session, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Response<MyDto> bind(@RequestBody @Validated UserValidMobileDto userValidMobileDto, HttpSession session, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!smsHelp.verifyCode(userValidMobileDto.getArea(), userValidMobileDto.getMobile(), userValidMobileDto.getMobileVerifyCode(), session)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new ParameterException("验证码有误,请重新获取!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         User openUser = (User) shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(openUser == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new SystemException("第三方登录错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(openUser.getMobile().length() > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(openUser.getMobile() != null && openUser.getMobile().length() > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new SystemException("手机号已绑定"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try{ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -161,7 +165,11 @@ public class AuthController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }catch (ParameterException e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new ParameterException("该手机号绑定其他账号,请更换手机号码!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return ResponseHelp.success(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        shiroHelp.getSession().login(shiroHelp.user(userValidMobileDto.getArea()+":"+userValidMobileDto.getMobile(), "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        User entity = shiroHelp.getLoginUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MyDto dto = processUser(entity, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ResponseHelp.success(dto); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/valid/invite_code", method = RequestMethod.GET) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -204,6 +212,9 @@ public class AuthController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private MyDto processUser(User user, HttpServletRequest request){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user.getId() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user = usersService.get(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MyDto dto = Transform.convert(user, MyDto.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (user.getId() == null || user.getId() == 0) return dto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String ip = Tools.getClientIp(request); 
			 |