ソースを参照

1、预案检索全文搜索查询不准确修复
2、新增预案添加附件上传失败修复

libin 3 ヶ月 前
コミット
0e0be86423

+ 42 - 8
src/Hotline.Application/Caselibrary/CaseApplication.cs

@@ -215,15 +215,47 @@ namespace Hotline.Application.Caselibrary
                 .Where(x => x.IsDeleted == false)
                 .WhereIF(pagedDto.IsPopular.HasValue, x => x.IsPopular == pagedDto.IsPopular)
                 .WhereIF(OrgSeedData.CenterId != pagedDto.CreateOrgId && !string.IsNullOrEmpty(pagedDto.CreateOrgId), x => x.CreatorOrgId != null && x.CreatorOrgId.StartsWith(pagedDto.CreateOrgId!))
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), x => x.Title.Contains(pagedDto.Title))
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Abstract), x => x.Abstract.Contains(pagedDto.Abstract))
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Describe), x => x.Describe.Contains(pagedDto.Describe))
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Result), x => x.Result.Contains(pagedDto.Result))
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Reason), x => x.Reason.Contains(pagedDto.Reason))
 
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Keyword), x => x.Title.Contains(pagedDto.Keyword!) ||
-                                                                  x.CreatorName!.Contains(pagedDto.Keyword!) ||
-                                                                  x.CreatorOrgName!.Contains(pagedDto.Keyword!))
+                .WhereIF(!string.IsNullOrEmpty(pagedDto.Title) &&
+                          string.IsNullOrEmpty(pagedDto.Abstract) &&
+                          string.IsNullOrEmpty(pagedDto.Describe) &&
+                          string.IsNullOrEmpty(pagedDto.Result) &&
+                          string.IsNullOrEmpty(pagedDto.Reason), x => x.Title.Contains(pagedDto.Title!))
+
+                .WhereIF(string.IsNullOrEmpty(pagedDto.Title) &&
+                        !string.IsNullOrEmpty(pagedDto.Abstract) &&
+                         string.IsNullOrEmpty(pagedDto.Describe) &&
+                         string.IsNullOrEmpty(pagedDto.Result) &&
+                         string.IsNullOrEmpty(pagedDto.Reason), x => x.Abstract.Contains(pagedDto.Abstract!))
+
+                .WhereIF(string.IsNullOrEmpty(pagedDto.Title) &&
+                         string.IsNullOrEmpty(pagedDto.Abstract) &&
+                        !string.IsNullOrEmpty(pagedDto.Describe) &&
+                         string.IsNullOrEmpty(pagedDto.Result) &&
+                         string.IsNullOrEmpty(pagedDto.Reason), x => x.Describe.Contains(pagedDto.Describe!))
+
+                .WhereIF(string.IsNullOrEmpty(pagedDto.Title) &&
+                         string.IsNullOrEmpty(pagedDto.Abstract) &&
+                         string.IsNullOrEmpty(pagedDto.Describe) &&
+                        !string.IsNullOrEmpty(pagedDto.Result) &&
+                         string.IsNullOrEmpty(pagedDto.Reason), x => x.Result.Contains(pagedDto.Result!))
+
+                .WhereIF(string.IsNullOrEmpty(pagedDto.Title) &&
+                         string.IsNullOrEmpty(pagedDto.Abstract) &&
+                         string.IsNullOrEmpty(pagedDto.Describe) &&
+                         string.IsNullOrEmpty(pagedDto.Result) &&
+                        !string.IsNullOrEmpty(pagedDto.Reason), x => x.Reason.Contains(pagedDto.Reason!))
+
+                .WhereIF(!string.IsNullOrEmpty(pagedDto.Title) &&
+                         !string.IsNullOrEmpty(pagedDto.Abstract) &&
+                         !string.IsNullOrEmpty(pagedDto.Describe) &&
+                         !string.IsNullOrEmpty(pagedDto.Result) &&
+                         !string.IsNullOrEmpty(pagedDto.Reason)
+                                                                , x => x.Title.Contains(pagedDto.Title!) ||
+                                                                  x.Abstract!.Contains(pagedDto.Abstract!) ||
+                                                                  x.Describe!.Contains(pagedDto.Describe!) ||
+                                                                  x.Result!.Contains(pagedDto.Result!) ||
+                                                                  x.Reason!.Contains(pagedDto.Reason!))
 
                 .WhereIF(pagedDto.Status.HasValue && pagedDto.Status == ECaseStatus.OnShelf, x => x.Status == ECaseStatus.OnShelf)
                 .WhereIF(pagedDto.Status.HasValue && pagedDto.Status == ECaseStatus.OffShelf, x => x.Status == ECaseStatus.OffShelf)
