From 252b4943e54f7ef930f7f7ea01ad1a8a29655dcf Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 23 十月 2023 21:15:09 +0800
Subject: [PATCH] bug修改
---
ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 168 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..9f060c4
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsRoleServiceImpl.java
@@ -0,0 +1,168 @@
+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.dto.UmsMenuNode;
+import com.ycl.entity.dict.DataDictionary;
+import com.ycl.entity.user.*;
+import com.ycl.mapper.dict.DataDictionary2Mapper;
+import com.ycl.mapper.user.UmsMenuMapper;
+import com.ycl.mapper.user.UmsResourceMapper;
+import com.ycl.mapper.user.UmsRoleMapper;
+import com.ycl.service.user.*;
+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;
+import java.util.stream.Collectors;
+
+/**
+ * 鍚庡彴瑙掕壊绠$悊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;
+
+ private UmsMenuService umsMenuService;
+
+ @Autowired
+ public void setUmsMenuService(UmsMenuService umsMenuService) {
+ this.umsMenuService = umsMenuService;
+ }
+
+ @Resource
+ private UmsMenuMapper umsMenuMapper;
+ @Resource
+ private UmsResourceMapper umsResourceMapper;
+ @Resource
+ private DataDictionary2Mapper dataDictionary2Mapper;
+
+ @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);
+ }
+ Page<UmsRole> resultPage = page(page, wrapper);
+ List<UmsRole> roles = resultPage.getRecords();
+ List<Long> types = roles.stream().map(UmsRole::getType).collect(Collectors.toList());
+ if (types.size() > 0) {
+ LambdaQueryWrapper<DataDictionary> dicQuery = new LambdaQueryWrapper<>();
+ dicQuery.in(DataDictionary::getId, types);
+ List<DataDictionary> dics = dataDictionary2Mapper.selectList(dicQuery);
+ for (UmsRole role : roles) {
+ for (DataDictionary dic : dics) {
+ if (dic.getId().equals(role.getType())) {
+ role.setTypeText(dic.getName());
+ }
+ }
+ }
+ }
+ return resultPage;
+ }
+
+ @Override
+ public List<UmsMenuNode> getMenuList(Long adminId) {
+ List<UmsMenu> menuList = umsMenuMapper.getMenuList(adminId);
+ List<UmsMenuNode> result = menuList.stream()
+ .filter(menu -> menu.getParentId().equals(0L))
+ .map(menu -> umsMenuService.covertMenuNode(menu, menuList)).collect(Collectors.toList());
+ return result;
+ }
+
+
+ @Override
+ public List<UmsRole> getRoleListByCodes(List<String> codes) {
+ LambdaQueryWrapper<UmsRole> wrapper = new LambdaQueryWrapper<UmsRole>().in(UmsRole::getCode, codes);
+ return baseMapper.selectList(wrapper);
+ }
+
+ @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