From be63f61992b0120e0ea6df6657141d0c8e245172 Mon Sep 17 00:00:00 2001 From: 克 刘 <4345453@qq.com> Date: Thu, 20 Aug 2020 12:08:23 +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 | 101 +++++++++++++++++++++++++++++--------------------- 1 files changed, 59 insertions(+), 42 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 8a596ea..7598b03 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 @@ -91,8 +91,8 @@ if (sysUser != null) { vo.setUsername(sysUser.getUsername()); } - QueryWrapper queryWrapper=new QueryWrapper(); - queryWrapper.eq("user_id",e.getUserId()); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("user_id", e.getUserId()); List<SysRoleUser> roleUserList = sysUserRoleMapper.selectList(queryWrapper); List<Long> collect = roleUserList.stream().map(roleUser -> roleUser.getRoleId()).collect(Collectors.toList()); vo.setRoles(collect); @@ -203,10 +203,10 @@ if (sysDoctor.getId() == null) { Long sysUserId = null; //保存部门信息 - ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment,null); - if(resultBody.getCode()==0){ - sysUserId=(Long)resultBody.getData(); - }else { + ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment, null); + if (resultBody.getCode() == 0) { + sysUserId = (Long) resultBody.getData(); + } else { return resultBody; } //保存doctor的数据 @@ -223,11 +223,27 @@ //更新 SysDoctor getOne = baseMapper.selectById(sysDoctor.getId()); if (getOne.getDoctorType() != 2 && sysDoctor.getDoctorType() != 2) { - /** - * 管理员只有一个 - */ - if (isSupperRole(sysDoctor)) { - return ResultBody.failed("该部门已经有管理员"); + QueryWrapper queryrole = new QueryWrapper(); + queryrole.eq("user_id", getOne.getUserId()); + List<SysRoleUser> list = sysUserRoleMapper.selectList(queryrole); + //如果是本来是管理员的话,不用走判读管理员的方法 + if (!list.isEmpty()) { + List<Long> collect = list.stream().map(e -> e.getRoleId()).collect(Collectors.toList()); + if (!collect.contains(CommonConstant.HOSPITAL_ADMIN_ID)) { + /** + * 管理员只有一个 + */ + if (isSupperRole(sysDoctor)) { + return ResultBody.failed("该部门已经有管理员"); + } + } + } else { + /** + * 管理员只有一个 + */ + if (isSupperRole(sysDoctor)) { + return ResultBody.failed("该部门已经有管理员"); + } } Map<String, Object> columnMap = new HashMap<>(); columnMap.put("user_id", sysDoctor.getUserId()); @@ -253,8 +269,8 @@ } redisUtils.hset(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString(), sysUserOrg); //角色更换 - QueryWrapper queryWrapper=new QueryWrapper(); - queryWrapper.eq("user_id",getOne.getUserId()); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("user_id", getOne.getUserId()); int delete = sysUserRoleMapper.delete(queryWrapper); sysDoctor.getRoles().forEach(e -> { SysRoleUser sysRoleUser = new SysRoleUser(); @@ -269,11 +285,11 @@ if (isSupperRole(sysDoctor)) { return ResultBody.failed("该部门已经有管理员"); } - ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment,getOne); + ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment, getOne); Long sysUserId = null; - if(resultBody.getCode()==0){ - sysUserId=(Long)resultBody.getData(); - }else { + if (resultBody.getCode() == 0) { + sysUserId = (Long) resultBody.getData(); + } else { return resultBody; } sysDoctor.setUserId(sysUserId); @@ -285,10 +301,10 @@ boolean b = sysUserOrgService.removeByMap(columnMap); SysUser byId = iSysUserService.getById(getOne.getUserId()); //将角色删除 - QueryWrapper queryWrapper=new QueryWrapper(); - queryWrapper.eq("user_id",getOne.getUserId()); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("user_id", getOne.getUserId()); int delete = sysUserRoleMapper.delete(queryWrapper); - if(byId!=null){ + if (byId != null) { byId.setDel(true); boolean b1 = iSysUserService.updateById(byId); } @@ -307,8 +323,9 @@ } return ResultBody.ok(); } + //是否可以使是超管角色 - public Boolean isSupperRole(SysDoctorDto sysDoctor){ + public Boolean isSupperRole(SysDoctorDto sysDoctor) { Boolean flag = false; /** * 限制管理员只有一个 @@ -327,7 +344,7 @@ wrapper.in("user_id", collect); List<SysRoleUser> list = this.sysUserRoleMapper.selectList(wrapper); for (SysRoleUser sysRoleUser : list) { - if (sysRoleUser.getRoleId().equals( CommonConstant.HOSPITAL_ADMIN_ID)) { + if (sysRoleUser.getRoleId().equals(CommonConstant.HOSPITAL_ADMIN_ID)) { flag = true; } } @@ -337,7 +354,7 @@ } //保存的分接口 - public ResultBody saveFenjiekou(SysDoctorDto sysDoctor, String id, SysHospital sysHospital, SysDepartment sysDepartment,SysDoctor getOne) { + public ResultBody saveFenjiekou(SysDoctorDto sysDoctor, String id, SysHospital sysHospital, SysDepartment sysDepartment, SysDoctor getOne) { Long sysUserId = null; /** * 管理员只有一个 @@ -346,7 +363,7 @@ 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())); @@ -362,29 +379,29 @@ sysUser.setCreateUserName(byId.getUsername()); } //做判断是否注册过手机号; - QueryWrapper queryWrapper=new QueryWrapper(); - queryWrapper.eq("username",sysDoctor.getDoctorTel()); - queryWrapper.eq("enabled",1); - queryWrapper.eq("is_del",0); + 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 (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); + 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 (sysUsers != null && !sysUsers.isEmpty()) { + sysUser.setId(sysUsers.get(sysUsers.size() - 1).getId()); } } - if(sysUser.getId()!=null){ + if (sysUser.getId() != null) { //更新 sysUser.setDel(false); iSysUserService.updateById(sysUser); - }else { + } else { //保存 iSysUserService.save(sysUser); } @@ -431,9 +448,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); + 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