Browse Source

移动端-pc添加用户后,移动端登录

master
dimengzhe 3 years ago
parent
commit
4beb371961
  1. 22
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java
  2. 103
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/app/AppSysUserRest.java

22
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java

@ -4,14 +4,10 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysorganization.AppContactSysOrganizationVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.syspost.SysPost;
import com.yxt.anrui.portal.api.sysstaffinfo.*;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgDetailsVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgDto;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysstaffpost.SysStaffPost;
import com.yxt.anrui.portal.api.sysstaffpost.SysStaffPostDetailsVo;
import com.yxt.anrui.portal.api.sysstaffpost.SysStaffPostDto;
@ -23,6 +19,7 @@ import com.yxt.anrui.portal.biz.sysstaffpost.SysStaffPostService;
import com.yxt.anrui.portal.biz.sysuser.SysUserService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.Encodes;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.PinYinUtils;
import com.yxt.common.core.query.PagerQuery;
@ -186,7 +183,8 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
}
//查询员工的手机号是否重复
SysStaffinfo sysStaffinfo1 = baseMapper.selectByMobile(dto.getMobile());
if (sysStaffinfo1 != null) {
SysUser sysUser1 = sysUserService.selectByMobile(dto.getMobile());
if (sysStaffinfo1 != null || sysUser1 != null) {
return rb.setMsg("已存在手机号为" + dto.getMobile() + "的员工");
}
//查询是否存在该身份证号的员工
@ -275,16 +273,17 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
//增加员工的关联的部门信息
SysStaffOrg sysStaffOrg = new SysStaffOrg();
SysStaffOrgDto sysStaffOrgDto = dto.getSysStaffOrg();
if (StringUtils.isBlank(sysStaffOrgDto.getOrgName())){
if (StringUtils.isBlank(sysStaffOrgDto.getOrgName())) {
return rb.setMsg("所在部门不能为空");
}
sysStaffOrgDto.fillEntity(sysStaffOrg);
sysStaffOrg.setStaffSid(sysStaffinfo3.getSid());
sysStaffOrg.setManageType("3");
sysStaffOrgService.save(sysStaffOrg);
//增加员工的关联的岗位信息
SysStaffPost sysStaffPost = new SysStaffPost();
SysStaffPostDto sysStaffPostDto = dto.getSysStaffPost();
if (StringUtils.isBlank(sysStaffPostDto.getPostSid())){
if (StringUtils.isBlank(sysStaffPostDto.getPostSid())) {
return rb.setMsg("岗位不能为空");
}
save(sysStaffinfo3);
@ -293,6 +292,10 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
sysUser.setStaffSid(sysStaffinfo3.getSid());
sysUser.setUserName(jobNumber);
sysUser.setMobile(sysStaffinfo3.getMobile());
sysUser.setUserType(1);
String password = sysStaffinfo3.getMobile().substring(5, 11);
String md5 = Encodes.md5(password);
sysUser.setPassword(md5);
boolean isSave = sysUserService.save(sysUser);
sysStaffPostDto.fillEntity(sysStaffPost);
sysStaffPost.setStaffSid(sysStaffinfo3.getSid());
@ -348,7 +351,8 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
}
//查询员工的手机号是否重复
SysStaffinfo sysStaffinfo2 = baseMapper.selectByMobileAndSid(dto.getMobile(), sid);
if (sysStaffinfo2 != null) {
SysUser sysUser = sysUserService.selectByMobile(dto.getMobile());
if (sysStaffinfo2 != null || sysUser != null) {
return rb.setMsg("已存在手机号为" + dto.getMobile() + "的员工");
}
//查询是否存在该身份证号的员工
@ -505,7 +509,7 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
if (stringResultBean.getSuccess()) {
orgSid = stringResultBean.getData();
}
if(StringUtils.isNotBlank(orgSid)){
if (StringUtils.isNotBlank(orgSid)) {
list = baseMapper.selectStaffList(orgSid);
}
return rb.success().setData(list);

103
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/app/AppSysUserRest.java

@ -66,6 +66,7 @@ public class AppSysUserRest implements AppSysUserFeign {
122根据传参设备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

Loading…
Cancel
Save