From f5f444c2bbb1e1e90a6ea6d0fbbfa06c07deed2d Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <279049017@qq.com> Date: Wed, 04 Nov 2020 16:47:24 +0800 Subject: [PATCH] 修改h端添加用户不能登录的问题 --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 54 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 32 insertions(+), 22 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 7598b03..d2850bf 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 @@ -256,18 +256,21 @@ sysUserOrg.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); sysUserOrg.setOrgId(sysDepartment.getOrgId()); sysUserOrg.setCreateTime(new Date()); + List<SysUserOrg> sysUserOrgs=new ArrayList<>(); + sysUserOrgs.add(sysUserOrg); sysUserOrgService.saveOrUpdate(sysUserOrg); SysUserOrg sysGongsi = new SysUserOrg(); sysGongsi.setUserId(getOne.getId()); sysGongsi.setOrgId(sysHospital.getOrgId()); sysGongsi.setFromId(sysDoctor.getHospitalId()); sysGongsi.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); + sysUserOrgs.add(sysGongsi); sysUserOrgService.saveOrUpdate(sysGongsi); baseMapper.updateById(sysDoctor); if (redisUtils.hHasKey(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString())) { redisUtils.hdel(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString()); } - redisUtils.hset(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString(), sysUserOrg); + redisUtils.hset(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString(), sysUserOrgs); //角色更换 QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("user_id", getOne.getUserId()); @@ -330,22 +333,24 @@ /** * 限制管理员只有一个 */ - if (sysDoctor.getRoles().contains(CommonConstant.HOSPITAL_ADMIN_ID)) { - //查询一个部门下的所有医生 - QueryWrapper wrapper = new QueryWrapper(); - wrapper.eq("is_del", 0); - wrapper.eq("enabled", 1); - wrapper.eq("department_id", sysDoctor.getDepartmentId()); - List<SysDoctor> doctoerList = this.baseMapper.selectList(wrapper); - if (doctoerList.size() > 0) { - //查询role——user - List<Long> collect = doctoerList.stream().map(e -> e.getUserId()).collect(Collectors.toList()); - wrapper = new QueryWrapper(); - wrapper.in("user_id", collect); - List<SysRoleUser> list = this.sysUserRoleMapper.selectList(wrapper); - for (SysRoleUser sysRoleUser : list) { - if (sysRoleUser.getRoleId().equals(CommonConstant.HOSPITAL_ADMIN_ID)) { - flag = true; + if (sysDoctor.getDoctorType() != 2) { + if (sysDoctor.getRoles().contains(CommonConstant.HOSPITAL_ADMIN_ID)) { + //查询一个部门下的所有医生 + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("is_del", 0); + wrapper.eq("enabled", 1); + wrapper.eq("department_id", sysDoctor.getDepartmentId()); + List<SysDoctor> doctoerList = this.baseMapper.selectList(wrapper); + if (doctoerList.size() > 0) { + //查询role——user + List<Long> collect = doctoerList.stream().map(e -> e.getUserId()).collect(Collectors.toList()); + wrapper = new QueryWrapper(); + wrapper.in("user_id", collect); + List<SysRoleUser> list = this.sysUserRoleMapper.selectList(wrapper); + for (SysRoleUser sysRoleUser : list) { + if (sysRoleUser.getRoleId().equals(CommonConstant.HOSPITAL_ADMIN_ID)) { + flag = true; + } } } } @@ -413,12 +418,14 @@ sysRoleUser.setUserId(sysUser.getId()); int insert = sysUserRoleMapper.insert(sysRoleUser); }); + List<SysUserOrg> sysUserOrgs=new ArrayList<>(); //保存将sys_user_org 保存部门 SysUserOrg sysUserOrg = new SysUserOrg(); sysUserOrg.setUserId(sysUser.getId()); sysUserOrg.setFromId(sysDoctor.getDepartmentId()); sysUserOrg.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); sysUserOrg.setOrgId(sysDepartment.getOrgId()); + sysUserOrgs.add(sysUserOrg); //保存公司 sysUserOrgService.saveOrUpdate(sysUserOrg); SysUserOrg sysGongsi = new SysUserOrg(); @@ -427,8 +434,9 @@ sysGongsi.setFromId(sysDoctor.getHospitalId()); sysGongsi.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); sysUserOrgService.saveOrUpdate(sysGongsi); + sysUserOrgs.add(sysGongsi); //保存到Redis - boolean hset = redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrg); + boolean hset = redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrgs); } return ResultBody.ok().data(sysUserId); } @@ -465,8 +473,9 @@ sysRoleUser.setRoleId(CommonConstant.HOSPITAL_DOCTOR_ID); QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("user_id", adminId); - queryWrapper.eq("role_id", CommonConstant.HOSPITAL_ADMIN_ID); - int update = sysUserRoleMapper.update(sysRoleUser, queryWrapper); +// queryWrapper.eq("role_id", CommonConstant.HOSPITAL_ADMIN_ID); + int delete = sysUserRoleMapper.delete(queryWrapper); + int update = sysUserRoleMapper.insert(sysRoleUser); //现将操作人员设为非管理角色 sysDoctor.setIsAdminUser(false); if (baseMapper.updateById(sysDoctor) > 0) { @@ -480,8 +489,9 @@ sysRoleUser.setRoleId(CommonConstant.HOSPITAL_ADMIN_ID); queryWrapper = new QueryWrapper(); queryWrapper.eq("user_id", sysDoctor.getUserId()); - queryWrapper.eq("role_id", CommonConstant.HOSPITAL_DOCTOR_ID); - sysUserRoleMapper.update(sysRoleUser, queryWrapper); +// queryWrapper.eq("role_id", CommonConstant.HOSPITAL_DOCTOR_ID); + sysUserRoleMapper.delete(queryWrapper); + sysUserRoleMapper.insert(sysRoleUser); sysDoctor.setIsAdminUser(true); if (baseMapper.updateById(sysDoctor) > 0) { return ResultBody.ok().data(true).msg("管理员设置成功!"); -- Gitblit v1.8.0