|  | @@ -32,10 +32,7 @@ import org.jeecg.modules.system.entity.SysDepart;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.entity.SysUser;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.model.SysLoginModel;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.service.*;
 | 
	
		
			
				|  |  | -import org.jeecg.modules.system.util.AES;
 | 
	
		
			
				|  |  | -import org.jeecg.modules.system.util.RandImageUtil;
 | 
	
		
			
				|  |  | -import org.jeecg.modules.system.util.RestTemplateUtil;
 | 
	
		
			
				|  |  | -import org.jeecg.modules.system.util.TokenInfo;
 | 
	
		
			
				|  |  | +import org.jeecg.modules.system.util.*;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.vo.WeixinUser;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.vo.WeixinXCX;
 | 
	
		
			
				|  |  |  import org.springframework.beans.BeanUtils;
 | 
	
	
		
			
				|  | @@ -46,6 +43,7 @@ import javax.annotation.Resource;
 | 
	
		
			
				|  |  |  import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  |  import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  |  import javax.servlet.http.HttpSession;
 | 
	
		
			
				|  |  | +import java.io.IOException;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -87,9 +85,10 @@ public class LoginController {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@ApiOperation("登录接口")
 | 
	
		
			
				|  |  |  	@RequestMapping(value = "/login", method = RequestMethod.POST)
 | 
	
		
			
				|  |  | -	public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel){
 | 
	
		
			
				|  |  | +	public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel) throws IOException {
 | 
	
		
			
				|  |  |  		Result<JSONObject> result = new Result<JSONObject>();
 | 
	
		
			
				|  |  |  		String username = sysLoginModel.getUsername();
 | 
	
		
			
				|  |  | +		System.out.println("=================="+username+"=================");
 | 
	
		
			
				|  |  |  		String password = sysLoginModel.getPassword();
 | 
	
		
			
				|  |  |  		//update-begin--Author:scott  Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
 | 
	
		
			
				|  |  |  		//前端密码加密,后端进行密码解密
 | 
	
	
		
			
				|  | @@ -97,19 +96,19 @@ public class LoginController {
 | 
	
		
			
				|  |  |  		//update-begin--Author:scott  Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		//update-begin-author:taoyan date:20190828 for:校验验证码
 | 
	
		
			
				|  |  | -		String captcha = sysLoginModel.getCaptcha();
 | 
	
		
			
				|  |  | -		if(captcha==null){
 | 
	
		
			
				|  |  | -//            result.error500("验证码无效");
 | 
	
		
			
				|  |  | -//            return result;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		String lowerCaseCaptcha = captcha.toLowerCase();
 | 
	
		
			
				|  |  | -		String realKey = MD5Util.MD5Encode(lowerCaseCaptcha+sysLoginModel.getCheckKey(), "utf-8");
 | 
	
		
			
				|  |  | -		Object checkCode = redisUtil.get(realKey);
 | 
	
		
			
				|  |  | -		//当进入登录页时,有一定几率出现验证码错误 #1714
 | 
	
		
			
				|  |  | -		if(checkCode==null || !checkCode.toString().equals(lowerCaseCaptcha)) {
 | 
	
		
			
				|  |  | -//			result.error500("验证码错误");
 | 
	
		
			
				|  |  | -//			return result;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | +//		String captcha = sysLoginModel.getCaptcha();
 | 
	
		
			
				|  |  | +//		if(captcha==null){
 | 
	
		
			
				|  |  | +////            result.error500("验证码无效");
 | 
	
		
			
				|  |  | +////            return result;
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		String lowerCaseCaptcha = captcha.toLowerCase();
 | 
	
		
			
				|  |  | +//		String realKey = MD5Util.MD5Encode(lowerCaseCaptcha+sysLoginModel.getCheckKey(), "utf-8");
 | 
	
		
			
				|  |  | +//		Object checkCode = redisUtil.get(realKey);
 | 
	
		
			
				|  |  | +//		//当进入登录页时,有一定几率出现验证码错误 #1714
 | 
	
		
			
				|  |  | +//		if(checkCode==null || !checkCode.toString().equals(lowerCaseCaptcha)) {
 | 
	
		
			
				|  |  | +////			result.error500("验证码错误");
 | 
	
		
			
				|  |  | +////			return result;
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  |  		//update-end-author:taoyan date:20190828 for:校验验证码
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		//1. 校验用户是否有效
 | 
	
	
		
			
				|  | @@ -117,6 +116,13 @@ public class LoginController {
 | 
	
		
			
				|  |  |  		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
 | 
	
		
			
				|  |  |  		queryWrapper.eq(SysUser::getUsername,username);
 | 
	
		
			
				|  |  |  		SysUser sysUser = sysUserService.getOne(queryWrapper);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//		String auts = weixinUserService.auts(username,"2");
 | 
	
		
			
				|  |  | +//		System.out.println(auts);
 | 
	
		
			
				|  |  | +//		SysUser sysUser=null;
 | 
	
		
			
				|  |  | +//		if (auts!=null){
 | 
	
		
			
				|  |  | +//			sysUser = sysUserService.getById(auts);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  |  		//update-end-author:wangshuai date:20200601 for: 登录代码验证用户是否注销bug,if条件永远为false
 | 
	
		
			
				|  |  |  		result = sysUserService.checkUserIsEffective(sysUser);
 | 
	
		
			
				|  |  |  		if(!result.isSuccess()) {
 | 
	
	
		
			
				|  | @@ -384,7 +390,7 @@ public class LoginController {
 | 
	
		
			
				|  |  |  		String token = JwtUtil.sign(username, syspassword);
 | 
	
		
			
				|  |  |  		// 设置token缓存有效时间
 | 
	
		
			
				|  |  |  		redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
 | 
	
		
			
				|  |  | -		redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
 | 
	
		
			
				|  |  | +		//redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		// 获取用户部门信息
 | 
	
		
			
				|  |  |  		JSONObject obj = new JSONObject();
 | 
	
	
		
			
				|  | @@ -460,7 +466,7 @@ public class LoginController {
 | 
	
		
			
				|  |  |  	public Result<JSONObject> mLogins(String code, HttpSession session,HttpServletRequest request) throws Exception {
 | 
	
		
			
				|  |  |  		Result<JSONObject> result = new Result<JSONObject>();
 | 
	
		
			
				|  |  |  		System.out.println("============code= "+code+"=============");
 | 
	
		
			
				|  |  | -		String auts = weixinUserService.auts(code);
 | 
	
		
			
				|  |  | +		String auts = weixinUserService.auts(code,"1");
 | 
	
		
			
				|  |  |  		System.out.println(auts);
 | 
	
		
			
				|  |  |  		SysUser byId=null;
 | 
	
		
			
				|  |  |  		if (auts!=null){
 | 
	
	
		
			
				|  | @@ -502,74 +508,27 @@ public class LoginController {
 | 
	
		
			
				|  |  |  	public Result<JSONObject> mLogin(@RequestBody SysLoginModel sysLoginModel, HttpSession session,HttpServletRequest request) throws Exception {
 | 
	
		
			
				|  |  |  		Result<JSONObject> result = new Result<JSONObject>();
 | 
	
		
			
				|  |  |  		String username = sysLoginModel.getUsername();
 | 
	
		
			
				|  |  | -		System.out.println("============code= "+username+"=============");
 | 
	
		
			
				|  |  | -		String auts = weixinUserService.auts(username);
 | 
	
		
			
				|  |  | -		System.out.println(auts);
 | 
	
		
			
				|  |  | -		SysUser byId=null;
 | 
	
		
			
				|  |  | -		if (auts!=null){
 | 
	
		
			
				|  |  | -			byId = sysUserService.getById(auts);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -//		//1. 校验用户是否有效
 | 
	
		
			
				|  |  | -		result = sysUserService.checkUserIsEffective(byId);
 | 
	
		
			
				|  |  | -		if(!result.isSuccess()) {
 | 
	
		
			
				|  |  | -			return result;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		String userpassword = PasswordUtil.encrypt(byId.getUsername(), byId.getPassword(), byId.getSalt());
 | 
	
		
			
				|  |  | -		JSONObject obj = new JSONObject();
 | 
	
		
			
				|  |  | -//		//用户登录信息
 | 
	
		
			
				|  |  | -		obj.put("userInfo", byId);
 | 
	
		
			
				|  |  | -//
 | 
	
		
			
				|  |  | -//		// 生成token
 | 
	
		
			
				|  |  | -		String token = JwtUtil.sign(byId.getUsername(), userpassword);
 | 
	
		
			
				|  |  | -//		// 设置超时时间
 | 
	
		
			
				|  |  | -		redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
 | 
	
		
			
				|  |  | -		//token 信息
 | 
	
		
			
				|  |  | -		obj.put("token", token);
 | 
	
		
			
				|  |  | -		obj.put("sessionId",session.getId());
 | 
	
		
			
				|  |  | -		result.setResult(obj);
 | 
	
		
			
				|  |  | -		result.setSuccess(true);
 | 
	
		
			
				|  |  | -		result.setCode(200);
 | 
	
		
			
				|  |  | -		Map<String,Object>map=new HashMap<>();
 | 
	
		
			
				|  |  | -		List<TokenInfo>list=new ArrayList<>();
 | 
	
		
			
				|  |  | -		TokenInfo tokenInfo=new TokenInfo();
 | 
	
		
			
				|  |  | -//		String password = sysLoginModel.getPassword();
 | 
	
		
			
				|  |  | -		//1. 校验用户是否有效
 | 
	
		
			
				|  |  | -//		SysUser sysUser = sysUserService.getUserByName(username);
 | 
	
		
			
				|  |  | -//		result = sysUserService.checkUserIsEffective(sysUser);
 | 
	
		
			
				|  |  | -//		if(!result.isSuccess()) {
 | 
	
		
			
				|  |  | -//			return result;
 | 
	
		
			
				|  |  | +//		System.out.println("============code= "+username+"=============");
 | 
	
		
			
				|  |  | +//		String auts = weixinUserService.auts(username,"1");
 | 
	
		
			
				|  |  | +//		System.out.println(auts);
 | 
	
		
			
				|  |  | +//		SysUser byId=null;
 | 
	
		
			
				|  |  | +//		if (auts!=null){
 | 
	
		
			
				|  |  | +//			byId = sysUserService.getById(auts);
 | 
	
		
			
				|  |  |  //		}
 | 
	
		
			
				|  |  | -//
 | 
	
		
			
				|  |  | -//		//2. 校验用户名或密码是否正确
 | 
	
		
			
				|  |  | -//		String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
 | 
	
		
			
				|  |  | -//		String syspassword = sysUser.getPassword();
 | 
	
		
			
				|  |  | -//		if (!syspassword.equals(userpassword)) {
 | 
	
		
			
				|  |  | -//			result.error500("用户名或密码错误");
 | 
	
		
			
				|  |  | +////		//1. 校验用户是否有效
 | 
	
		
			
				|  |  | +//		result = sysUserService.checkUserIsEffective(byId);
 | 
	
		
			
				|  |  | +//		if(!result.isSuccess()) {
 | 
	
		
			
				|  |  |  //			return result;
 | 
	
		
			
				|  |  |  //		}
 | 
	
		
			
				|  |  | -//
 | 
	
		
			
				|  |  | -//		String orgCode = sysUser.getOrgCode();
 | 
	
		
			
				|  |  | -//		if(oConvertUtils.isEmpty(orgCode)) {
 | 
	
		
			
				|  |  | -//			//如果当前用户无选择部门 查看部门关联信息
 | 
	
		
			
				|  |  | -//			List<SysDepart> departs = sysDepartService.queryUserDeparts(sysUser.getId());
 | 
	
		
			
				|  |  | -//			if (departs == null || departs.size() == 0) {
 | 
	
		
			
				|  |  | -//				result.error500("用户暂未归属部门,不可登录!");
 | 
	
		
			
				|  |  | -//				return result;
 | 
	
		
			
				|  |  | -//			}
 | 
	
		
			
				|  |  | -//			orgCode = departs.get(0).getOrgCode();
 | 
	
		
			
				|  |  | -//			sysUser.setOrgCode(orgCode);
 | 
	
		
			
				|  |  | -//			this.sysUserService.updateUserDepart(username, orgCode);
 | 
	
		
			
				|  |  | -//		}
 | 
	
		
			
				|  |  | +//		String userpassword = PasswordUtil.encrypt(byId.getUsername(), byId.getPassword(), byId.getSalt());
 | 
	
		
			
				|  |  |  //		JSONObject obj = new JSONObject();
 | 
	
		
			
				|  |  | -//		//用户登录信息
 | 
	
		
			
				|  |  | -//		obj.put("userInfo", sysUser);
 | 
	
		
			
				|  |  | -//
 | 
	
		
			
				|  |  | -//		// 生成token
 | 
	
		
			
				|  |  | -//		String token = JwtUtil.sign(username, syspassword);
 | 
	
		
			
				|  |  | -//		// 设置超时时间
 | 
	
		
			
				|  |  | +////		//用户登录信息
 | 
	
		
			
				|  |  | +//		obj.put("userInfo", byId);
 | 
	
		
			
				|  |  | +////
 | 
	
		
			
				|  |  | +////		// 生成token
 | 
	
		
			
				|  |  | +//		String token = JwtUtil.sign(byId.getUsername(), userpassword);
 | 
	
		
			
				|  |  | +////		// 设置超时时间
 | 
	
		
			
				|  |  |  //		redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
 | 
	
		
			
				|  |  | -//		redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
 | 
	
		
			
				|  |  | -//
 | 
	
		
			
				|  |  |  //		//token 信息
 | 
	
		
			
				|  |  |  //		obj.put("token", token);
 | 
	
		
			
				|  |  |  //		obj.put("sessionId",session.getId());
 | 
	
	
		
			
				|  | @@ -579,7 +538,54 @@ public class LoginController {
 | 
	
		
			
				|  |  |  //		Map<String,Object>map=new HashMap<>();
 | 
	
		
			
				|  |  |  //		List<TokenInfo>list=new ArrayList<>();
 | 
	
		
			
				|  |  |  //		TokenInfo tokenInfo=new TokenInfo();
 | 
	
		
			
				|  |  | -//		baseCommonService.addLog("用户名: " + username + ",登录成功[移动端]!", CommonConstant.LOG_TYPE_1, null);
 | 
	
		
			
				|  |  | +		String password = sysLoginModel.getPassword();
 | 
	
		
			
				|  |  | +		//1. 校验用户是否有效
 | 
	
		
			
				|  |  | +		SysUser sysUser = sysUserService.getUserByName(username);
 | 
	
		
			
				|  |  | +		result = sysUserService.checkUserIsEffective(sysUser);
 | 
	
		
			
				|  |  | +		if(!result.isSuccess()) {
 | 
	
		
			
				|  |  | +			return result;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		//2. 校验用户名或密码是否正确
 | 
	
		
			
				|  |  | +		String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
 | 
	
		
			
				|  |  | +		String syspassword = sysUser.getPassword();
 | 
	
		
			
				|  |  | +		if (!syspassword.equals(userpassword)) {
 | 
	
		
			
				|  |  | +			result.error500("用户名或密码错误");
 | 
	
		
			
				|  |  | +			return result;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		String orgCode = sysUser.getOrgCode();
 | 
	
		
			
				|  |  | +		if(oConvertUtils.isEmpty(orgCode)) {
 | 
	
		
			
				|  |  | +			//如果当前用户无选择部门 查看部门关联信息
 | 
	
		
			
				|  |  | +			List<SysDepart> departs = sysDepartService.queryUserDeparts(sysUser.getId());
 | 
	
		
			
				|  |  | +			if (departs == null || departs.size() == 0) {
 | 
	
		
			
				|  |  | +				result.error500("用户暂未归属部门,不可登录!");
 | 
	
		
			
				|  |  | +				return result;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			orgCode = departs.get(0).getOrgCode();
 | 
	
		
			
				|  |  | +			sysUser.setOrgCode(orgCode);
 | 
	
		
			
				|  |  | +			this.sysUserService.updateUserDepart(username, orgCode);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		JSONObject obj = new JSONObject();
 | 
	
		
			
				|  |  | +		//用户登录信息
 | 
	
		
			
				|  |  | +		obj.put("userInfo", sysUser);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 生成token
 | 
	
		
			
				|  |  | +		String token = JwtUtil.sign(username, syspassword);
 | 
	
		
			
				|  |  | +		// 设置超时时间
 | 
	
		
			
				|  |  | +		redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
 | 
	
		
			
				|  |  | +		redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		//token 信息
 | 
	
		
			
				|  |  | +		obj.put("token", token);
 | 
	
		
			
				|  |  | +		obj.put("sessionId",session.getId());
 | 
	
		
			
				|  |  | +		result.setResult(obj);
 | 
	
		
			
				|  |  | +		result.setSuccess(true);
 | 
	
		
			
				|  |  | +		result.setCode(200);
 | 
	
		
			
				|  |  | +		Map<String,Object>map=new HashMap<>();
 | 
	
		
			
				|  |  | +		List<TokenInfo>list=new ArrayList<>();
 | 
	
		
			
				|  |  | +		TokenInfo tokenInfo=new TokenInfo();
 | 
	
		
			
				|  |  | +		baseCommonService.addLog("用户名: " + username + ",登录成功[移动端]!", CommonConstant.LOG_TYPE_1, null);
 | 
	
		
			
				|  |  |  		return result;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |