From 8d384b6f5e510fd23f30061b0678abceb624c2a3 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <913652501@qq.com> Date: Fri, 24 Apr 2020 11:39:25 +0800 Subject: [PATCH] 添加数据权限的功能 --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 72 ++++++++++++++++++++++++++++++++---- 1 files changed, 64 insertions(+), 8 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 4fcd9b5..a5cdc88 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 @@ -1,8 +1,16 @@ package com.kidgrow.usercenter.service.impl; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.kidgrow.common.constant.SecurityConstants; -import com.kidgrow.common.model.ResultBody; -import com.kidgrow.common.model.SysUser; +import com.kidgrow.common.model.*; +import com.kidgrow.redis.util.RedisConstant; +import com.kidgrow.redis.util.RedisUtils; +import com.kidgrow.usercenter.mapper.SysRoleMapper; +import com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper; +import com.kidgrow.usercenter.model.SysRoleOrganization; +import com.kidgrow.usercenter.service.ISysRoleOrganizationService; +import com.kidgrow.usercenter.service.ISysUserOrgService; import com.kidgrow.usercenter.service.ISysUserService; import com.kidgrow.usercenter.vo.SysDoctorDto; import com.kidgrow.usercenter.vo.SysDoctorVo; @@ -10,14 +18,10 @@ import org.springframework.cglib.beans.BeanCopier; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import com.kidgrow.common.model.PageResult; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.service.impl.SuperServiceImpl; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.commons.collections4.MapUtils; import lombok.extern.slf4j.Slf4j; @@ -51,10 +55,35 @@ private ISysUserService iSysUserService; @Autowired private PasswordEncoder passwordEncoder; + @Autowired + private ISysUserOrgService sysUserOrgService; + @Autowired + private RedisUtils redisUtils; + @Autowired + private SysRoleOrganizationMapper sysRoleOrganizationMapper; + @Autowired + private SysRoleMapper sysRoleMapper; @Override - public PageResult<SysDoctorVo> findList(Map<String, Object> params) { + public PageResult<SysDoctorVo> findList(Map<String, Object> params, SysUser user) { Page<SysDoctor> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); + List<SysRole> roles = user.getRoles(); + List<Map<SysRole,List<SysRoleOrganization>>> listroleOrg=new ArrayList<>(); + if (!roles.isEmpty()) { + roles.forEach(e->{ + Map<SysRole,List<SysRoleOrganization>> rolemap=new HashMap<>(); + Map<String,Object> map=new HashMap<>(); + map.put("role_id",e.getId()); + List<SysRoleOrganization> sysRoleOrganizations = sysRoleOrganizationMapper.selectByMap(map); + if(sysRoleOrganizations.size()>0){ + SysRole sysRole = sysRoleMapper.selectById(e.getId()); + rolemap.put(sysRole,sysRoleOrganizations); + listroleOrg.add(rolemap); + } + }); + } + + params.put("likes",listroleOrg); List<SysDoctor> list = baseMapper.findList(page, params); List<SysDoctorVo> listvo = new ArrayList<>(); list.forEach(e -> { @@ -146,9 +175,36 @@ beanCopier.copy(sysDoctor,sysDoc,null); sysDoc.setUserId(sysUser.getId()); baseMapper.insert(sysDoc); + //保存将sys_user_org + SysUserOrg sysUserOrg=new SysUserOrg(); + sysUserOrg.setUserId(sysUser.getId()); + sysUserOrg.setEnabled(false); + sysUserOrg.setOrgId(sysDoctor.getDepartmentId()); + sysUserOrg.setCreateTime(new Date()); + sysUserOrgService.saveOrUpdate(sysUserOrg); + //保存到Redis + boolean hset = redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrg); }else { //更新 + redisUtils.hdel(RedisConstant.USER_ORGANIZATION, sysDoctor.getUserId().toString()); +// List<SysUserOrg> sysOrganizations = JSON.parseArray(JSON.toJSONString(redisUtils.hget(RedisConstant.USER_ORGANIZATION, sysDoctor.getUserId().toString())), SysUserOrg.class); +// sysOrganizations.forEach( e-> { +// if(e.getId()==sysDoctor.getId()){ +// sysOrganizations.set(0,sysDoctor); +// } +// }); + 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(sysDoctor.getUserId()); + sysUserOrg.setEnabled(false); + sysUserOrg.setOrgId(sysDoctor.getDepartmentId()); + sysUserOrg.setCreateTime(new Date()); + sysUserOrgService.saveOrUpdate(sysUserOrg); baseMapper.updateById(sysDoctor); + redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrg); } } return true; -- Gitblit v1.8.0