From ecea8849ad29ccc204d4994f6eeef5cd5064d0cc Mon Sep 17 00:00:00 2001 From: luliqiang <kidgrow> Date: Fri, 14 Aug 2020 14:03:33 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 64 +++++++++++++++++++++++++++++--- 1 files changed, 58 insertions(+), 6 deletions(-) diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java index 08deb28..4dbfd44 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java @@ -52,6 +52,8 @@ @Autowired private ISysUserService iSysUserService; @Autowired + private SysUserMapper sysUserMapper; + @Autowired private PasswordEncoder passwordEncoder; @Autowired private ISysUserOrgService sysUserOrgService; @@ -201,7 +203,7 @@ if (sysDoctor.getId() == null) { Long sysUserId = null; //保存部门信息 - ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment); + ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment,null); if(resultBody.getCode()==0){ sysUserId=(Long)resultBody.getData(); }else { @@ -221,6 +223,12 @@ //更新 SysDoctor getOne = baseMapper.selectById(sysDoctor.getId()); if (getOne.getDoctorType() != 2 && sysDoctor.getDoctorType() != 2) { + /** + * 管理员只有一个 + */ + if (isSupperRole(sysDoctor)) { + return ResultBody.failed("该部门已经有管理员"); + } Map<String, Object> columnMap = new HashMap<>(); columnMap.put("user_id", sysDoctor.getUserId()); boolean b = sysUserOrgService.removeByMap(columnMap); @@ -244,6 +252,16 @@ redisUtils.hdel(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString()); } redisUtils.hset(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString(), sysUserOrg); + //角色更换 + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("user_id",getOne.getUserId()); + int delete = sysUserRoleMapper.delete(queryWrapper); + sysDoctor.getRoles().forEach(e -> { + SysRoleUser sysRoleUser = new SysRoleUser(); + sysRoleUser.setRoleId(e); + sysRoleUser.setUserId(getOne.getUserId()); + int insert = sysUserRoleMapper.insert(sysRoleUser); + }); } else if (getOne.getDoctorType() == 2 && sysDoctor.getDoctorType() != 2) { /** * 管理员只有一个 @@ -251,7 +269,7 @@ if (isSupperRole(sysDoctor)) { return ResultBody.failed("该部门已经有管理员"); } - ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment); + ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment,getOne); Long sysUserId = null; if(resultBody.getCode()==0){ sysUserId=(Long)resultBody.getData(); @@ -277,6 +295,11 @@ redisUtils.hdel(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString()); sysDoctor.setUserId(null); baseMapper.updateById(sysDoctor); + //将用户删除 + SysUser sysUser = new SysUser(); + sysUser.setId(getOne.getUserId()); + sysUser.setDel(true); + sysUserMapper.deleteById(sysUser); } else if (getOne.getDoctorType() == 2 && sysDoctor.getDoctorType() == 2) { baseMapper.updateById(sysDoctor); } @@ -304,7 +327,7 @@ wrapper.in("user_id", collect); List<SysRoleUser> list = this.sysUserRoleMapper.selectList(wrapper); for (SysRoleUser sysRoleUser : list) { - if (sysRoleUser.getRoleId() == CommonConstant.HOSPITAL_ADMIN_ID) { + if (sysRoleUser.getRoleId().equals( CommonConstant.HOSPITAL_ADMIN_ID)) { flag = true; } } @@ -314,7 +337,7 @@ } //保存的分接口 - public ResultBody saveFenjiekou(SysDoctorDto sysDoctor, String id, SysHospital sysHospital, SysDepartment sysDepartment) { + public ResultBody saveFenjiekou(SysDoctorDto sysDoctor, String id, SysHospital sysHospital, SysDepartment sysDepartment,SysDoctor getOne) { Long sysUserId = null; /** * 管理员只有一个 @@ -323,8 +346,8 @@ return ResultBody.failed("该部门已经有管理员"); } if (sysDoctor.getDoctorType() != 2) { + SysUser sysUser=new SysUser(); //保存 - SysUser sysUser = new SysUser(); sysUser.setUsername(sysDoctor.getUsername()); sysUser.setPassword(passwordEncoder.encode(sysDoctor.getPassword())); sysUser.setNickname(sysDoctor.getDoctorName()); @@ -338,7 +361,33 @@ sysUser.setCreateUserId(byId.getId()); sysUser.setCreateUserName(byId.getUsername()); } - iSysUserService.save(sysUser); + //做判断是否注册过手机号; + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("username",sysDoctor.getDoctorTel()); + queryWrapper.eq("enabled",1); + queryWrapper.eq("is_del",0); + Integer integer = sysUserMapper.selectCount(queryWrapper); + if(integer>0){ + return ResultBody.failed("该手机号已经注册"); + } + if (getOne!=null&&getOne.getUserId()!=null) { + Map<String,Object> map=new HashMap<>(); + map.put("id",getOne.getUserId()); + map.put("enabled",1); + map.put("is_del",1); + List<SysUser> sysUsers = sysUserMapper.selectByMap(map); + if(sysUsers!=null&&!sysUsers.isEmpty()){ + sysUser.setId(sysUsers.get(sysUsers.size()-1).getId()); + } + } + if(sysUser.getId()!=null){ + //更新 + sysUser.setDel(false); + iSysUserService.updateById(sysUser); + }else { + //保存 + iSysUserService.save(sysUser); + } sysUserId = sysUser.getId(); //保存一个角色 sysDoctor.getRoles().forEach(e -> { @@ -382,6 +431,9 @@ if (id > 0 && adminId > 0) { Map<String, Object> map = new HashMap<>(); map.put("user_id", adminId); + map.put("is_admin_user",1); + map.put("is_del",0); + map.put("enabled",1); List<SysDoctor> sysDoctors = baseMapper.selectByMap(map); if (sysDoctors == null || sysDoctors.size() <= 0) { return ResultBody.failed("当前操作用户不是管理员"); -- Gitblit v1.8.0