Browse Source

修改代码

TANG JIANG 2 years ago
parent
commit
8c8fc4598b

+ 0 - 2
src/Hotline.Api/Controllers/KnowledgeApplyController.cs

@@ -1,11 +1,9 @@
 using Hotline.Application.Knowledge;
 using Hotline.KnowledgeBase;
 using Hotline.Permissions;
-using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Enums.KnowledgeBase;
-using Hotline.Users;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 using XF.Domain.Authentications;

+ 1 - 5
src/Hotline.Api/Controllers/KnowledgeCommonController.cs

@@ -2,7 +2,6 @@
 using Hotline.Permissions;
 using Hotline.Share.Dtos.Knowledge;
 using MapsterMapper;
-using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using XF.Domain.Exceptions;
 
@@ -14,7 +13,6 @@ namespace Hotline.Api.Controllers
     public class KnowledgeCommonController : BaseController
     {
         private readonly IKnowledgeTypeRepository _knowledgeTypeRepository;
-        private readonly IKnowledgeRepository _knowledgeRepository;
         private readonly IKnowledgeTypeDomainService _knowledgeTypeDomainService;
         private readonly IKnowledgeStandardRepository _knowledgeStandardRepository;
         private readonly IMapper _mapper;
@@ -22,16 +20,14 @@ namespace Hotline.Api.Controllers
         /// <summary>
         /// 
         /// </summary>
-        /// <param name="knowledgeRepository"></param>
         /// <param name="knowledgeTypeRepository"></param>
         /// <param name="knowledgeTypeDomainService"></param>
         /// <param name="knowledgeStandardRepository"></param>
         /// <param name="mapper"></param>
-        public KnowledgeCommonController(IKnowledgeRepository knowledgeRepository, IKnowledgeTypeRepository knowledgeTypeRepository, IKnowledgeTypeDomainService knowledgeTypeDomainService,
+        public KnowledgeCommonController(IKnowledgeTypeRepository knowledgeTypeRepository, IKnowledgeTypeDomainService knowledgeTypeDomainService,
             IKnowledgeStandardRepository knowledgeStandardRepository,
             IMapper mapper)
         {
-            _knowledgeRepository = knowledgeRepository;
             _knowledgeTypeRepository = knowledgeTypeRepository;
             _knowledgeTypeDomainService = knowledgeTypeDomainService;
             _knowledgeStandardRepository = knowledgeStandardRepository;

+ 4 - 8
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -2,16 +2,12 @@
 using Hotline.KnowledgeBase;
 using Hotline.Permissions;
 using Hotline.Repository.SqlSugar.Extensions;
-using Hotline.Settings;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Enums.KnowledgeBase;
-using Hotline.Users;
 using MapsterMapper;
-using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using SqlSugar;
-using System.Threading;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 
@@ -296,11 +292,11 @@ namespace Hotline.Api.Controllers
             var temp = await _knowledgeRepository
               .Queryable(true)
               .Where(p => p.Status == EKnowledgeStatus.OnShelf)
-              .WhereIF(!string.IsNullOrEmpty(pagedDto.RetrievalType) || pagedDto.RetrievalType == EKnowledgeRetrievalType.All.ToString(),
+              .WhereIF(pagedDto.RetrievalType == null || pagedDto.RetrievalType == EKnowledgeRetrievalType.All,
                         d => d.Title.Contains(pagedDto.Keyword) || d.Content.Contains(pagedDto.Keyword) || d.Additions.Contains(pagedDto.Keyword))
-              .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Title.ToString(), d => d.Title.Contains(pagedDto.Keyword))
-              .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Content.ToString(), d => d.Content.Contains(pagedDto.Keyword))
-              .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Enclosure.ToString(), d => d.Additions.Contains(pagedDto.Keyword))
+              .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Title, d => d.Title.Contains(pagedDto.Keyword))
+              .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Content, d => d.Content.Contains(pagedDto.Keyword))
+              .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Enclosure, d => d.Additions.Contains(pagedDto.Keyword))
 
               .Select(o => new
               {

+ 4 - 7
src/Hotline.Application/Knowledge/KnowApplication.cs

@@ -3,11 +3,8 @@ using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Knowledge;
-using Hotline.Share.Enums.KnowledgeBase;
 using Hotline.Users;
 using MapsterMapper;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
 using SqlSugar;
 using XF.Domain.Authentications;
 using XF.Domain.Dependency;
@@ -115,8 +112,8 @@ namespace Hotline.Application.Knowledge
                .Where(d => d.CreatorId == _sessionContext.RequiredUserId)
                .WhereIF(pagedDto.Status != null, d => d.Status == pagedDto.Status)
                .WhereIF(pagedDto.ApplyType != null, d => d.KnowledgeApplyType == pagedDto.ApplyType)
-               .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "0", d => d.ExpiredTime < DateTime.Now)
-               .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "1", d => d.ExpiredTime >= DateTime.Now)
+               .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "0", d => d.ExpiredTime <= DateTime.Now)
+               .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "1", d => d.ExpiredTime > DateTime.Now)
                .WhereIF(pagedDto.StartTime != null, d => d.CreationTime >= pagedDto.StartTime)
                .WhereIF(pagedDto.EndTime != null, d => d.CreationTime <= pagedDto.EndTime)
                .OrderByDescending(p => p.CreationTime)
