liriming
2024-12-03 97f3c16ac595493405e8cf76399dc703c088ef6f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.iailab.module.system.service.permission;
 
 
import com.iailab.module.system.controller.admin.permission.vo.menu.MenuListReqVO;
import com.iailab.module.system.controller.admin.permission.vo.menu.MenuSaveVO;
import com.iailab.module.system.dal.dataobject.permission.MenuDO;
 
import java.util.Collection;
import java.util.List;
 
/**
 * 菜单 Service 接口
 *
 * @author iailab
 */
public interface MenuService {
 
    /**
     * 创建菜单
     *
     * @param createReqVO 菜单信息
     * @return 创建出来的菜单编号
     */
    Long createMenu(MenuSaveVO createReqVO);
 
    /**
     * 更新菜单
     *
     * @param updateReqVO 菜单信息
     */
    void updateMenu(MenuSaveVO updateReqVO);
 
    /**
     * 删除菜单
     *
     * @param id 菜单编号
     */
    void deleteMenu(Long id);
 
    /**
     * 获得所有菜单列表
     *
     * @return 菜单列表
     */
    List<MenuDO> getMenuList();
 
    /**
     * 基于租户,筛选菜单列表
     * 注意,如果是系统租户,返回的还是全菜单
     *
     * @param reqVO 筛选条件请求 VO
     * @return 菜单列表
     */
    List<MenuDO> getMenuListByTenant(MenuListReqVO reqVO);
 
    /**
     * 基于租户,筛选应用菜单列表
     * 注意,如果是系统租户,返回的还是全菜单
     *
     * @param reqVO 筛选条件请求 VO
     * @return 应用菜单列表
     */
    List<MenuDO> getAppMenuListByTenant(MenuListReqVO reqVO);
 
    /**
     * 过滤掉关闭的菜单及其子菜单
     *
     * @param list 菜单列表
     * @return 过滤后的菜单列表
     */
    List<MenuDO> filterDisableMenus(List<MenuDO> list);
 
    /**
     * 过滤掉业务菜单或系统菜单及其子菜单
     *
     * @param list 菜单列表
     * @return 过滤后的菜单列表
     */
    List<MenuDO> filterMenus(List<MenuDO> list, String type);
 
    /**
     * 筛选菜单列表
     *
     * @param reqVO 筛选条件请求 VO
     * @return 菜单列表
     */
    List<MenuDO> getMenuList(MenuListReqVO reqVO);
 
    /**
     * 筛选菜单列表
     *
     * @param reqVO 筛选条件请求 VO
     * @return 菜单列表
     */
    List<MenuDO> getAppMenuList(Long tenantId, MenuListReqVO reqVO);
 
    /**
     * 获得权限对应的菜单编号数组
     *
     * @param permission 权限标识
     * @return 数组
     */
    List<Long> getMenuIdListByPermissionFromCache(String permission);
 
    /**
     * 获得菜单
     *
     * @param id 菜单编号
     * @return 菜单
     */
    MenuDO getMenu(Long id);
 
    /**
     * 根据应用id获得菜单
     *
     * @param id 菜单编号
     * @return 菜单
     */
    MenuDO getMenuByAppId(Long id);
 
    /**
     * 获得菜单数组
     *
     * @param ids 菜单编号数组
     * @return 菜单数组
     */
    List<MenuDO> getMenuList(Collection<Long> ids);
 
    /**
     * 根据父id查询菜单
     * @param ids
     * @return
     */
    List<MenuDO> selectListByParentId(Collection<Long> ids);
 
}