refactor: streamline document and FAQ index removal methods and enhance knowledge base deletion logic
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"agent-desk/internal/models"
|
||||
"agent-desk/internal/pkg/enums"
|
||||
|
||||
"agent-desk/internal/pkg/httpx/params"
|
||||
|
||||
@@ -109,3 +112,16 @@ func (r *aIAgentRepository) FindByIds(db *gorm.DB, ids []int64) []models.AIAgent
|
||||
db.Where("id IN ?", ids).Find(&list)
|
||||
return list
|
||||
}
|
||||
|
||||
func (r *aIAgentRepository) FindByKnowledgeBaseID(db *gorm.DB, knowledgeBaseID int64) (list []models.AIAgent) {
|
||||
id := strconv.FormatInt(knowledgeBaseID, 10)
|
||||
db.Where(
|
||||
"(knowledge_ids = ? OR knowledge_ids LIKE ? OR knowledge_ids LIKE ? OR knowledge_ids LIKE ?) AND status <> ?",
|
||||
id,
|
||||
id+",%",
|
||||
"%,"+id,
|
||||
"%,"+id+",%",
|
||||
enums.StatusDeleted,
|
||||
).Find(&list)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -96,12 +96,16 @@ func (r *knowledgeChunkRepository) Delete(db *gorm.DB, id int64) {
|
||||
db.Delete(&models.KnowledgeChunk{}, "id = ?", id)
|
||||
}
|
||||
|
||||
func (r *knowledgeChunkRepository) DeleteByDocumentID(db *gorm.DB, documentID int64) {
|
||||
db.Delete(&models.KnowledgeChunk{}, "document_id = ?", documentID)
|
||||
func (r *knowledgeChunkRepository) DeleteByDocumentID(db *gorm.DB, documentID int64) error {
|
||||
return db.Delete(&models.KnowledgeChunk{}, "document_id = ?", documentID).Error
|
||||
}
|
||||
|
||||
func (r *knowledgeChunkRepository) DeleteByFaqID(db *gorm.DB, faqID int64) {
|
||||
db.Delete(&models.KnowledgeChunk{}, "faq_id = ?", faqID)
|
||||
func (r *knowledgeChunkRepository) DeleteByFaqID(db *gorm.DB, faqID int64) error {
|
||||
return db.Delete(&models.KnowledgeChunk{}, "faq_id = ?", faqID).Error
|
||||
}
|
||||
|
||||
func (r *knowledgeChunkRepository) DeleteByKnowledgeBaseID(db *gorm.DB, knowledgeBaseID int64) error {
|
||||
return db.Delete(&models.KnowledgeChunk{}, "knowledge_base_id = ?", knowledgeBaseID).Error
|
||||
}
|
||||
|
||||
func (r *knowledgeChunkRepository) FindByDocumentID(db *gorm.DB, documentID int64) (list []models.KnowledgeChunk) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package repositories
|
||||
|
||||
import (
|
||||
"agent-desk/internal/models"
|
||||
"agent-desk/internal/pkg/enums"
|
||||
|
||||
"agent-desk/internal/pkg/httpx/params"
|
||||
|
||||
@@ -103,6 +104,10 @@ func (r *knowledgeDocumentRepository) Delete(db *gorm.DB, id int64) {
|
||||
db.Delete(&models.KnowledgeDocument{}, "id = ?", id)
|
||||
}
|
||||
|
||||
func (r *knowledgeDocumentRepository) DeleteByKnowledgeBaseID(db *gorm.DB, knowledgeBaseID int64) error {
|
||||
return db.Delete(&models.KnowledgeDocument{}, "knowledge_base_id = ?", knowledgeBaseID).Error
|
||||
}
|
||||
|
||||
func (r *knowledgeDocumentRepository) FindByIDs(db *gorm.DB, ids []int64) (list []models.KnowledgeDocument) {
|
||||
if len(ids) == 0 {
|
||||
return nil
|
||||
@@ -113,6 +118,6 @@ func (r *knowledgeDocumentRepository) FindByIDs(db *gorm.DB, ids []int64) (list
|
||||
|
||||
func (r *knowledgeDocumentRepository) CountByKnowledgeBaseID(db *gorm.DB, knowledgeBaseID int64) int64 {
|
||||
var count int64
|
||||
db.Model(&models.KnowledgeDocument{}).Where("knowledge_base_id = ?", knowledgeBaseID).Count(&count)
|
||||
db.Model(&models.KnowledgeDocument{}).Where("knowledge_base_id = ? AND status <> ?", knowledgeBaseID, enums.StatusDeleted).Count(&count)
|
||||
return count
|
||||
}
|
||||
|
||||
@@ -58,6 +58,10 @@ func (r *knowledgeFAQRepository) Delete(db *gorm.DB, id int64) {
|
||||
db.Delete(&models.KnowledgeFAQ{}, "id = ?", id)
|
||||
}
|
||||
|
||||
func (r *knowledgeFAQRepository) DeleteByKnowledgeBaseID(db *gorm.DB, knowledgeBaseID int64) error {
|
||||
return db.Delete(&models.KnowledgeFAQ{}, "knowledge_base_id = ?", knowledgeBaseID).Error
|
||||
}
|
||||
|
||||
func (r *knowledgeFAQRepository) FindByIDs(db *gorm.DB, ids []int64) (list []models.KnowledgeFAQ) {
|
||||
if len(ids) == 0 {
|
||||
return nil
|
||||
@@ -81,6 +85,6 @@ func (r *knowledgeFAQRepository) FindByKnowledgeBaseIDAndQuestions(db *gorm.DB,
|
||||
|
||||
func (r *knowledgeFAQRepository) CountByKnowledgeBaseID(db *gorm.DB, knowledgeBaseID int64) int64 {
|
||||
var count int64
|
||||
db.Model(&models.KnowledgeFAQ{}).Where("knowledge_base_id = ?", knowledgeBaseID).Count(&count)
|
||||
db.Model(&models.KnowledgeFAQ{}).Where("knowledge_base_id = ? AND status <> ?", knowledgeBaseID, enums.StatusDeleted).Count(&count)
|
||||
return count
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user