@@ -141,8 +138,8 @@ namespace Hotline.Application.Knowledge
                  .WhereIF(pagedDto.Status != null, d => d.Status == pagedDto.Status)
                  .WhereIF(!string.IsNullOrEmpty(pagedDto.Keyword), d => d.User.Name.Contains(pagedDto.Keyword!) || d.SystemOrganize.OrgName.Contains(pagedDto.Keyword!))
                  .WhereIF(pagedDto.ApplyType != null, d => d.KnowledgeApplyType == pagedDto.ApplyType)
-                 .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "0", d => d.ExpiredTime < DateTime.Now)
-                 .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "1", d => d.ExpiredTime >= DateTime.Now)
+                 .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "0", d => d.ExpiredTime <= DateTime.Now)
+                 .WhereIF(!string.IsNullOrEmpty(pagedDto.IsOvertime) && pagedDto.IsOvertime == "1", d => d.ExpiredTime > DateTime.Now)
                  .WhereIF(pagedDto.StartTime != null, d => d.CreationTime >= pagedDto.StartTime)
                  .WhereIF(pagedDto.EndTime != null, d => d.CreationTime <= pagedDto.EndTime)
                  .OrderByDescending(p => p.CreationTime)

+ 1 - 1
src/Hotline.Share/Dtos/Knowledge/KnowledgePagedDto.cs

@@ -21,7 +21,7 @@ namespace Hotline.Share.Dtos.Knowledge
     /// 知识检索
     /// </summary>
     /// <param name="RetrievalType">检索类型</param>
-    public record KnowledgeRetrievalPagedListDto(string? RetrievalType) : PagedKeywordRequest;
+    public record KnowledgeRetrievalPagedListDto(EKnowledgeRetrievalType? RetrievalType) : PagedKeywordRequest;
 
     /// <summary>
     /// 

+ 45 - 44
src/Hotline/KnowledgeBase/KnowledgeTypeDomainService.cs

@@ -59,47 +59,6 @@ namespace Hotline.KnowledgeBase
             return nodeList;
         }
 
