yangys
2025-09-13 a0f3e98fdd9472af3c78b42423a7e3fa6fb92eba
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
/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
 * not liable for any claims arising from secondary or illegal development.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
package org.springblade.system.service;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.system.pojo.entity.Role;
import org.springblade.system.pojo.vo.RoleVO;
 
import jakarta.validation.constraints.NotEmpty;
 
import java.util.List;
 
/**
 * 服务类
 *
 * @author Chill
 */
public interface IRoleService extends IService<Role> {
 
    /**
     * 自定义分页
     *
     * @param page 分页
     * @param role 角色
     * @return 分页
     */
    IPage<RoleVO> selectRolePage(IPage<RoleVO> page, RoleVO role);
 
    /**
     * 树形结构
     *
     * @param tenantId 租户id
     * @return 角色列表
     */
    List<RoleVO> tree(String tenantId);
 
    /**
     * 权限配置
     *
     * @param roleIds      角色id集合
     * @param menuIds      菜单id集合
     * @param dataScopeIds 数据权限id集合
     * @param apiScopeIds  接口权限id集合
     * @return 是否成功
     */
    boolean grant(@NotEmpty List<Long> roleIds, List<Long> menuIds, List<Long> dataScopeIds, List<Long> apiScopeIds);
 
    /**
     * 获取角色ID
     *
     * @param tenantId  租户id
     * @param roleNames 角色名
     * @return 角色id
     */
    String getRoleIds(String tenantId, String roleNames);
 
    /**
     * 获取角色名
     *
     * @param roleIds 角色id
     * @return 角色名
     */
    List<String> getRoleNames(String roleIds);
 
    /**
     * 获取角色名
     *
     * @param roleIds 角色id
     * @return 角色别名
     */
    List<String> getRoleAliases(String roleIds);
 
    /**
     * 提交
     *
     * @param role 角色
     * @return boolean
     */
    boolean submit(Role role);
 
    /**
     * 角色信息查询
     *
     * @param roleName 角色名
     * @param parentId 父级id
     * @return 角色列表
     */
    List<RoleVO> search(String roleName, Long parentId);
 
    /**
     * 删除角色
     *
     * @param ids 主键集合
     * @return boolean
     */
    boolean removeRole(String ids);
 
    /**
     * 获取角色别名列表
     *
     * @param tenantId 租户id
     * @return 别名列表
     */
    List<Role> alias(String tenantId);
 
}