@@ -290,6 +322,8 @@ namespace Hotline.Application.Caselibrary
             if (any)
                 throw UserFriendlyException.SameMessage("当前案例标题存在重复标题!");
 
+            pList.InitId();
+
             if (dto.Files != null && dto.Files.Count > 0)
                 pList.FileJson = await _fileRepository.AddFileAsync(dto.Files, pList.Id, "", cancellationToken);
             await _caseListRepository.AddAsync(pList, cancellationToken);

+ 20 - 5
src/Hotline.Application/Planlibrary/PlanApplication.cs

@@ -221,11 +221,24 @@ namespace Hotline.Application.Planlibrary
                 .WhereIF(pagedDto.IsPublic.HasValue, x => x.IsPublic == pagedDto.IsPublic)
                 .WhereIF(OrgSeedData.CenterId != pagedDto.CreateOrgId && !string.IsNullOrEmpty(pagedDto.CreateOrgId), x => x.CreatorOrgId != null && x.CreatorOrgId.StartsWith(pagedDto.CreateOrgId!))
                 .WhereIF(!string.IsNullOrEmpty(pagedDto.Attribution), x => x.Attribution == pagedDto.Attribution)
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), x => x.Title.Contains(pagedDto.Title))
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Content), x => x.Content.Contains(pagedDto.Content))
-                .WhereIF(!string.IsNullOrEmpty(pagedDto.Keywords), x => x.Title.Contains(pagedDto.Keywords!) ||
-                                                                  x.CreatorName!.Contains(pagedDto.Keywords!) ||
-                                                                  x.CreatorOrgName!.Contains(pagedDto.Keywords!))
+
+                .WhereIF(!string.IsNullOrEmpty(pagedDto.Title) &&
+                          string.IsNullOrEmpty(pagedDto.Content) &&
+                          string.IsNullOrEmpty(pagedDto.Keywords), x => x.Title.Contains(pagedDto.Title))
+
+                .WhereIF(string.IsNullOrEmpty(pagedDto.Title) &&
+                        !string.IsNullOrEmpty(pagedDto.Content) &&
+                         string.IsNullOrEmpty(pagedDto.Keywords), x => x.Content.Contains(pagedDto.Content))
+
+                .WhereIF(string.IsNullOrEmpty(pagedDto.Title) &&
+                         string.IsNullOrEmpty(pagedDto.Content) &&
+                        !string.IsNullOrEmpty(pagedDto.Keywords), x => x.Keywords.Contains(pagedDto.Keywords))
+
+                .WhereIF(!string.IsNullOrEmpty(pagedDto.Title) &&
+                         !string.IsNullOrEmpty(pagedDto.Content) &&
+                         !string.IsNullOrEmpty(pagedDto.Keywords), x => x.Title.Contains(pagedDto.Title!) ||
+                                                                   x.Content!.Contains(pagedDto.Content!) ||
+                                                                   x.Keywords!.Contains(pagedDto.Keywords!))
 
                 .WhereIF(pagedDto.Status.HasValue && pagedDto.Status == EPlanStatus.OnShelf, x => x.Status == EPlanStatus.OnShelf)
                 .WhereIF(pagedDto.Status.HasValue && pagedDto.Status == EPlanStatus.OffShelf, x => x.Status == EPlanStatus.OffShelf)
@@ -287,6 +300,8 @@ namespace Hotline.Application.Planlibrary
             if (any)
                 throw UserFriendlyException.SameMessage("当前预案标题存在重复标题!");
 
+            pList.InitId();
+
             if (dto.Files != null && dto.Files.Count > 0)
                 pList.FileJson = await _fileRepository.AddFileAsync(dto.Files, pList.Id, "", cancellationToken);
             await _planListRepository.AddAsync(pList, cancellationToken);