add: multi-tenancy
This commit is contained in:
@@ -18,9 +18,11 @@ var NewSysUserImpl = &SysUserImpl{
|
|||||||
selectSql: `select
|
selectSql: `select
|
||||||
u.user_id, u.dept_id, u.tenant_id, u.user_name, u.nick_name, u.user_type, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
u.user_id, u.dept_id, u.tenant_id, u.user_name, u.nick_name, u.user_type, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||||
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
||||||
|
t.tenant_id, t.parent_id, t.ancestors, t.tenant_name, t.order_num, t.tenancy_type, t.tenancy_key, t.status as tenant_status,
|
||||||
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
|
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
|
left join sys_tenant t on u.tenant_id = t.tenant_id
|
||||||
left join sys_user_role ur on u.user_id = ur.user_id
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
left join sys_role r on r.role_id = ur.role_id`,
|
left join sys_role r on r.role_id = ur.role_id`,
|
||||||
|
|
||||||
@@ -60,7 +62,7 @@ var NewSysUserImpl = &SysUserImpl{
|
|||||||
sysTenantMap: map[string]string{
|
sysTenantMap: map[string]string{
|
||||||
"tenant_id": "TenantID",
|
"tenant_id": "TenantID",
|
||||||
"parent_id": "ParentID",
|
"parent_id": "ParentID",
|
||||||
"Tenant_name": "TenantName",
|
"tenant_name": "TenantName",
|
||||||
"ancestors": "Ancestors",
|
"ancestors": "Ancestors",
|
||||||
"order_num": "OrderNum",
|
"order_num": "OrderNum",
|
||||||
"tenancy_type": "TenancyType",
|
"tenancy_type": "TenancyType",
|
||||||
@@ -186,13 +188,13 @@ func (r *SysUserImpl) SelectUserPage(query map[string]any, dataScopeSQL string)
|
|||||||
params = append(params, parse.Number(endTime.(string)))
|
params = append(params, parse.Number(endTime.(string)))
|
||||||
}
|
}
|
||||||
if v, ok := query["deptId"]; ok && v != "" {
|
if v, ok := query["deptId"]; ok && v != "" {
|
||||||
conditions = append(conditions, "(u.dept_id = ? or u.dept_id in ( select t.dept_id from sys_dept t where find_in_set(?, ancestors) ))")
|
conditions = append(conditions, "(u.dept_id = ? or u.dept_id in ( select t.dept_id from sys_dept t where find_in_set(?, t.ancestors) ))")
|
||||||
params = append(params, v)
|
params = append(params, v)
|
||||||
params = append(params, v)
|
params = append(params, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := query["tenantId"]; ok && v != "" {
|
if v, ok := query["tenantId"]; ok && v != "" {
|
||||||
conditions = append(conditions, "(u.tenant_id = ? or u.tenant_id in ( select n.tenant_id from sys_tenant n where find_in_set(?, ancestors) ))")
|
conditions = append(conditions, "(u.tenant_id = ? or u.tenant_id in ( select tt.tenant_id from sys_tenant tt where find_in_set(?, tt.ancestors) ))")
|
||||||
params = append(params, v)
|
params = append(params, v)
|
||||||
params = append(params, v)
|
params = append(params, v)
|
||||||
}
|
}
|
||||||
@@ -294,6 +296,7 @@ func (r *SysUserImpl) SelectAllocatedPage(query map[string]any, dataScopeSQL str
|
|||||||
// 查询数量 长度为0直接返回
|
// 查询数量 长度为0直接返回
|
||||||
totalSql := `select count(distinct u.user_id) as 'total' from sys_user u
|
totalSql := `select count(distinct u.user_id) as 'total' from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
|
left join sys_tenant t on u.tenant_id = t.tenant_id
|
||||||
left join sys_user_role ur on u.user_id = ur.user_id
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
left join sys_role r on r.role_id = ur.role_id`
|
left join sys_role r on r.role_id = ur.role_id`
|
||||||
totalRows, err := datasource.RawDB("", totalSql+whereSql+dataScopeSQL, params)
|
totalRows, err := datasource.RawDB("", totalSql+whereSql+dataScopeSQL, params)
|
||||||
@@ -316,10 +319,11 @@ func (r *SysUserImpl) SelectAllocatedPage(query map[string]any, dataScopeSQL str
|
|||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
querySql := `select distinct
|
querySql := `select distinct
|
||||||
u.user_id, u.dept_id, u.user_name, u.nick_name, u.email,
|
u.user_id, u.dept_id, u.tenant_id, u.user_name, u.nick_name, u.email,
|
||||||
u.phonenumber, u.status, u.create_time, d.dept_name
|
u.phonenumber, u.status, u.create_time, d.dept_name, t.tenant_name
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
|
left join sys_tenant t on u.tenant_id = t.tenant_id
|
||||||
left join sys_user_role ur on u.user_id = ur.user_id
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
left join sys_role r on r.role_id = ur.role_id`
|
left join sys_role r on r.role_id = ur.role_id`
|
||||||
querySql = querySql + whereSql + dataScopeSQL + pageSql
|
querySql = querySql + whereSql + dataScopeSQL + pageSql
|
||||||
@@ -336,10 +340,12 @@ func (r *SysUserImpl) SelectAllocatedPage(query map[string]any, dataScopeSQL str
|
|||||||
// SelectUserList 根据条件查询用户列表
|
// SelectUserList 根据条件查询用户列表
|
||||||
func (r *SysUserImpl) SelectUserList(sysUser model.SysUser, dataScopeSQL string) []model.SysUser {
|
func (r *SysUserImpl) SelectUserList(sysUser model.SysUser, dataScopeSQL string) []model.SysUser {
|
||||||
selectUserSql := `select
|
selectUserSql := `select
|
||||||
u.user_id, u.dept_id, u.tenant_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
|
u.user_id, u.dept_id, u.tenant_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||||
|
d.dept_name, d.leader
|
||||||
|
t.tenant_name, t.tenancy_type, t.tenancy_key
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
left join sys_tenant d on u.tenant_id = t.tenant_id`
|
left join sys_tenant t on u.tenant_id = t.tenant_id`
|
||||||
|
|
||||||
// 查询条件拼接
|
// 查询条件拼接
|
||||||
var conditions []string
|
var conditions []string
|
||||||
|
|||||||
Reference in New Issue
Block a user