From 7ef4892f9f24f941aca37e6b3991b808a0aca619 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期五, 08 九月 2023 11:16:35 +0800 Subject: [PATCH] 优化 --- ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java | 75 +++++++++++++++++++++++++++++++++---- 1 files changed, 67 insertions(+), 8 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java index e9cf66c..9a792f3 100644 --- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java @@ -4,19 +4,24 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.api.BasePageDTO; -import com.ycl.entity.depart.SccgDepart; -import com.ycl.entity.user.UmsAdmin; -import com.ycl.entity.user.UmsDepartManage; +import com.ycl.entity.depart.UmsDepart; +import com.ycl.entity.user.*; +import com.ycl.mapper.user.AdminMenuRelationMapper; +import com.ycl.mapper.user.UmsAdminRoleRelationMapper; import com.ycl.mapper.user.UmsDepartManageMapper; -import com.ycl.service.depart.SccgDepartService; -import com.ycl.service.user.UmsDepartManageService; +import com.ycl.mapper.user.UmsRoleMenuRelationMapper; +import com.ycl.service.depart.UmsDepartService; import com.ycl.service.user.UmsAdminService; +import com.ycl.service.user.UmsDepartManageService; import com.ycl.vo.depart.DepartVO; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -32,9 +37,15 @@ @Resource private UmsDepartManageMapper umsDepartManageMapper; @Resource - private SccgDepartService sccgDepartService; + private UmsDepartService sccgDepartService; @Resource private UmsAdminService umsAdminService; + @Resource + UmsAdminRoleRelationMapper umsAdminRoleRelationMapper; + @Resource + AdminMenuRelationMapper adminMenuRelationMapper; + @Resource + UmsRoleMenuRelationMapper roleMenuRelationMapper; @Override public List<UmsDepartManage> queryByDepartId(Long departId) { @@ -72,7 +83,7 @@ DepartVO.AdminDepartInfoVO adminDepartInfoVO = null; for (UmsDepartManage umsAdminDepart : departList) { adminDepartInfoVO = new DepartVO.AdminDepartInfoVO(); - SccgDepart sccgDepart = sccgDepartService.loadDepartById(umsAdminDepart.getDepartId()); + UmsDepart sccgDepart = sccgDepartService.loadDepartById(umsAdminDepart.getDepartId()); UmsAdmin umsAdmin = umsAdminService.getById(userId); adminDepartInfoVO.setDepartId(umsAdminDepart.getDepartId()); adminDepartInfoVO.setDepartName(sccgDepart.getDepartName()); @@ -87,4 +98,52 @@ return basePageDTO; } -} + @Override + public void userUpdateRoles(Long id, List<Long> roles) { + //瑙i櫎鐢ㄦ埛瑙掕壊缁戝畾 + umsAdminRoleRelationMapper.delete(new LambdaQueryWrapper<UmsAdminRoleRelation>().eq(UmsAdminRoleRelation::getAdminId, id)); + //瑙i櫎鐢ㄦ埛缁戝畾瑙掕壊缁戝畾鑿滃崟 + adminMenuRelationMapper.delete(new LambdaQueryWrapper<AdminMenuRelation>().eq(AdminMenuRelation::getAdminId, id)); + //缁戝畾瑙掕壊浜庣敤鎴� + if (!roles.isEmpty()) { + for (Long role : roles) { + UmsAdminRoleRelation urr = new UmsAdminRoleRelation(); + urr.setAdminId(id); + urr.setRoleId(role); + umsAdminRoleRelationMapper.insert(urr); + } + } + //缁戝畾鑿滃崟浜庣敤鎴� + ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>(); + for (Long role : roles) { + umsRoleMenuRelations.addAll(roleMenuRelationMapper + .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() + .eq(UmsRoleMenuRelation::getRoleId, role))); + } + umsRoleMenuRelations + .stream() + .map(item -> item.getMenuId()) + .collect(Collectors.toList()) + .stream() + .distinct() + .collect(Collectors.toList()) + .stream() + .forEach(item -> { + AdminMenuRelation adminMenuRelation = new AdminMenuRelation(); + adminMenuRelation.setAdminId(id); + adminMenuRelation.setMenuId(item); + adminMenuRelationMapper.insert(adminMenuRelation); + }); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void userUpdateDepart(Long userId,Long departId) { + umsDepartManageMapper.delete(new LambdaQueryWrapper<UmsDepartManage>().eq(UmsDepartManage::getUserId,userId)); + UmsDepartManage umsDepartManage = new UmsDepartManage(); + umsDepartManage.setUserId(userId); + umsDepartManage.setCreateTime(new Date()); + umsDepartManage.setDepartId(departId); + umsDepartManageMapper.insert(umsDepartManage); + } +} \ No newline at end of file -- Gitblit v1.8.0