潘志宝
2024-08-15 81c220fd9e0ea6c8ee84c9b766885b0322b4038c
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.tenant;
H 2
3 import com.iailab.framework.common.pojo.PageResult;
4 import com.iailab.framework.tenant.core.context.TenantContextHolder;
5 import com.iailab.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO;
6 import com.iailab.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO;
7 import com.iailab.module.system.dal.dataobject.tenant.TenantDO;
8 import com.iailab.module.system.service.tenant.handler.TenantInfoHandler;
9 import com.iailab.module.system.service.tenant.handler.TenantMenuHandler;
10
11 import javax.validation.Valid;
12 import java.util.List;
13 import java.util.Set;
14
15 /**
16  * 租户 Service 接口
17  *
18  * @author iailab
19  */
20 public interface TenantService {
21
22     /**
23      * 创建租户
24      *
25      * @param createReqVO 创建信息
26      * @return 编号
27      */
28     Long createTenant(@Valid TenantSaveReqVO createReqVO);
29
30     /**
31      * 更新租户
32      *
33      * @param updateReqVO 更新信息
34      */
35     void updateTenant(@Valid TenantSaveReqVO updateReqVO);
36
37     /**
38      * 更新租户的角色菜单
39      *
40      * @param tenantId 租户编号
41      * @param menuIds 菜单编号数组
42      */
43     void updateTenantRoleMenu(Long tenantId, Set<Long> menuIds);
44
45     /**
46      * 删除租户
47      *
48      * @param id 编号
49      */
50     void deleteTenant(Long id);
51
52     /**
53      * 获得租户
54      *
55      * @param id 编号
56      * @return 租户
57      */
58     TenantDO getTenant(Long id);
59
60     /**
61      * 获得租户分页
62      *
63      * @param pageReqVO 分页查询
64      * @return 租户分页
65      */
66     PageResult<TenantDO> getTenantPage(TenantPageReqVO pageReqVO);
67
68     /**
69      * 获得名字对应的租户
70      *
71      * @param name 租户名
72      * @return 租户
73      */
74     TenantDO getTenantByName(String name);
75
76     /**
77      * 获得域名对应的租户
78      *
79      * @param website 域名
80      * @return 租户
81      */
82     TenantDO getTenantByWebsite(String website);
83
84     /**
85      * 获得使用指定套餐的租户数量
86      *
87      * @param packageId 租户套餐编号
88      * @return 租户数量
89      */
90     Long getTenantCountByPackageId(Long packageId);
91
92     /**
93      * 获得使用指定套餐的租户数组
94      *
95      * @param packageId 租户套餐编号
96      * @return 租户数组
97      */
98     List<TenantDO> getTenantListByPackageId(Long packageId);
99
100     /**
101      * 进行租户的信息处理逻辑
102      * 其中,租户编号从 {@link TenantContextHolder} 上下文中获取
103      *
104      * @param handler 处理器
105      */
106     void handleTenantInfo(TenantInfoHandler handler);
107
108     /**
109      * 进行租户的菜单处理逻辑
110      * 其中,租户编号从 {@link TenantContextHolder} 上下文中获取
111      *
112      * @param handler 处理器
113      */
114     void handleTenantMenu(TenantMenuHandler handler);
115
116     /**
117      * 获得所有租户
118      *
119      * @return 租户编号数组
120      */
121     List<Long> getTenantIdList();
122
123     /**
124      * 校验租户是否合法
125      *
126      * @param id 租户编号
127      */
128     void validTenant(Long id);
129
130 }