feat: 完善知识库版本管理与检索审计后台

This commit is contained in:
2026-07-11 19:22:18 +08:00
parent 6cadca8c8e
commit 872233adc6
6 changed files with 741 additions and 50 deletions

View File

@@ -8,7 +8,19 @@ from app.core.database import get_db
from app.core.dependencies import get_current_admin
from app.core.responses import api_success
from app.models.admin import Admin
from app.models.knowledge import Knowledge, UserKnowledgePermission
from app.models.knowledge import (
Knowledge,
KnowledgeCard,
KnowledgeChunk,
KnowledgeManifest,
KnowledgePublishLog,
KnowledgeReviewRecord,
KnowledgeSection,
KnowledgeSourceSnapshot,
KnowledgeSyncJob,
KnowledgeVersion,
UserKnowledgePermission,
)
from app.schemas.admin import KnowledgeSaveRequest
from app.services.admin_service import OperationLogService
from app.services.feishu_service import FeishuKnowledgeService
@@ -122,6 +134,15 @@ def delete_knowledge(
).all()
for permission in permissions:
db.delete(permission)
for model in (KnowledgeReviewRecord, KnowledgeCard, KnowledgeChunk, KnowledgeSection, KnowledgeManifest, KnowledgePublishLog, KnowledgeSyncJob):
for row in db.scalars(select(model).where(model.knowledge_id == knowledge.id)).all():
db.delete(row)
db.flush()
for row in db.scalars(select(KnowledgeVersion).where(KnowledgeVersion.knowledge_id == knowledge.id)).all():
db.delete(row)
db.flush()
for row in db.scalars(select(KnowledgeSourceSnapshot).where(KnowledgeSourceSnapshot.knowledge_id == knowledge.id)).all():
db.delete(row)
db.delete(knowledge)
OperationLogService.write(db, admin_id=current_admin.id, module="knowledge", action="delete", target_id=knowledge.id)
db.commit()