diff --git a/internal/application/repository/tag.go b/internal/application/repository/tag.go index 907ab8bc..c90a59db 100644 --- a/internal/application/repository/tag.go +++ b/internal/application/repository/tag.go @@ -122,7 +122,7 @@ func (r *knowledgeTagRepository) ListByKB( var tags []*types.KnowledgeTag if err := dataQuery. - Order("sort_order ASC, created_at ASC"). + Order("sort_order ASC, created_at DESC"). Offset(page.Offset()). Limit(page.Limit()). Find(&tags).Error; err != nil { diff --git a/internal/application/service/knowledge.go b/internal/application/service/knowledge.go index 3bee9cc6..0ec7fbc6 100644 --- a/internal/application/service/knowledge.go +++ b/internal/application/service/knowledge.go @@ -7034,13 +7034,18 @@ func (s *knowledgeService) getOrCreateTagInTarget( } // Create new tag in target KB + // "未分类" tag should have the lowest sort order to appear first + sortOrder := srcTag.SortOrder + if srcTag.Name == types.UntaggedTagName { + sortOrder = -1 + } newTag := &types.KnowledgeTag{ ID: uuid.New().String(), TenantID: dstTenantID, KnowledgeBaseID: dstKnowledgeBaseID, Name: srcTag.Name, Color: srcTag.Color, - SortOrder: srcTag.SortOrder, + SortOrder: sortOrder, CreatedAt: time.Now(), UpdatedAt: time.Now(), } diff --git a/internal/application/service/tag.go b/internal/application/service/tag.go index 5cf60543..e7fcfdbe 100644 --- a/internal/application/service/tag.go +++ b/internal/application/service/tag.go @@ -123,6 +123,10 @@ func (s *knowledgeTagService) CreateTag( } now := time.Now() + // "未分类" tag should have the lowest sort order to appear first + if name == types.UntaggedTagName { + sortOrder = -1 + } tag := &types.KnowledgeTag{ ID: uuid.New().String(), TenantID: kb.TenantID,