知识库数据隔离测试完成
This commit is contained in:
@@ -35,6 +35,11 @@
|
||||
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="delete_time" property="deleteTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="deleted" property="deleted" jdbcType="BOOLEAN"/>
|
||||
<!-- 权限字段 -->
|
||||
<result column="permission_type" property="permissionType" jdbcType="VARCHAR"/>
|
||||
<result column="can_read" property="canRead" jdbcType="BOOLEAN"/>
|
||||
<result column="can_write" property="canWrite" jdbcType="BOOLEAN"/>
|
||||
<result column="can_delete" property="canDelete" jdbcType="BOOLEAN"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 基础字段 -->
|
||||
@@ -106,10 +111,27 @@
|
||||
|
||||
<!-- selectAiKnowledges(带权限过滤) -->
|
||||
<select id="selectAiKnowledges" resultMap="BaseResultMap">
|
||||
SELECT DISTINCT k.*
|
||||
SELECT
|
||||
k.*,
|
||||
CASE
|
||||
WHEN MAX(CASE WHEN rp.dept_id IS NULL AND rp.role_id IS NULL THEN 1 ELSE 0 END) = 1 THEN 'all'
|
||||
WHEN MAX(CASE WHEN rp.dept_id IS NOT NULL AND rp.role_id IS NULL THEN 1 ELSE 0 END) = 1 THEN 'dept'
|
||||
WHEN MAX(CASE WHEN rp.dept_id IS NULL AND rp.role_id IS NOT NULL THEN 1 ELSE 0 END) = 1 THEN 'role'
|
||||
ELSE 'custom'
|
||||
END as permission_type,
|
||||
MAX(rp.can_read) as can_read,
|
||||
MAX(rp.can_write) as can_write,
|
||||
MAX(rp.can_execute) as can_delete
|
||||
FROM tb_ai_knowledge k
|
||||
<include refid="Permission_Filter"/>
|
||||
<include refid="Filter_Clause"/>
|
||||
GROUP BY k.id, k.title, k.avatar, k.description, k.content, k.source_type, k.source_id,
|
||||
k.file_name, k.file_path, k.category, k.tags, k.dify_dataset_id,
|
||||
k.dify_indexing_technique, k.embedding_model, k.embedding_model_provider,
|
||||
k.rerank_model, k.rerank_model_provider, k.reranking_enable,
|
||||
k.retrieval_top_k, k.retrieval_score_threshold, k.vector_id,
|
||||
k.document_count, k.total_chunks, k.status, k.creator, k.creator_dept,
|
||||
k.updater, k.create_time, k.update_time, k.delete_time, k.deleted
|
||||
ORDER BY k.create_time DESC
|
||||
</select>
|
||||
|
||||
@@ -255,10 +277,27 @@
|
||||
|
||||
<!-- selectKnowledgesPage(分页查询知识库,带权限过滤) -->
|
||||
<select id="selectKnowledgesPage" resultMap="BaseResultMap">
|
||||
SELECT DISTINCT k.*
|
||||
SELECT
|
||||
k.*,
|
||||
CASE
|
||||
WHEN MAX(CASE WHEN rp.dept_id IS NULL AND rp.role_id IS NULL THEN 1 ELSE 0 END) = 1 THEN 'all'
|
||||
WHEN MAX(CASE WHEN rp.dept_id IS NOT NULL AND rp.role_id IS NULL THEN 1 ELSE 0 END) = 1 THEN 'dept'
|
||||
WHEN MAX(CASE WHEN rp.dept_id IS NULL AND rp.role_id IS NOT NULL THEN 1 ELSE 0 END) = 1 THEN 'role'
|
||||
ELSE 'custom'
|
||||
END as permission_type,
|
||||
MAX(rp.can_read) as can_read,
|
||||
MAX(rp.can_write) as can_write,
|
||||
MAX(rp.can_execute) as can_delete
|
||||
FROM tb_ai_knowledge k
|
||||
<include refid="Permission_Filter"/>
|
||||
<include refid="Filter_Clause"/>
|
||||
GROUP BY k.id, k.title, k.avatar, k.description, k.content, k.source_type, k.source_id,
|
||||
k.file_name, k.file_path, k.category, k.tags, k.dify_dataset_id,
|
||||
k.dify_indexing_technique, k.embedding_model, k.embedding_model_provider,
|
||||
k.rerank_model, k.rerank_model_provider, k.reranking_enable,
|
||||
k.retrieval_top_k, k.retrieval_score_threshold, k.vector_id,
|
||||
k.document_count, k.total_chunks, k.status, k.creator, k.creator_dept,
|
||||
k.updater, k.create_time, k.update_time, k.delete_time, k.deleted
|
||||
ORDER BY k.create_time DESC
|
||||
LIMIT #{pageParam.offset}, #{pageParam.pageSize}
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user