From 8a0af6adb095fca6d13712786255000caff76e62 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <913652501@qq.com> Date: Thu, 13 Aug 2020 19:11:24 +0800 Subject: [PATCH] 修改h端 获取用户列表的方法和删除的方法 --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 90 insertions(+), 20 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 b424967..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; @@ -73,14 +75,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 +91,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(); } /** @@ -140,6 +147,7 @@ * 2 医答医生 * 3 C端医生 * 4 H端医生 + * 5 待审核医生 * @return */ @Override @@ -182,12 +190,7 @@ return ResultBody.failed("选择一个角色"); } } - /** - * 管理员只有一个 - */ - if (isSupperRole(sysDoctor)) { - return ResultBody.failed("该部门已经有管理员"); - } + /** * 限制只有创建医生的个数 * @@ -200,7 +203,12 @@ if (sysDoctor.getId() == null) { Long sysUserId = null; //保存部门信息 - sysUserId = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment); + ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment,null); + if(resultBody.getCode()==0){ + sysUserId=(Long)resultBody.getData(); + }else { + return resultBody; + } //保存doctor的数据 SysDoctor sysDoc = new SysDoctor(); BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false); @@ -215,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); @@ -238,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) { /** * 管理员只有一个 @@ -245,7 +269,13 @@ if (isSupperRole(sysDoctor)) { return ResultBody.failed("该部门已经有管理员"); } - Long sysUserId = 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(); + }else { + return resultBody; + } sysDoctor.setUserId(sysUserId); baseMapper.updateById(sysDoctor); } else if (getOne.getDoctorType() != 2 && sysDoctor.getDoctorType() == 2) { @@ -259,12 +289,17 @@ queryWrapper.eq("user_id",getOne.getUserId()); int delete = sysUserRoleMapper.delete(queryWrapper); if(byId!=null){ -// iSysUserService.delUser(byId.getId()); - boolean userdelete = iSysUserService.removeById(byId.getId()); + byId.setDel(true); + boolean b1 = iSysUserService.updateById(byId); } 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); } @@ -292,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; } } @@ -302,14 +337,20 @@ } //保存的分接口 - public Long 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; + /** + * 管理员只有一个 + */ + if (isSupperRole(sysDoctor)) { + 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.getHospitalName()); + sysUser.setNickname(sysDoctor.getDoctorName()); sysUser.setHeadImgUrl(sysDoctor.getDoctorLogo()); sysUser.setMobile(sysDoctor.getDoctorTel()); sysUser.setType(UserType.DOCTOR.name()); @@ -320,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 -> { @@ -346,7 +413,7 @@ //保存到Redis boolean hset = redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrg); } - return sysUserId; + return ResultBody.ok().data(sysUserId); } @Override @@ -364,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