-        /// <summary>
-        /// 查询父级名称
-        /// </summary>
-        /// <param name="Id"></param>
-        /// <returns></returns>
-        private async Task<List<string>> GetParentNode(string Id)
-        {
-            List<string> list = new();
-            //查询父级数据
-            var type = await _knowledgeTypeRepository.GetAsync(p => p.Id == Id);
-            if (type != null)
-            {
-                //添加名称
-                list.Add(type.Name);
-                list.AddRange(await GetParentNode(type.ParentId));
-            }
-            return list;
-        }
-
-        /// <summary>
-        /// 查询子级节点数据
-        /// </summary>
-        /// <param name="Id"></param>
-        /// <returns></returns>
-        private async Task<List<KnowledgeType>> GetChildNode(string Id)
-        {
-            List<KnowledgeType> list = new();
-            //查询数据
-            var typelist = await _knowledgeTypeRepository.QueryAsync(p => p.ParentId == Id);
-            if (typelist != null)
-            {
-                //处理数据
-                foreach (var item in typelist)
-                {
-                    list.Add(item);
-                    list.AddRange(await GetChildNode(item.Id));
-                }
-            }
-            return list;
-        }
-
         /// <summary>
         /// 知识分类- 新增
         /// </summary>
@@ -194,8 +153,8 @@ namespace Hotline.KnowledgeBase
                     foreach (var item in getChild)
                     {
                         item.IsEnable = false;
-                        await _knowledgeTypeRepository.UpdateAsync(item, cancellationToken);
                     }
+                    await _knowledgeTypeRepository.UpdateRangeAsync(getChild, cancellationToken);
                 }
             }
             else //启用
@@ -238,7 +197,7 @@ namespace Hotline.KnowledgeBase
                         await _knowledgeTypeRepository.UpdateAsync(item, cancellationToken);
                         //下架知识
                         //查询当前分类下的知识(查询条件:此分类下/状态为成功/未删除/已上架)
-                        var knowList = _knowledgeRepository.Queryable().Where(p => p.KnowledgeTypeId == item.Id && p.Status == EKnowledgeStatus.OnShelf ).ToList();
+                        var knowList = _knowledgeRepository.Queryable().Where(p => p.KnowledgeTypeId == item.Id && p.Status == EKnowledgeStatus.OnShelf).ToList();
                         if (knowList != null && knowList.Count > 0)
                         {
                             //修改知识为下架状态
@@ -247,8 +206,8 @@ namespace Hotline.KnowledgeBase
                                 itemKnow.Status = EKnowledgeStatus.OffShelf;
                                 itemKnow.OffShelfTime = DateTime.Now;
                                 itemKnow.OnShelfTime = null;
-                                await _knowledgeRepository.UpdateAsync(itemKnow, cancellationToken);
                             }
+                            await _knowledgeRepository.UpdateRangeAsync(knowList, cancellationToken);
                         }
                     }
                 }
@@ -285,6 +244,48 @@ namespace Hotline.KnowledgeBase
         }
 
         #region 私有方法
+
+        /// <summary>
+        /// 查询父级名称
+        /// </summary>
+        /// <param name="Id"></param>
+        /// <returns></returns>
+        private async Task<List<string>> GetParentNode(string Id)
+        {
+            List<string> list = new();
+            //查询父级数据
+            var type = await _knowledgeTypeRepository.GetAsync(p => p.Id == Id);
+            if (type != null)
+            {
+                //添加名称
+                list.Add(type.Name);
+                list.AddRange(await GetParentNode(type.ParentId));
+            }
+            return list;
+        }
+
+        /// <summary>
+        /// 查询子级节点数据
+        /// </summary>
+        /// <param name="Id"></param>
+        /// <returns></returns>
+        private async Task<List<KnowledgeType>> GetChildNode(string Id)
+        {
+            List<KnowledgeType> list = new();
+            //查询数据
+            var typelist = await _knowledgeTypeRepository.QueryAsync(p => p.ParentId == Id);
+            if (typelist != null)
+            {
+                //处理数据
+                foreach (var item in typelist)
+                {
+                    list.Add(item);
+                    list.AddRange(await GetChildNode(item.Id));
+                }
+            }
+            return list;
+        }
+
         /// <summary>
         /// 获取全称
         /// </summary>