后端开发
租户机制

多租户机制

S7 数智化审计平台 支持多租户机制,每个租户拥有独立的用户、菜单、查询模型等资源。

租户管理

路径: 开放平台 -> 租户管理

新增租户

新增用户操作,系统会在后台处理以下事项:

  • 新增一条租户记录到表 a_sys_tenant
  • 新增一条租户管理员记录到表 a_sys_user 中,默认登录名 admin 密码为 123456
  • 新增一个顶级机构记录到表 a_sys_org(pid 为 null 即为顶级机构)
  • 新增一条记录关联租户管理员和顶级机构到表 a_sys_user2org
  • 新增一条租户管理员角色记录到表 a_prod_role
  • 新增一条租户管理员用户角色记录到表 a_prod_role2user

租户管理相关 API

新增租户服务

新增一条租户信息

POST /ais/api/v1/super/tenant/add?name=${name} HTTP/1.1
Host: http://<S7平台地址>

删除租户

删除一条租户信息

GET http://$HOST/ais/api/v1/super/tenant/delete?id=${id} HTTP/1.1

使用租户机制

模型中,可以直接使用环境变量 #FTENANTID# 获取当前租户 ID,然后根据租户 ID 进行数据过滤。

SELECT * FROM table_name WHERE 1=1 AND tenantId = '#FTENANTID#'

租户架构

租户架构如下:

  • 租户 1..n 用户
  • 租户 1..n 机构
  • 租户 1..n 角色

租户具有独立的用户、机构、角色,租户管理员可以管理租户下的用户、机构、角色。

但在以下资源中,租户间是共享的:

  • 菜单
  • 查询模型
  • 数据源
  • 表单
  • 流程

租户实现模块在 product 中,如果需要自定义租户实现,可以在 product 中实现 TenantService 接口,然后在 application.yml 中配置 tenantService 为自定义实现类。