fix: issue of tenant status for all features

This commit is contained in:
2024-09-30 16:40:37 +08:00
parent 41693db39e
commit be63431402
13 changed files with 131 additions and 106 deletions

View File

@@ -16,15 +16,15 @@ import (
// 实例化数据层 SysUserImpl 结构体
var NewSysUserImpl = &SysUserImpl{
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,
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
from sys_user u
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_role r on r.role_id = ur.role_id`,
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,
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
from sys_user u
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_role r on r.role_id = ur.role_id `,
sysUserMap: map[string]string{
"user_id": "UserID",
@@ -146,11 +146,11 @@ func (r *SysUserImpl) convertResultRows(rows []map[string]any) []model.SysUser {
// SelectUserPage 根据条件分页查询用户列表
func (r *SysUserImpl) SelectUserPage(query map[string]any, dataScopeSQL string) map[string]any {
selectUserTotalSql := `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_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_role r on r.role_id = ur.role_id`
from sys_user u
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_role r on r.role_id = ur.role_id `
// 查询条件拼接
var conditions []string
@@ -269,11 +269,11 @@ func (r *SysUserImpl) SelectAllocatedPage(query map[string]any, dataScopeSQL str
params = append(params, roleId)
} else {
conditions = append(conditions, `(r.role_id != ? or r.role_id IS NULL)
and u.user_id not in (
select u.user_id from sys_user u
inner join sys_user_role ur on u.user_id = ur.user_id
and ur.role_id = ?
)`)
and u.user_id not in (
select u.user_id from sys_user u
inner join sys_user_role ur on u.user_id = ur.user_id
and ur.role_id = ?
)`)
params = append(params, roleId)
params = append(params, roleId)
}
@@ -295,10 +295,10 @@ func (r *SysUserImpl) SelectAllocatedPage(query map[string]any, dataScopeSQL str
// 查询数量 长度为0直接返回
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_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_role r on r.role_id = ur.role_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_role r on r.role_id = ur.role_id `
totalRows, err := datasource.RawDB("", totalSql+whereSql+dataScopeSQL, params)
if err != nil {
logger.Errorf("total err => %v", err)
@@ -319,13 +319,13 @@ func (r *SysUserImpl) SelectAllocatedPage(query map[string]any, dataScopeSQL str
// 查询数据
querySql := `select distinct
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, t.tenant_name
from sys_user u
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_role r on r.role_id = ur.role_id`
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, t.tenant_name
from sys_user u
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_role r on r.role_id = ur.role_id`
querySql = querySql + whereSql + dataScopeSQL + pageSql
results, err := datasource.RawDB("", querySql, params)
if err != nil {
@@ -340,12 +340,13 @@ func (r *SysUserImpl) SelectAllocatedPage(query map[string]any, dataScopeSQL str
// SelectUserList 根据条件查询用户列表
func (r *SysUserImpl) SelectUserList(sysUser model.SysUser, dataScopeSQL string) []model.SysUser {
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
t.tenant_name, t.tenancy_type, t.tenancy_key
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_tenant t on u.tenant_id = t.tenant_id`
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
left join sys_dept d on u.dept_id = d.dept_id
left join sys_tenant t on u.tenant_id = t.tenant_id and t.status = 1`
// 查询条件拼接
var conditions []string