From 54cc71c746ce1a4f87124063ad86bfc634cf8ea4 Mon Sep 17 00:00:00 2001 From: 侯瑞军 <411269194@kidgrow.com> Date: Fri, 05 Jun 2020 10:33:42 +0800 Subject: [PATCH] 1.新增和修改接口: (1)用户登录后返回信息接口 (2)用户注册 (3)诊断模版 (4)重置密码 修改密码 (5)设为超管 2.增加生成指定长度随机数common --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java | 141 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 127 insertions(+), 14 deletions(-) diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java index d27fdad..1eefc21 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java @@ -15,14 +15,12 @@ import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.sms.feign.SmsChuangLanService; import com.kidgrow.sms.model.ConstantSMS; +import com.kidgrow.usercenter.mapper.SysDoctorMapper; import com.kidgrow.usercenter.mapper.SysRoleMenuMapper; import com.kidgrow.usercenter.mapper.SysUserMapper; import com.kidgrow.usercenter.model.SysRoleUser; import com.kidgrow.usercenter.model.SysUserExcel; -import com.kidgrow.usercenter.service.ISysOrganizationService; -import com.kidgrow.usercenter.service.ISysRoleUserService; -import com.kidgrow.usercenter.service.ISysUserOrgService; -import com.kidgrow.usercenter.service.ISysUserService; +import com.kidgrow.usercenter.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.ObjectUtils; @@ -69,10 +67,10 @@ private RedisUtils redisUtils; @Autowired private SmsChuangLanService smsChuangLanService; - @Autowired private DistributedLock lock; - + @Autowired + private SysDoctorMapper sysDoctorMapper; @Override public LoginAppUser findByUsername(String username) { @@ -92,10 +90,16 @@ return getLoginAppUser(sysUser); } + /** + * + * 获取登录用户的一系列信息 hrj 06-04修改 + * @param sysUser + * @return + */ @Override public LoginAppUser getLoginAppUser(SysUser sysUser) { + LoginAppUser loginAppUser = new LoginAppUser(); if (sysUser != null) { - LoginAppUser loginAppUser = new LoginAppUser(); BeanUtils.copyProperties(sysUser, loginAppUser); //获取用户所属组织机构列表 List<SysOrganization> sysOrganizations = organizationService.findListByUserId(sysUser.getId()); @@ -115,10 +119,17 @@ loginAppUser.setPermissions(permissions); } } - - return loginAppUser; + //是否医院管理员 + com.kidgrow.usercenter.model.SysDoctor sysDoctor=findDoctorByUserId(sysUser.getId()); + if (sysDoctor.getIsAdminUser() != null) { + sysUser.setHAdminUser(sysDoctor.getIsAdminUser()); + } + //医院信息 只有H端要返回的信息 + if (sysUser.getTenantId() == CommonConstant.H_TENANT) { + sysUser.setDoctorUserAllVO(baseMapper.findDoctorUserAllData(sysUser.getId())); + } } - return null; + return loginAppUser; } @@ -194,21 +205,98 @@ @Transactional @Override - public ResultBody updatePassword(Long id, String oldPassword, String newPassword) { + public ResultBody updatePassword(Long id, String oldPassword, String newPassword,Boolean isdefault) { SysUser sysUser = baseMapper.selectById(id); if (StrUtil.isNotBlank(oldPassword)) { if (!passwordEncoder.matches(oldPassword, sysUser.getPassword())) { - return ResultBody.failed("旧密码错误"); + return ResultBody.failed("旧密码错误!"); } } if (StrUtil.isBlank(newPassword)) { - newPassword = CommonConstant.DEF_USER_PASSWORD; + newPassword =com.kidgrow.common.utils.RandomValueUtils.getRandom(6); } SysUser user = new SysUser(); user.setId(id); user.setPassword(passwordEncoder.encode(newPassword)); + if (isdefault) { + user.setDefaultAuth(true); + } baseMapper.updateById(user); - return ResultBody.ok().msg("修改成功"); + if (isdefault){ + return ResultBody.ok().msg("密码重置成功!").data(newPassword); + } + else{ + return ResultBody.ok().msg("密码修改成功!").data(true); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ResultBody updateUserTel(Map<String, Object> params) { + Long id = MapUtils.getLong(params, "id"); + String oldTel = MapUtils.getString(params, "oldTel"); + String newTel = MapUtils.getString(params, "newTel"); + String authCode = MapUtils.getString(params, "authCode"); + String userPassword = MapUtils.getString(params, "userPassword"); + + if (id > 0 && StringUtils.isNotBlank(oldTel)&& StringUtils.isNotBlank(newTel) && StringUtils.isNotBlank(authCode) && StringUtils.isNotBlank(userPassword)) { + //检查验证码 + Object hget = redisUtils.hget(ConstantSMS.PHONE_SMS, newTel); + if (hget != null) { + JSONObject redisJson = JSON.parseObject(JSON.toJSONString(hget)); + Object verificationCodeObject = redisJson.get("verificationCode"); + //核对验证码 + if (authCode.equals(verificationCodeObject)) { + //验证旧手机号和密码 + SysUser sysUser = baseMapper.selectById(id); + if (passwordEncoder.matches(userPassword, sysUser.getPassword()) && sysUser.getMobile().equals((oldTel))) { + Object date = redisJson.get("endTime"); + long time = DateUtils.parseDate(date.toString()).getTime(); + long timeNow = new Date().getTime(); + if (timeNow <= time) { + //查询手机号是否已经存在 + Map<String, Object> selectMap = new HashMap<>(); + selectMap.put("mobile", newTel); + List<SysUser> sysUsersList = baseMapper.selectByMap(selectMap); + if (sysUsersList.size() > 0) { + return ResultBody.failed("该手机号已经存在!"); + } else { + //验证通过,修改手机号 + SysUser user = new SysUser(); + user.setId(id); + user.setMobile(newTel); + //修改doctor表 + com.kidgrow.usercenter.model.SysDoctor sysDoctorModel= findDoctorByUserId(user.getId()); + com.kidgrow.usercenter.model.SysDoctor newsysDoctorModel= new com.kidgrow.usercenter.model.SysDoctor(); + if (sysDoctorModel!=null) { + //理论上只有一个,如果有多个 只取第一个 + newsysDoctorModel.setId(sysDoctorModel.getId()); + newsysDoctorModel.setDoctorTel(newTel); + sysDoctorMapper.updateById(newsysDoctorModel); + } + + if (baseMapper.updateById(user) > 0) { + return ResultBody.ok().msg("手机号修改成功!"); + } else { + return ResultBody.failed("手机号修改失败!"); + } + } + } else { + return ResultBody.failed("手机验证码已过期!"); + } + } else { + return ResultBody.failed("用户信息验证失败,请提供正确的手机号和密码!"); + } + } else { + return ResultBody.failed("手机验证码有误!"); + } + } else { + //redis获取失败 + return ResultBody.failed("请重新获取验证码!"); + } + } else { + return ResultBody.failed("必须参数有误!"); + } } @Override @@ -487,4 +575,29 @@ List<SysUser> list = baseMapper.findAppointUsers(type); return ResultBody.ok().data(list); } + + /** + * 根据userid获取用户其它信息 + * @param userId + * @return + */ + @Override + public ResultBody findDoctorUserAllData(Long userId) { + if (userId>0) { + return ResultBody.ok().data(baseMapper.findDoctorUserAllData(userId)); + } + return ResultBody.ok().data(null); + } + + public com.kidgrow.usercenter.model.SysDoctor findDoctorByUserId(Long userId) { + Map<String, Object> doctorMap = new HashMap<>(); + doctorMap.put("user_id",userId); + doctorMap.put("enabled",1); + doctorMap.put("is_del",0); + List<com.kidgrow.usercenter.model.SysDoctor> sysDoctorList=sysDoctorMapper.selectByMap(doctorMap); + if (sysDoctorList.size()>0) { + return sysDoctorList.get(0); + } + return new com.kidgrow.usercenter.model.SysDoctor(); + } } \ No newline at end of file -- Gitblit v1.8.0