1+ SELECT *
2+ FROM (SELECT " temp_knowledge" .id::text , " temp_knowledge" .name,
3+ " temp_knowledge" .desc ,
4+ " temp_knowledge" .type,
5+ ' knowledge' as resource_type,
6+ " temp_knowledge" .workspace_id,
7+ " temp_knowledge" .folder_id,
8+ " temp_knowledge" .user_id,
9+ " temp_knowledge" .create_time,
10+ " temp_knowledge" .update_time,
11+ " temp_knowledge" .file_size_limit,
12+ " temp_knowledge" .file_count_limit,
13+ " document_temp" ." char_length" ,
14+ CASE
15+ WHEN
16+ " app_knowledge_temp" ." count" IS NULL THEN 0
17+ ELSE " app_knowledge_temp" ." count" END AS application_mapping_count,
18+ " document_temp" .document_count
19+ FROM (SELECT knowledge.*
20+ FROM knowledge knowledge ${knowledge_custom_sql}
21+ AND id in (select target
22+ from workspace_user_resource_permission
23+ where auth_target_type = ' KNOWLEDGE'
24+ and case
25+ when auth_type = ' ROLE' then
26+ ' KNOWLEDGE_READ' in (select permission_id
27+ from role_permission
28+ where role_id in (select role_id
29+ from user_role_relation))
30+ else
31+ ' VIEW' = any (permission_list)
32+ end
33+ )) temp_knowledge
34+ LEFT JOIN (SELECT " count" (" id" ) AS document_count, " sum" (" char_length" ) " char_length" , knowledge_id
35+ FROM " document"
36+ GROUP BY knowledge_id) " document_temp" ON temp_knowledge." id" = " document_temp" .knowledge_id
37+ LEFT JOIN (SELECT " count" (" id" ), knowledge_id
38+ FROM application_knowledge_mapping
39+ GROUP BY knowledge_id) app_knowledge_temp
40+ ON temp_knowledge." id" = " app_knowledge_temp" .knowledge_id
41+ UNION
42+ SELECT " id" ,
43+ " name" ,
44+ " desc" ,
45+ 0 as " type" ,
46+ ' folder' as " resource_type" ,
47+ " workspace_id" ,
48+ " parent_id" as " folder_id" ,
49+ " user_id" ,
50+ " create_time" ,
51+ " update_time" ,
52+ 0 as file_size_limit,
53+ 0 as file_count_limit,
54+ 0 as char_length,
55+ 0 as application_mapping_count,
56+ 0 as document_count
57+ from knowledge_folder ${folder_query_set}) temp
58+ ${default_sql}
0 commit comments