From 3dcb4e0ebfd43190957f556d886917b2a2ffa064 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <913652501@qq.com> Date: Wed, 12 Aug 2020 18:45:30 +0800 Subject: [PATCH] 修改上传图片的接口 --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 385 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 217 insertions(+), 168 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 54ad012..c55c79a 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 @@ -73,14 +73,14 @@ // private final String HOSPITAL_ADMIN="hospital_admin"; @Override - public PageResult<SysDoctorVo> findList(Map<String, Object> params, SysUser user) { + public PageResult<SysDoctorDto> findList(Map<String, Object> params, SysUser user) { Page<SysDoctor> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); //添加权限 SysRoleOrganizationServiceImpl.getRoleOrg(params, user); List<SysDoctor> list = baseMapper.findList(page, params); - List<SysDoctorVo> listvo = new ArrayList<>(); + List<SysDoctorDto> listvo = new ArrayList<>(); list.forEach(e -> { - SysDoctorVo vo = new SysDoctorVo(); + SysDoctorDto vo = new SysDoctorDto(); BeanCopier beanCopier = BeanCopier.create(SysDoctor.class, SysDoctorVo.class, false); beanCopier.copy(e, vo, null); //查询用户的登录账号; @@ -89,10 +89,15 @@ if (sysUser != null) { vo.setUsername(sysUser.getUsername()); } + 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); } listvo.add(vo); }); - return PageResult.<SysDoctorVo>builder().data(listvo).code(0).count(page.getTotal()).build(); + return PageResult.<SysDoctorDto>builder().data(listvo).code(0).count(page.getTotal()).build(); } /** @@ -120,6 +125,7 @@ /** * 根据userid删除医生数据 + * * @param userId * @return */ @@ -129,8 +135,10 @@ params.put("userId", userId); return baseMapper.deleteByMap(params); } + /** * 统计医生的数量 + * * @param datatype 业务类型 * 0 自注册医生 * 1 签约医生 @@ -147,167 +155,222 @@ @Override public ResultBody enable(Map<String, Object> params) { - Long aLong = MapUtils.getLong(params,"id"); + Long aLong = MapUtils.getLong(params, "id"); SysDoctor sysDoctor = baseMapper.selectById(aLong); Boolean enabled = MapUtils.getBoolean(params, "enabled"); if (sysDoctor != null && sysDoctor.getUserId() != null) { SysUser byId = iSysUserService.getById(sysDoctor.getUserId()); - if(byId!=null){ + if (byId != null) { byId.setEnabled(enabled); iSysUserService.updateById(byId); } } - if(sysDoctor!=null){ + if (sysDoctor != null) { sysDoctor.setEnabled(enabled); baseMapper.updateById(sysDoctor); - }else { + } else { return ResultBody.failed("禁用失败"); } - return ResultBody.ok(0,"禁用成功"); + return ResultBody.ok(0, "禁用成功"); } @Override @Transactional(rollbackFor = Exception.class) - public ResultBody saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request,SysUser user) { + public ResultBody saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request, SysUser user) { String id = request.getHeader(SecurityConstants.USER_ID_HEADER); - if(null==sysDoctor){ - return ResultBody.failed("请填写信息"); - }else { - if(sysDoctor.getRoles()==null||sysDoctor.getRoles().size()<=0){ - return ResultBody.failed("选择一个角色"); - } - /** - * 限制管理员只有一个 - */ - - Boolean flag=false; - 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()==CommonConstant.HOSPITAL_ADMIN_ID){ - flag=true; - } - } + if (null == sysDoctor) { + return ResultBody.failed("请填写信息"); + } else { + Boolean flag = false; + if (sysDoctor.getDoctorType() != 2) { + if (sysDoctor.getRoles() == null || sysDoctor.getRoles().size() <= 0) { + return ResultBody.failed("选择一个角色"); } } - if(flag){ - return ResultBody.failed("该部门已经有管理员"); - } + /** * 限制只有创建医生的个数 * */ - if(sysUserServiceImpl.departmetAccountsCount(sysDoctor.getDepartmentId())<=0){ - return ResultBody.failed("该部门创建人数已经达到上限"); - } - SysHospital sysHospital= sysHospitalMapper.selectById(sysDoctor.getHospitalId()); - SysDepartment sysDepartment= sysDepartmentMapper.selectById(sysDoctor.getDepartmentId()); - if (sysDoctor.getId()==null) { - //保存 - SysUser sysUser=new SysUser(); - sysUser.setUsername(sysDoctor.getUsername()); - sysUser.setPassword(passwordEncoder.encode(sysDoctor.getPassword())); - sysUser.setNickname(sysDoctor.getHospitalName()); - sysUser.setHeadImgUrl(sysDoctor.getDoctorLogo()); - sysUser.setMobile(sysDoctor.getDoctorTel()); - sysUser.setType(UserType.DOCTOR.name()); - sysUser.setTenantId(CommonConstant.H_TENANT); - sysUser.setCreateTime(new Date()); - SysUser byId = iSysUserService.getById(id); - if(byId!=null){ - sysUser.setCreateUserId(byId.getId()); - sysUser.setCreateUserName(byId.getUsername()); + if (sysUserServiceImpl.departmetAccountsCount(sysDoctor.getDepartmentId()) <= 0) { + return ResultBody.failed("该部门创建人数已经达到上限"); + } + SysHospital sysHospital = sysHospitalMapper.selectById(sysDoctor.getHospitalId()); + SysDepartment sysDepartment = sysDepartmentMapper.selectById(sysDoctor.getDepartmentId()); + if (sysDoctor.getId() == null) { + Long sysUserId = null; + //保存部门信息 + ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment); + if(resultBody.getCode()==0){ + sysUserId=(Long)resultBody.getData(); + }else { + return resultBody; } - iSysUserService.save(sysUser); - //保存 角色信息 -// Map<String,Object> map= new HashMap<>(); -// map.put("code",HOSPITAL_ADMIN); -// map.put("enabled",1); -// map.put("is_del",0); -// List<SysRole> sysRoles = sysRoleMapper.selectByMap(map); -// if(sysRoles.size()>0){ - //保存一个角色 - sysDoctor.getRoles().forEach(e->{ - SysRoleUser sysRoleUser=new SysRoleUser(); - sysRoleUser.setRoleId(e); - sysRoleUser.setUserId(sysUser.getId()); - int insert = sysUserRoleMapper.insert(sysRoleUser); - }); //保存doctor的数据 - SysDoctor sysDoc=new SysDoctor(); + SysDoctor sysDoc = new SysDoctor(); BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false); - beanCopier.copy(sysDoctor,sysDoc,null); - sysDoc.setUserId(sysUser.getId()); - if(user.getOrganizations()!=null){ + beanCopier.copy(sysDoctor, sysDoc, null); + sysDoc.setUserId(sysUserId); + if (user.getOrganizations() != null) { List<SysOrganization> organizations = user.getOrganizations(); - sysDoc.setCreateUserOrgCode(organizations.get(organizations.size()-1).getOrgCode()); + sysDoc.setCreateUserOrgCode(organizations.get(organizations.size() - 1).getOrgCode()); } - baseMapper.insert(sysDoc); - //保存将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()); - //保存公司 - sysUserOrgService.saveOrUpdate(sysUserOrg); - SysUserOrg sysGongsi=new SysUserOrg(); - sysGongsi.setUserId(sysUser.getId()); - sysGongsi.setOrgId(sysHospital.getOrgId()); - sysGongsi.setFromId(sysDoctor.getHospitalId()); - sysGongsi.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); - sysUserOrgService.saveOrUpdate(sysGongsi); - //保存到Redis - boolean hset = redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrg); - }else { + } else { //更新 SysDoctor getOne = baseMapper.selectById(sysDoctor.getId()); - Map<String, Object> columnMap=new HashMap<>(); - columnMap.put("user_id",sysDoctor.getUserId()); - boolean b = sysUserOrgService.removeByMap(columnMap); - //保存将sys_user_org - SysUserOrg sysUserOrg=new SysUserOrg(); - sysUserOrg.setUserId(getOne.getUserId()); - sysUserOrg.setEnabled(false); - sysUserOrg.setFromId(sysDoctor.getDepartmentId()); - sysUserOrg.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); - sysUserOrg.setOrgId(sysDepartment.getOrgId()); - sysUserOrg.setCreateTime(new Date()); - 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); - sysUserOrgService.saveOrUpdate(sysGongsi); - baseMapper.updateById(sysDoctor); - if(redisUtils.hHasKey(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString())){ + if (getOne.getDoctorType() != 2 && sysDoctor.getDoctorType() != 2) { + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("user_id", sysDoctor.getUserId()); + boolean b = sysUserOrgService.removeByMap(columnMap); + //保存将sys_user_org + SysUserOrg sysUserOrg = new SysUserOrg(); + sysUserOrg.setUserId(getOne.getUserId()); + sysUserOrg.setEnabled(false); + sysUserOrg.setFromId(sysDoctor.getDepartmentId()); + sysUserOrg.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); + sysUserOrg.setOrgId(sysDepartment.getOrgId()); + sysUserOrg.setCreateTime(new Date()); + 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); + 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); + } else if (getOne.getDoctorType() == 2 && sysDoctor.getDoctorType() != 2) { + /** + * 管理员只有一个 + */ + if (isSupperRole(sysDoctor)) { + return ResultBody.failed("该部门已经有管理员"); + } + ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment); + Long sysUserId = null; + if(resultBody.getCode()==0){ + sysUserId=(Long)resultBody.getData(); + }else { + return resultBody; + } + sysDoctor.setUserId(sysUserId); + baseMapper.updateById(sysDoctor); + } else if (getOne.getDoctorType() != 2 && sysDoctor.getDoctorType() == 2) { + //将组织删除 + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("user_id", getOne.getUserId()); + boolean b = sysUserOrgService.removeByMap(columnMap); + SysUser byId = iSysUserService.getById(getOne.getUserId()); + //将角色删除 + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("user_id",getOne.getUserId()); + int delete = sysUserRoleMapper.delete(queryWrapper); + if(byId!=null){ + byId.setDel(true); + boolean b1 = iSysUserService.updateById(byId); + } redisUtils.hdel(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString()); + sysDoctor.setUserId(null); + baseMapper.updateById(sysDoctor); + } else if (getOne.getDoctorType() == 2 && sysDoctor.getDoctorType() == 2) { + baseMapper.updateById(sysDoctor); } - redisUtils.hset(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString(), sysUserOrg); } } return ResultBody.ok(); } + //是否可以使是超管角色 + public Boolean isSupperRole(SysDoctorDto sysDoctor){ + Boolean flag = false; + /** + * 限制管理员只有一个 + */ + 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() == CommonConstant.HOSPITAL_ADMIN_ID) { + flag = true; + } + } + } + } + return flag; + } + + //保存的分接口 + public ResultBody saveFenjiekou(SysDoctorDto sysDoctor, String id, SysHospital sysHospital, SysDepartment sysDepartment) { + Long sysUserId = null; + /** + * 管理员只有一个 + */ + if (isSupperRole(sysDoctor)) { + return ResultBody.failed("该部门已经有管理员"); + } + if (sysDoctor.getDoctorType() != 2) { + //保存 + SysUser sysUser = new SysUser(); + sysUser.setUsername(sysDoctor.getUsername()); + sysUser.setPassword(passwordEncoder.encode(sysDoctor.getPassword())); + sysUser.setNickname(sysDoctor.getDoctorName()); + sysUser.setHeadImgUrl(sysDoctor.getDoctorLogo()); + sysUser.setMobile(sysDoctor.getDoctorTel()); + sysUser.setType(UserType.DOCTOR.name()); + sysUser.setTenantId(CommonConstant.H_TENANT); + sysUser.setCreateTime(new Date()); + SysUser byId = iSysUserService.getById(id); + if (byId != null) { + sysUser.setCreateUserId(byId.getId()); + sysUser.setCreateUserName(byId.getUsername()); + } + iSysUserService.save(sysUser); + sysUserId = sysUser.getId(); + //保存一个角色 + sysDoctor.getRoles().forEach(e -> { + SysRoleUser sysRoleUser = new SysRoleUser(); + sysRoleUser.setRoleId(e); + sysRoleUser.setUserId(sysUser.getId()); + int insert = sysUserRoleMapper.insert(sysRoleUser); + }); + //保存将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()); + //保存公司 + sysUserOrgService.saveOrUpdate(sysUserOrg); + SysUserOrg sysGongsi = new SysUserOrg(); + sysGongsi.setUserId(sysUser.getId()); + sysGongsi.setOrgId(sysHospital.getOrgId()); + sysGongsi.setFromId(sysDoctor.getHospitalId()); + sysGongsi.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL); + sysUserOrgService.saveOrUpdate(sysGongsi); + //保存到Redis + boolean hset = redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrg); + } + return ResultBody.ok().data(sysUserId); + } @Override public List<SysDoctor> findByMap(Map<String, Object> map) { - map.put("enabled",1); - map.put("is_del",0); + map.put("enabled", 1); + map.put("is_del", 0); return baseMapper.selectByMap(map); } @@ -316,100 +379,86 @@ public ResultBody setAdminDoctor(Map<String, Object> params) { Long id = MapUtils.getLong(params, "id"); Long adminId = MapUtils.getLong(params, "adminId"); - if (id>0&&adminId>0) { - Map<String,Object> map= new HashMap<>(); - map.put("user_id",adminId); + 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("enable",1); List<SysDoctor> sysDoctors = baseMapper.selectByMap(map); - if(sysDoctors==null||sysDoctors.size()<=0){ + if (sysDoctors == null || sysDoctors.size() <= 0) { return ResultBody.failed("当前操作用户不是管理员"); } SysDoctor sysDoctor = sysDoctors.get(0); //先检查操作用户是否管理员 - if(sysDoctor!=null){ + if (sysDoctor != null) { if (sysDoctor.getIsAdminUser()) { //将超级管理员的角色设为普通角色 - SysRoleUser sysRoleUser=new SysRoleUser(); + SysRoleUser sysRoleUser = new SysRoleUser(); sysRoleUser.setUserId(adminId); sysRoleUser.setRoleId(CommonConstant.HOSPITAL_DOCTOR_ID); - QueryWrapper queryWrapper=new QueryWrapper(); - queryWrapper.eq("user_id",adminId); - queryWrapper.eq("role_id",CommonConstant.HOSPITAL_ADMIN_ID); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("user_id", adminId); + queryWrapper.eq("role_id", CommonConstant.HOSPITAL_ADMIN_ID); int update = sysUserRoleMapper.update(sysRoleUser, queryWrapper); //现将操作人员设为非管理角色 sysDoctor.setIsAdminUser(false); - if(baseMapper.updateById(sysDoctor)>0) - { + if (baseMapper.updateById(sysDoctor) > 0) { //再将新用户设为管理 - sysDoctor=baseMapper.selectById(id); + sysDoctor = baseMapper.selectById(id); if (sysDoctor != null) { if (!sysDoctor.getIsAdminUser()) { //现将普通人员设为管理角色 - sysRoleUser=new SysRoleUser(); + sysRoleUser = new SysRoleUser(); sysRoleUser.setUserId(sysDoctor.getUserId()); sysRoleUser.setRoleId(CommonConstant.HOSPITAL_ADMIN_ID); - queryWrapper=new QueryWrapper(); - queryWrapper.eq("user_id",sysDoctor.getUserId()); - queryWrapper.eq("role_id",CommonConstant.HOSPITAL_DOCTOR_ID); + queryWrapper = new QueryWrapper(); + queryWrapper.eq("user_id", sysDoctor.getUserId()); + queryWrapper.eq("role_id", CommonConstant.HOSPITAL_DOCTOR_ID); sysUserRoleMapper.update(sysRoleUser, queryWrapper); sysDoctor.setIsAdminUser(true); - if (baseMapper.updateById(sysDoctor)>0) { + if (baseMapper.updateById(sysDoctor) > 0) { return ResultBody.ok().data(true).msg("管理员设置成功!"); - } - else - { + } else { return ResultBody.failed("设为管理失败!").data(false); } - } - else - { + } else { return ResultBody.failed("设为管理失败,改用户就是管理员!").data(false); } - } - else - { + } else { return ResultBody.failed("用户信息有误!").data(false); } - } - else - { + } else { return ResultBody.failed("设为管理失败!").data(false); } - } - else - { + } else { return ResultBody.failed("当前操作用户不是管理员!").data(false); } - } - else - { + } else { return ResultBody.failed("用户信息有误!").data(false); } - } - else - { + } else { return ResultBody.failed("业务参数有误!").data(false); } } /** * 判断用户名是否管理员 + * * @param userName * @return */ @Override public ResultBody userIsAdmin(String userName) { if (StringUtils.isNotBlank(userName)) { - SysDoctor sysDoctor= baseMapper.userIsAdmin(userName); + SysDoctor sysDoctor = baseMapper.userIsAdmin(userName); if (sysDoctor != null) { return ResultBody.ok().data(sysDoctor.getIsAdminUser()); - } - else - { + } else { return ResultBody.failed().data(false); } - }else - { + } else { return ResultBody.failed("用户名不能为空!").data(false); } } -- Gitblit v1.8.0