|
|
@ -66,6 +66,7 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
1、2、2、根据传参设备appId查询到绑定的账号与用户传递的账号一致,验证登录信息 |
|
|
|
1)验证登录信息,成功后返回用户信息,验证不成功返回错误信息(验证码、密码错误) |
|
|
|
*/ |
|
|
|
ResultBean<SysUserVo> rb = ResultBean.fireFail(); |
|
|
|
String userName = userQuery.getUserName(); |
|
|
|
String password = userQuery.getPassword(); |
|
|
|
String appId = userQuery.getAppId(); |
|
|
@ -74,80 +75,86 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
|
|
|
|
if (StringUtils.isBlank(userName)) return new ResultBean<SysUserVo>().fail().setMsg("用户名不能为空"); |
|
|
|
if (StringUtils.isBlank(appId)) return new ResultBean<SysUserVo>().fail().setMsg("appId不能为空"); |
|
|
|
if(type.equals("1")){ |
|
|
|
if (type.equals("1")) { |
|
|
|
if (StringUtils.isBlank(password)) return new ResultBean<SysUserVo>().fail().setMsg("密码不能为空"); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
if (StringUtils.isBlank(verifyCode)) return new ResultBean<SysUserVo>().fail().setMsg("验证码不能为空"); |
|
|
|
// 访问后清理key
|
|
|
|
} |
|
|
|
|
|
|
|
SysUser sysUser = sysUserService.selectByAppId(appId); |
|
|
|
if (null == sysUser){ // 未查询到绑定的账号
|
|
|
|
if (null == sysUser) { // 未查询到绑定的账号
|
|
|
|
sysUser = sysUserService.selectByUserNameApp(userName); |
|
|
|
if (null == sysUser) return new ResultBean<SysUserVo>().fail().setMsg("账号不存在"); |
|
|
|
if (sysUser == null) { |
|
|
|
sysUser = sysUserService.selectByMobile(userName); |
|
|
|
if (sysUser == null) { |
|
|
|
return rb.setMsg("账号不存在"); |
|
|
|
} |
|
|
|
} |
|
|
|
String appIdVal = sysUser.getAppId(); |
|
|
|
if(StringUtils.isBlank(appIdVal)){ // 设备值为空
|
|
|
|
if(type.equals("1")){ |
|
|
|
if (StringUtils.isBlank(appIdVal)) { // 设备值为空
|
|
|
|
if (type.equals("1")) { |
|
|
|
String md5 = Encodes.md5(password); |
|
|
|
if (md5.equals(sysUser.getPassword())) { |
|
|
|
sysUserService.updateAppId(sysUser.getSid(), appId); |
|
|
|
SysUserVo sysUserVo = sysUserService.selectUser(sysUser); |
|
|
|
// SysUserVo sysUserVo = sysUserService.selectUserOne(sysUser);
|
|
|
|
insertLoginLog(sysUser); |
|
|
|
return new ResultBean<SysUserVo>().success().setData(sysUserVo); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误"); |
|
|
|
} |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
String codeFromRedis = redisUtil.get("loginCode" + userName); |
|
|
|
if(StringUtils.isBlank(codeFromRedis)) return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送"); |
|
|
|
if(verifyCode.equals(codeFromRedis.substring(0, 4))){ |
|
|
|
if (StringUtils.isBlank(codeFromRedis)) |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送"); |
|
|
|
if (verifyCode.equals(codeFromRedis.substring(0, 4))) { |
|
|
|
sysUserService.updateAppId(sysUser.getSid(), appId); |
|
|
|
SysUserVo sysUserVo = sysUserService.selectUser(sysUser); |
|
|
|
redisUtil.remove("loginCode" + userName); |
|
|
|
insertLoginLog(sysUser); |
|
|
|
return new ResultBean<SysUserVo>().success().setData(sysUserVo); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取"); |
|
|
|
} |
|
|
|
} |
|
|
|
}else { // 设备值存在
|
|
|
|
} else { // 设备值存在
|
|
|
|
int res = insertSysExceptionLog("b", JSON.toJSON(userQuery).toString(), "当前账号已被其它设备绑定"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前账号已被其它设备绑定(错误码:"+res+")"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前账号已被其它设备绑定(错误码:" + res + ")"); |
|
|
|
} |
|
|
|
}else { // 查询到绑定的账号
|
|
|
|
if(userName.equals(sysUser.getUserName())){ // 设备appId一致,验证用户名
|
|
|
|
if(type.equals("1")){ |
|
|
|
} else { // 查询到绑定的账号
|
|
|
|
if (userName.equals(sysUser.getUserName()) || userName.equals(sysUser.getMobile())) { // 设备appId一致,验证用户名
|
|
|
|
if (type.equals("1")) { |
|
|
|
String md5 = Encodes.md5(password); |
|
|
|
if (md5.equals(sysUser.getPassword())) { |
|
|
|
SysUserVo sysUserVo = sysUserService.selectUser(sysUser); |
|
|
|
// SysUserVo sysUserVo = sysUserService.selectUserOne(sysUser);
|
|
|
|
insertLoginLog(sysUser); |
|
|
|
return new ResultBean<SysUserVo>().success().setData(sysUserVo); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误"); |
|
|
|
} |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
String codeFromRedis = redisUtil.get("loginCode" + userName); |
|
|
|
if(StringUtils.isBlank(codeFromRedis)) return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送"); |
|
|
|
if(verifyCode.equals(codeFromRedis.substring(0, 4))){ |
|
|
|
if (StringUtils.isBlank(codeFromRedis)) |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送"); |
|
|
|
if (verifyCode.equals(codeFromRedis.substring(0, 4))) { |
|
|
|
SysUserVo sysUserVo = sysUserService.selectUser(sysUser); |
|
|
|
redisUtil.remove("loginCode" + userName); |
|
|
|
insertLoginLog(sysUser); |
|
|
|
return new ResultBean<SysUserVo>().success().setData(sysUserVo); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取"); |
|
|
|
} |
|
|
|
} |
|
|
|
}else { // 用户名不一致
|
|
|
|
} else { // 用户名不一致
|
|
|
|
int res = insertSysExceptionLog("a", JSON.toJSON(userQuery).toString(), "当前设备已绑定其它账号"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前设备已绑定其它账号(错误码:"+res+")"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前设备已绑定其它账号(错误码:" + res + ")"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 插入登录日志 |
|
|
|
* |
|
|
|
* @param user |
|
|
|
*/ |
|
|
|
private void insertLoginLog(SysUser user) { |
|
|
@ -163,9 +170,10 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
|
|
|
|
/** |
|
|
|
* 手机发送短信验证码 |
|
|
|
* |
|
|
|
* @param mobile |
|
|
|
* @param type 1、登录2、修改密码3、找回密码 |
|
|
|
* @param appId 绑定手机的appid |
|
|
|
* @param type 1、登录2、修改密码3、找回密码 |
|
|
|
* @param appId 绑定手机的appid |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
@ -182,10 +190,10 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
// }
|
|
|
|
if (type.equals("2") || type.equals("3")) { |
|
|
|
SysUser sysUser = sysUserService.selectByUserNameApp(mobile); |
|
|
|
if(null == sysUser){ |
|
|
|
if (null == sysUser) { |
|
|
|
return new ResultBean().fail().setMsg("该手机号暂时还未注册,请先注册"); |
|
|
|
} |
|
|
|
}else { // 登录
|
|
|
|
} else { // 登录
|
|
|
|
SysUser sysUser = sysUserService.selectByAppId(appId); |
|
|
|
if (sysUser == null) { // 设备未绑定账号
|
|
|
|
sysUser = sysUserService.selectByUserNameApp(mobile); |
|
|
@ -197,15 +205,15 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
map.put("mobile", mobile); |
|
|
|
map.put("appId", appId); |
|
|
|
int res = insertSysExceptionLog("b", JSON.toJSON(map).toString(), "当前账号已被其它设备绑定"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前账号已被其它设备绑定(错误码:"+res+")"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前账号已被其它设备绑定(错误码:" + res + ")"); |
|
|
|
} |
|
|
|
}else { // 设备已绑定账号
|
|
|
|
} else { // 设备已绑定账号
|
|
|
|
if (!mobile.equals(sysUser.getMobile())) { |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
map.put("mobile", mobile); |
|
|
|
map.put("appId", appId); |
|
|
|
int res = insertSysExceptionLog("a", JSON.toJSON(map).toString(), "当前设备已绑定其它账号"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前设备已绑定其它账号(错误码:"+res+")"); |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("当前设备已绑定其它账号(错误码:" + res + ")"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -214,11 +222,12 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
|
|
|
|
/** |
|
|
|
* 插入错误的信息 |
|
|
|
* |
|
|
|
* @param operChar |
|
|
|
* @param operArg |
|
|
|
* @param remark |
|
|
|
*/ |
|
|
|
private int insertSysExceptionLog(String operChar, String operArg, String remark){ |
|
|
|
private int insertSysExceptionLog(String operChar, String operArg, String remark) { |
|
|
|
SysExceptionLog sysExceptionLog = new SysExceptionLog(); |
|
|
|
sysExceptionLog.setExceptionCode("M00001"); // 当前设备已绑定其它账号
|
|
|
|
sysExceptionLog.setExceptionType("移动端登陆"); |
|
|
@ -231,17 +240,17 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
|
|
|
|
@Override |
|
|
|
public ResultBean getMyInfo(String userSid) { |
|
|
|
if(StringUtils.isBlank(userSid)) return new ResultBean().fail().setMsg("userSid不能为空"); |
|
|
|
if (StringUtils.isBlank(userSid)) return new ResultBean().fail().setMsg("userSid不能为空"); |
|
|
|
SysUserVo sysUserVo = sysUserService.fetchBySidVo(userSid); |
|
|
|
if(null == sysUserVo) new ResultBean().fail().setMsg("信息错误"); |
|
|
|
if (null == sysUserVo) new ResultBean().fail().setMsg("信息错误"); |
|
|
|
AppMySysUserInfo userInfo = new AppMySysUserInfo(); |
|
|
|
String headImage = ""; |
|
|
|
if (StringUtils.isNotBlank(sysUserVo.getHeadImage())) { |
|
|
|
headImage = fileUploadComponent.getUrlPrefix() + sysUserVo.getHeadImage(); |
|
|
|
} |
|
|
|
userInfo.setHeadImage(headImage); |
|
|
|
userInfo.setName(StringUtils.isBlank(sysUserVo.getName())?"":sysUserVo.getName()); |
|
|
|
userInfo.setId("ID:"+sysUserVo.getId()); |
|
|
|
userInfo.setName(StringUtils.isBlank(sysUserVo.getName()) ? "" : sysUserVo.getName()); |
|
|
|
userInfo.setId("ID:" + sysUserVo.getId()); |
|
|
|
// Map<String, Object> map = new HashMap<>();
|
|
|
|
// map.put("headImage", StringUtils.isBlank(sysUserVo.getHeadImage())?"":sysUserVo.getHeadImage());
|
|
|
|
// map.put("name", StringUtils.isBlank(sysUserVo.getName())?"":sysUserVo.getName());
|
|
|
@ -250,38 +259,39 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ResultBean updatePassword(String userSid, String appId, String oldPassword, String newPassword,HttpServletRequest httpServletRequest) { |
|
|
|
public ResultBean updatePassword(String userSid, String appId, String oldPassword, String newPassword, HttpServletRequest httpServletRequest) { |
|
|
|
String token = httpServletRequest.getHeader("token"); |
|
|
|
SysUser user = sysUserService.fetchBySid(userSid); |
|
|
|
if (user == null) { |
|
|
|
return ResultBean.fireFail().setMsg("抱歉,用户不存在"); |
|
|
|
} |
|
|
|
if(!appId.equals(user.getAppId())){ |
|
|
|
if (!appId.equals(user.getAppId())) { |
|
|
|
return new ResultBean().fail().setMsg("当前设备与账号不匹配,请解绑后再试"); |
|
|
|
} |
|
|
|
return sysUserService.updatePasswordApp(user, oldPassword, newPassword,token); |
|
|
|
return sysUserService.updatePasswordApp(user, oldPassword, newPassword, token); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ResultBean checkResetPwdCode(String resetPwdCode, String mobile) { |
|
|
|
if (StringUtils.isBlank(resetPwdCode)) return new ResultBean().fail().setMsg("验证码不能为空"); |
|
|
|
String codeFromRedis = redisUtil.get("resetPwdCode" + mobile); |
|
|
|
if(StringUtils.isBlank(codeFromRedis)) return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送"); |
|
|
|
if(resetPwdCode.equals(codeFromRedis.substring(0, 4))){ |
|
|
|
if (StringUtils.isBlank(codeFromRedis)) return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送"); |
|
|
|
if (resetPwdCode.equals(codeFromRedis.substring(0, 4))) { |
|
|
|
redisUtil.remove("resetPwdCode" + mobile); |
|
|
|
return new ResultBean<SysUserVo>().success(); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public ResultBean resetPwdApp(String mobile, String newPwd,HttpServletRequest httpServletRequest) { |
|
|
|
public ResultBean resetPwdApp(String mobile, String newPwd, HttpServletRequest httpServletRequest) { |
|
|
|
String token = httpServletRequest.getHeader("token"); |
|
|
|
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) return new ResultBean().fail().setMsg("请输入正确的手机号"); |
|
|
|
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) |
|
|
|
return new ResultBean().fail().setMsg("请输入正确的手机号"); |
|
|
|
if (StringUtils.isBlank(newPwd)) return new ResultBean().fail().setMsg("请输入密码"); |
|
|
|
return sysUserService.resetPwdApp(mobile, newPwd,token); |
|
|
|
return sysUserService.resetPwdApp(mobile, newPwd, token); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -302,6 +312,7 @@ public class AppSysUserRest implements AppSysUserFeign { |
|
|
|
|
|
|
|
/** |
|
|
|
* 手机端根据token获取userSid |
|
|
|
* |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
|