傅行帆 5 år sedan
förälder
incheckning
cf75a1a8e5

+ 23
- 1
src/main/java/com/huiju/estateagents/service/impl/TaRoleServiceImpl.java Visa fil

@@ -2,6 +2,7 @@ package com.huiju.estateagents.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.huiju.estateagents.common.CommConstant;
5 6
 import com.huiju.estateagents.entity.*;
6 7
 import com.huiju.estateagents.mapper.*;
7 8
 import com.huiju.estateagents.service.ITaRoleService;
@@ -10,6 +11,7 @@ import org.springframework.stereotype.Service;
10 11
 
11 12
 import java.util.ArrayList;
12 13
 import java.util.List;
14
+import java.util.stream.Collectors;
13 15
 
14 16
 /**
15 17
  * <p>
@@ -36,6 +38,12 @@ public class TaRoleServiceImpl extends ServiceImpl<TaRoleMapper, TaRole> impleme
36 38
     @Autowired
37 39
     TaRoleButtonMapper taRoleButtonMapper;
38 40
 
41
+    @Autowired
42
+    private TaAdvancedControllerMapper taAdvancedControllerMapper;
43
+
44
+    @Autowired
45
+    private SysAdvancedConfigRelationMapper sysAdvancedConfigRelationMapper;
46
+
39 47
     @Override
40 48
     public List<TaRole> getRolesByUser(Integer userId) {
41 49
         return taRoleMapper.getRolesByUser(userId);
@@ -48,12 +56,26 @@ public class TaRoleServiceImpl extends ServiceImpl<TaRoleMapper, TaRole> impleme
48 56
         QueryWrapper<TaRoleMenu> taRoleMenuQuery= new QueryWrapper<>();
49 57
         taRoleMenuQuery.eq("role_id",id);
50 58
        List<TaRoleMenu> taRoleMenusList = taRoleMenuMapper.selectList(taRoleMenuQuery);
59
+
60
+        //添加高级配置的过滤条件
61
+        List<TaAdvancedController> taAdvancedControllerList = taAdvancedControllerMapper.selectList(new QueryWrapper<TaAdvancedController>().eq("org_id", orgId));
62
+
63
+        //需要过滤的菜单
64
+        QueryWrapper<SysAdvancedConfigRelation> sysAdvancedConfigRelationQueryWrapper = new QueryWrapper<>();
65
+        sysAdvancedConfigRelationQueryWrapper.eq("target_type", CommConstant.ADVANCED_TYPE_MENU);
66
+        sysAdvancedConfigRelationQueryWrapper.notIn(taAdvancedControllerList.size() > 0,"advanced_config_id",taAdvancedControllerList.stream().map(TaAdvancedController::getAdvancedConfigId).collect(Collectors.toList()));
67
+        List<SysAdvancedConfigRelation> sysAdvancedConfigRelations = sysAdvancedConfigRelationMapper.selectList(sysAdvancedConfigRelationQueryWrapper);
68
+
51 69
        // 同过menu_id查询当前菜单
52 70
          List<SysMenu> sysMenuList = new ArrayList<>();
53 71
         for (TaRoleMenu taRoleMenu :taRoleMenusList){
54 72
             SysMenu sysMenu = sysMenuMapper.selectById(taRoleMenu.getMenuId());
55 73
             sysMenuList.add(sysMenu);
56
-
74
+            for (SysAdvancedConfigRelation sysAdvancedConfigRelation : sysAdvancedConfigRelations){
75
+                if (taRoleMenu.getMenuId().equals(Integer.valueOf(sysAdvancedConfigRelation.getTargetId()))){
76
+                    sysMenuList.remove(sysMenu);
77
+                }
78
+            }
57 79
         }
58 80
         // 查询按钮
59 81
         QueryWrapper<TaRoleButton> taRoleButtonQuery= new QueryWrapper<>();