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/UmsRoleServiceImpl.java |   67 +++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 24 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
index d610315..9f060c4 100644
--- 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
@@ -5,16 +5,14 @@
 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.DataDictionaryMapper;
+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.UmsAdminCacheService;
-import com.ycl.service.user.UmsRoleMenuRelationService;
-import com.ycl.service.user.UmsRoleResourceRelationService;
-import com.ycl.service.user.UmsRoleService;
+import com.ycl.service.user.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -29,19 +27,28 @@
  * Created by macro on 2018/9/30.
  */
 @Service
-public class UmsRoleServiceImpl extends ServiceImpl<UmsRoleMapper, UmsRole>implements UmsRoleService {
+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 DataDictionaryMapper dataDictionaryMapper;
+    private DataDictionary2Mapper dataDictionary2Mapper;
+
     @Override
     public boolean create(UmsRole role) {
         role.setCreateTime(new Date());
@@ -59,23 +66,24 @@
 
     @Override
     public Page<UmsRole> list(String keyword, Integer pageSize, Integer pageNum) {
-        Page<UmsRole> page = new Page<>(pageNum,pageSize);
+        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);
+        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());
-
-        LambdaQueryWrapper<DataDictionary> dicQuery = new LambdaQueryWrapper<>();
-        dicQuery.in(DataDictionary::getId, types);
-        List<DataDictionary> dics = dataDictionaryMapper.selectList(dicQuery);
-        for (UmsRole role : roles) {
-            for (DataDictionary dic : dics) {
-                if (dic.getId().equals(role.getType())) {
-                    role.setTypeText(dic.getName());
+        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());
+                    }
                 }
             }
         }
@@ -83,8 +91,19 @@
     }
 
     @Override
-    public List<UmsMenu> getMenuList(Long adminId) {
-        return umsMenuMapper.getMenuList(adminId);
+    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
@@ -101,7 +120,7 @@
     public int allocMenu(Long roleId, List<Long> menuIds) {
         //鍏堝垹闄ゅ師鏈夊叧绯�
         QueryWrapper<UmsRoleMenuRelation> wrapper = new QueryWrapper<>();
-        wrapper.lambda().eq(UmsRoleMenuRelation::getRoleId,roleId);
+        wrapper.lambda().eq(UmsRoleMenuRelation::getRoleId, roleId);
         roleMenuRelationService.remove(wrapper);
         //鎵归噺鎻掑叆鏂板叧绯�
         List<UmsRoleMenuRelation> relationList = new ArrayList<>();
@@ -119,7 +138,7 @@
     public int allocResource(Long roleId, List<Long> resourceIds) {
         //鍏堝垹闄ゅ師鏈夊叧绯�
         QueryWrapper<UmsRoleResourceRelation> wrapper = new QueryWrapper<>();
-        wrapper.lambda().eq(UmsRoleResourceRelation::getRoleId,roleId);
+        wrapper.lambda().eq(UmsRoleResourceRelation::getRoleId, roleId);
         roleResourceRelationService.remove(wrapper);
         //鎵归噺鎻掑叆鏂板叧绯�
         List<UmsRoleResourceRelation> relationList = new ArrayList<>();
@@ -138,11 +157,11 @@
     public Boolean updateStatusBatch(List<Long> ids, Integer status) {
         List<UmsRole> roles = new ArrayList<>();
         for (Long id : ids) {
-            UmsRole umsRole =  UmsRole.builder().
+            UmsRole umsRole = UmsRole.builder().
                     id(id).status(status).build();
             roles.add(umsRole);
         }
-        updateBatchById(roles,roles.size());
+        updateBatchById(roles, roles.size());
         adminCacheService.delResourceListByRoleIds(ids);
         return true;
     }

--
Gitblit v1.8.0