Эх сурвалжийг харах

测试一下自贡关键词

tangjiang 1 сар өмнө
parent
commit
51f88d26c9

+ 32 - 12
src/Hotline.Application/Knowledge/KnowApplication.cs

@@ -453,19 +453,39 @@ namespace Hotline.Application.Knowledge
                 var exp = Expressionable.Create<KnowledgeBase.Knowledge>();
                 foreach (var keyword in keywords)
                 {
-                    if (dto.RetrievalType == EKnowledgeRetrievalType.All)
-                        exp.Or(x => x.Title.Contains(keyword) || x.Content.Contains(keyword));
-                    if (dto.RetrievalType == EKnowledgeRetrievalType.Title)
-                        exp.Or(x => x.Title.Contains(keyword));
-                    if (dto.RetrievalType == EKnowledgeRetrievalType.Content)
-                        exp.Or(x => x.Content.Contains(keyword));
-                    if (dto.RetrievalType == EKnowledgeRetrievalType.Summary)
-                        exp.Or(x => x.Summary != null && x.Summary.Contains(keyword));
-                    if (dto.RetrievalType == EKnowledgeRetrievalType.KeyWord)
+                    if (_appOptions.Value.IsZiGong)
                     {
-                        var keywordEntity = await _knowledgeWordRepository.GetAsync(m => m.Tag == keyword && m.IsEnable == 1);
-                        if (keywordEntity is null) continue;
-                        exp.Or(x => SqlFunc.JsonArrayAny(x.Keywords, keywordEntity.Id));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.All)
+                            exp.And(x => x.Title.Contains(keyword) || x.Content.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.Title)
+                            exp.And(x => x.Title.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.Content)
+                            exp.And(x => x.Content.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.Summary)
+                            exp.And(x => x.Summary != null && x.Summary.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.KeyWord)
+                        {
+                            var keywordEntity = await _knowledgeWordRepository.GetAsync(m => m.Tag == keyword && m.IsEnable == 1);
+                            if (keywordEntity is null) continue;
+                            exp.Or(x => SqlFunc.JsonArrayAny(x.Keywords, keywordEntity.Id));
+                        }
+                    }
+                    else
+                    {
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.All)
+                            exp.Or(x => x.Title.Contains(keyword) || x.Content.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.Title)
+                            exp.Or(x => x.Title.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.Content)
+                            exp.Or(x => x.Content.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.Summary)
+                            exp.Or(x => x.Summary != null && x.Summary.Contains(keyword));
+                        if (dto.RetrievalType == EKnowledgeRetrievalType.KeyWord)
+                        {
+                            var keywordEntity = await _knowledgeWordRepository.GetAsync(m => m.Tag == keyword && m.IsEnable == 1);
+                            if (keywordEntity is null) continue;
+                            exp.Or(x => SqlFunc.JsonArrayAny(x.Keywords, keywordEntity.Id));
+                        }
                     }
                 }
                 sugar = sugar.Where(exp.ToExpression());