feat: add knowledge directory management for documents and FAQs
- Implemented directory validation in Create and Update knowledge document services. - Added directory selection in document and FAQ edit dialogs with a new KnowledgeDirectoryPanel component. - Enhanced API to support fetching, creating, updating, and deleting knowledge directories. - Updated data models to include directory information for knowledge documents and FAQs. - Added translations for directory-related messages in English and Chinese.
This commit is contained in:
@@ -40,6 +40,10 @@ func (s *knowledgeFAQService) FindPageByParams(queryParams *params.QueryParams)
|
||||
return repositories.KnowledgeFAQRepository.FindPageByParams(sqls.DB(), queryParams)
|
||||
}
|
||||
|
||||
func (s *knowledgeFAQService) Count(cnd *sqls.Cnd) int64 {
|
||||
return repositories.KnowledgeFAQRepository.Count(sqls.DB(), cnd)
|
||||
}
|
||||
|
||||
func (s *knowledgeFAQService) CreateKnowledgeFAQ(req request.CreateKnowledgeFAQRequest, operator *dto.AuthPrincipal) (*models.KnowledgeFAQ, error) {
|
||||
if operator == nil {
|
||||
return nil, errorsx.Unauthorized("未登录或登录已过期")
|
||||
@@ -48,6 +52,9 @@ func (s *knowledgeFAQService) CreateKnowledgeFAQ(req request.CreateKnowledgeFAQR
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if _, err := KnowledgeDirectoryService.RequireUsableDirectory(req.KnowledgeBaseID, req.DirectoryID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
item, err := s.buildKnowledgeFAQModel(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -78,12 +85,16 @@ func (s *knowledgeFAQService) UpdateKnowledgeFAQ(req request.UpdateKnowledgeFAQR
|
||||
if _, err := s.requireFAQKnowledgeBase(req.KnowledgeBaseID); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := KnowledgeDirectoryService.RequireUsableDirectory(req.KnowledgeBaseID, req.DirectoryID); err != nil {
|
||||
return err
|
||||
}
|
||||
item, err := s.buildKnowledgeFAQModel(req.CreateKnowledgeFAQRequest)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := repositories.KnowledgeFAQRepository.Updates(sqls.DB(), req.ID, map[string]any{
|
||||
"knowledge_base_id": item.KnowledgeBaseID,
|
||||
"directory_id": item.DirectoryID,
|
||||
"question": item.Question,
|
||||
"answer": item.Answer,
|
||||
"similar_questions": item.SimilarQuestions,
|
||||
@@ -127,6 +138,7 @@ func (s *knowledgeFAQService) buildKnowledgeFAQModel(req request.CreateKnowledge
|
||||
}
|
||||
return &models.KnowledgeFAQ{
|
||||
KnowledgeBaseID: req.KnowledgeBaseID,
|
||||
DirectoryID: req.DirectoryID,
|
||||
Question: req.Question,
|
||||
Answer: req.Answer,
|
||||
SimilarQuestions: string(similarQuestions),
|
||||
|
||||
Reference in New Issue
Block a user