forked from kidgrow-microservices-platform

zhaoxiaohao
2020-11-16 f30a977b18541d2f1b9a7863b1377e5f366df9dc
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("管理员设置成功!");