refactor: streamline SQL queries in list_application.sql, list_application_user.sql, and list_application_user_ee.sql

This commit is contained in:
wxg0103 2025-07-15 09:49:10 +08:00
parent 12dbed5f7c
commit bd1f75a4ae
3 changed files with 87 additions and 90 deletions

View File

@ -1,32 +1,22 @@
select * select *
from (select application."id"::text, from (select application."id"::text, application."name",
application."name", application."desc",
application. "desc", application."is_publish",
application. "is_publish",
application."type", application."type",
'application' as "resource_type", 'application' as "resource_type",
application."workspace_id", application."workspace_id",
application. "folder_id", application."folder_id",
application."user_id", application."user_id",
"user"."nick_name" as "nick_name", "user"."nick_name" as "nick_name",
application."create_time", application."create_time",
application."update_time", application."update_time",
application."publish_time" application."publish_time",
from application left join "user" on user_id = "user".id application.icon
${application_custom_sql} from application
left join "user" on user_id = "user".id
${application_custom_sql}
UNION UNION
select application_folder."id", select application_folder."id", application_folder."name", application_folder."desc", true as "is_publish", 'folder' as "type", 'folder' as "resource_type", application_folder."workspace_id", application_folder."parent_id" as "folder_id", application_folder."user_id", "user"."nick_name" as "nick_name", application_folder."create_time", application_folder."update_time", null as "publish_time", null as "icon"
application_folder."name", from application_folder left join "user"
application_folder."desc", on user_id = "user".id ${folder_query_set}) temp
true as "is_publish", ${application_query_set}
'folder' as "type",
'folder' as "resource_type",
application_folder."workspace_id",
application_folder."parent_id" as "folder_id",
application_folder."user_id",
"user"."nick_name" as "nick_name",
application_folder."create_time",
application_folder."update_time",
null as "publish_time"
from application_folder left join "user" on user_id = "user".id ${folder_query_set}) temp
${application_query_set}

View File

@ -1,35 +1,36 @@
select * select *
from (select application."id"::text, from (select application."id"::text, application."name",
application."name", application."desc",
application. "desc", application."is_publish",
application. "is_publish",
application."type", application."type",
'application' as "resource_type", 'application' as "resource_type",
application."workspace_id", application."workspace_id",
application. "folder_id", application."folder_id",
application."user_id", application."user_id",
"user"."nick_name" as "nick_name", "user"."nick_name" as "nick_name",
application."create_time", application."create_time",
application."update_time", application."update_time",
application."publish_time" application."publish_time",
from application left join "user" on user_id = "user".id application.icon
from application
left join "user" on user_id = "user".id
where application."id" in (select target where application."id" in (select target
from workspace_user_resource_permission from workspace_user_resource_permission ${workspace_user_resource_permission_query_set}
${workspace_user_resource_permission_query_set} and 'VIEW' = any (permission_list))
and 'VIEW' = any (permission_list)) UNION
UNION select application_folder."id",
select application_folder."id", application_folder."name",
application_folder."name", application_folder."desc",
application_folder."desc", true as "is_publish",
true as "is_publish", 'folder' as "type",
'folder' as "type", 'folder' as "resource_type",
'folder' as "resource_type", application_folder."workspace_id",
application_folder."workspace_id", application_folder."parent_id" as "folder_id",
application_folder."parent_id" as "folder_id", application_folder."user_id",
application_folder."user_id", "user"."nick_name" as "nick_name",
"user"."nick_name" as "nick_name", application_folder."create_time",
application_folder."create_time", application_folder."update_time",
application_folder."update_time", null as "publish_time",
null as "publish_time" null as "icon"
from application_folder left join "user" on user_id = "user".id ${folder_query_set}) temp from application_folder
${application_query_set} left join "user" on user_id = "user".id ${folder_query_set}) temp ${application_query_set}

View File

@ -1,48 +1,54 @@
select * select *
from (select application."id"::text, from (select application."id"::text, application."name",
application."name", application."desc",
application. "desc", application."is_publish",
application. "is_publish",
application."type", application."type",
'application' as "resource_type", 'application' as "resource_type",
application."workspace_id", application."workspace_id",
application. "folder_id", application."folder_id",
application."user_id", application."user_id",
"user"."nick_name" as "nick_name", "user"."nick_name" as "nick_name",
application."create_time", application."create_time",
application."update_time", application."update_time",
application."publish_time" application."publish_time",
from application left join "user" on user_id = "user".id application.icon
from application
left join "user" on user_id = "user".id
where "application".id in (select target where "application".id in (select target
from workspace_user_resource_permission from workspace_user_resource_permission ${workspace_user_resource_permission_query_set}
${workspace_user_resource_permission_query_set} and case
and case when auth_type = 'ROLE' then
when auth_type = 'ROLE' then 'ROLE' = any (permission_list)
'ROLE' = any (permission_list) and
and 'APPLICATION:READ' in (select (case
'APPLICATION:READ' in (select (case when user_role_relation.role_id = any (array ['USER']) THEN 'APPLICATION:READ' else role_permission.permission_id END) when user_role_relation.role_id = any (array['USER'])
from role_permission role_permission THEN 'APPLICATION:READ'
right join user_role_relation user_role_relation else role_permission.permission_id END)
on user_role_relation.role_id=role_permission.role_id from role_permission role_permission
where user_role_relation.user_id=workspace_user_resource_permission.user_id right join user_role_relation user_role_relation
and user_role_relation.workspace_id=workspace_user_resource_permission.workspace_id) on user_role_relation.role_id = role_permission.role_id
where user_role_relation.user_id = workspace_user_resource_permission.user_id
and user_role_relation.workspace_id =
workspace_user_resource_permission.workspace_id)
else else
'VIEW' = any (permission_list) 'VIEW' = any (permission_list)
end) end)
UNION UNION
select application_folder."id", select application_folder."id",
application_folder."name", application_folder."name",
application_folder."desc", application_folder."desc",
true as "is_publish", true as "is_publish",
'folder' as "type", 'folder' as "type",
'folder' as "resource_type", 'folder' as "resource_type",
application_folder."workspace_id", application_folder."workspace_id",
application_folder."parent_id" as "folder_id", application_folder."parent_id" as "folder_id",
application_folder."user_id", application_folder."user_id",
"user"."nick_name" as "nick_name", "user"."nick_name" as "nick_name",
application_folder."create_time", application_folder."create_time",
application_folder."update_time", application_folder."update_time",
null as "publish_time" null as "publish_time",
from application_folder left join "user" on user_id = "user".id ${folder_query_set}) temp null as "icon"
${application_query_set}
from application_folder
left join "user" on user_id = "user".id ${folder_query_set}) temp ${application_query_set}