diff --git a/apps/system/services/role.go b/apps/system/services/role.go index 6b93c2b..1acd4ad 100644 --- a/apps/system/services/role.go +++ b/apps/system/services/role.go @@ -134,6 +134,10 @@ func (m *sysRoleModel) GetRoleOrganizationId(data entity.SysRole) []int64 { func (m *sysRoleModel) FindOrganizationsByRoleId(roleId int64) (entity.SysRoleAuth, error) { var roleData entity.SysRoleAuth - err := global.Db.Raw("SELECT sys_roles.data_scope, GROUP_CONCAT(sys_role_organizations.organization_id) as org FROM sys_roles LEFT JOIN sys_role_organizations ON sys_roles.role_id = sys_role_organizations.role_id WHERE sys_roles.role_id = ? GROUP BY sys_roles.role_id", roleId).Scan(&roleData).Error + GROUP_CONCAT := "GROUP_CONCAT(sys_role_organizations.organization_id) as org" + if global.Conf.Server.DbType == "postgresql" { + GROUP_CONCAT = "string_agg(CAST(sys_role_organizations.organization_id AS VARCHAR), ',') as org" + } + err := global.Db.Raw("SELECT sys_roles.data_scope, "+GROUP_CONCAT+" FROM sys_roles LEFT JOIN sys_role_organizations ON sys_roles.role_id = sys_role_organizations.role_id WHERE sys_roles.role_id = ? GROUP BY sys_roles.role_id", roleId).Scan(&roleData).Error return roleData, err } diff --git a/config.yml b/config.yml index d010041..4e183b4 100644 --- a/config.yml +++ b/config.yml @@ -15,7 +15,7 @@ server: rate: enable: true rate-num: 100 - db-type: mysql + db-type: postgresql # 是否开启数据库表初始化 isInitTable: false excel-dir: ./resource/excel/