From 3f9ebf19e687c33287b0eaec64d4564a212f57db Mon Sep 17 00:00:00 2001 From: mg <maokecheng@163.com> Date: 星期三, 12 十月 2022 16:59:57 +0800 Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_server --- ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java | 130 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 130 insertions(+), 0 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java new file mode 100644 index 0000000..2dae3bd --- /dev/null +++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java @@ -0,0 +1,130 @@ +package com.ycl.service.user.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.entity.user.*; +import com.ycl.mapper.user.UmsMenuMapper; +import com.ycl.mapper.user.UmsResourceMapper; +import com.ycl.mapper.user.UmsRoleMapper; +import com.ycl.service.user.UmsAdminCacheService; +import com.ycl.service.user.UmsRoleMenuRelationService; +import com.ycl.service.user.UmsRoleResourceRelationService; +import com.ycl.service.user.UmsRoleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 鍚庡彴瑙掕壊绠$悊Service瀹炵幇绫� + * Created by macro on 2018/9/30. + */ +@Service +public class UmsRoleServiceImpl extends ServiceImpl<UmsRoleMapper, UmsRole>implements UmsRoleService { + @Autowired + private UmsAdminCacheService adminCacheService; + @Autowired + private UmsRoleMenuRelationService roleMenuRelationService; + @Autowired + private UmsRoleResourceRelationService roleResourceRelationService; + @Resource + private UmsMenuMapper umsMenuMapper; + @Resource + private UmsResourceMapper umsResourceMapper; + @Override + public boolean create(UmsRole role) { + role.setCreateTime(new Date()); + role.setAdminCount(0); + role.setSort(0); + return save(role); + } + + @Override + public boolean delete(List<Long> ids) { + boolean success = removeByIds(ids); + adminCacheService.delResourceListByRoleIds(ids); + return success; + } + + @Override + public Page<UmsRole> list(String keyword, Integer pageSize, Integer pageNum) { + Page<UmsRole> page = new Page<>(pageNum,pageSize); + QueryWrapper<UmsRole> wrapper = new QueryWrapper<>(); + LambdaQueryWrapper<UmsRole> lambda = wrapper.lambda(); + if(StrUtil.isNotEmpty(keyword)){ + lambda.like(UmsRole::getName,keyword); + } + return page(page,wrapper); + } + + @Override + public List<UmsMenu> getMenuList(Long adminId) { + return umsMenuMapper.getMenuList(adminId); + } + + @Override + public List<UmsMenu> listMenu(Long roleId) { + return umsMenuMapper.getMenuListByRoleId(roleId); + } + + @Override + public List<UmsResource> listResource(Long roleId) { + return umsResourceMapper.getResourceListByRoleId(roleId); + } + + @Override + public int allocMenu(Long roleId, List<Long> menuIds) { + //鍏堝垹闄ゅ師鏈夊叧绯� + QueryWrapper<UmsRoleMenuRelation> wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(UmsRoleMenuRelation::getRoleId,roleId); + roleMenuRelationService.remove(wrapper); + //鎵归噺鎻掑叆鏂板叧绯� + List<UmsRoleMenuRelation> relationList = new ArrayList<>(); + for (Long menuId : menuIds) { + UmsRoleMenuRelation relation = new UmsRoleMenuRelation(); + relation.setRoleId(roleId); + relation.setMenuId(menuId); + relationList.add(relation); + } + roleMenuRelationService.saveBatch(relationList); + return menuIds.size(); + } + + @Override + public int allocResource(Long roleId, List<Long> resourceIds) { + //鍏堝垹闄ゅ師鏈夊叧绯� + QueryWrapper<UmsRoleResourceRelation> wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(UmsRoleResourceRelation::getRoleId,roleId); + roleResourceRelationService.remove(wrapper); + //鎵归噺鎻掑叆鏂板叧绯� + List<UmsRoleResourceRelation> relationList = new ArrayList<>(); + for (Long resourceId : resourceIds) { + UmsRoleResourceRelation relation = new UmsRoleResourceRelation(); + relation.setRoleId(roleId); + relation.setResourceId(resourceId); + relationList.add(relation); + } + roleResourceRelationService.saveBatch(relationList); + adminCacheService.delResourceListByRole(roleId); + return resourceIds.size(); + } + + @Override + public Boolean updateStatusBatch(List<Long> ids, Integer status) { + List<UmsRole> roles = new ArrayList<>(); + for (Long id : ids) { + UmsRole umsRole = UmsRole.builder(). + id(id).status(status).build(); + roles.add(umsRole); + } + updateBatchById(roles,roles.size()); + adminCacheService.delResourceListByRoleIds(ids); + return true; + } +} -- Gitblit v1.8.0