Ver Fonte

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

田爽 há 3 meses atrás
pai
commit
8ff0fb373e

+ 4 - 2
src/Hotline.Api/Controllers/KnowledgeCommonController.cs

@@ -142,8 +142,9 @@ namespace Hotline.Api.Controllers
         [HttpGet("treelist")]
         public async Task<List<KnowledgeTypeDto>> GetTreeList(bool? IsEnable, string? Attribution)
         {
+            var isCenter = _sessionContext.OrgIsCenter;
             var query = _knowledgeTypeRepository.Queryable();
-            if (!_sessionContext.OrgIsCenter)
+            if (!isCenter)
                 query.Where(x => x.Orgs.Any(s => s.Id == _sessionContext.RequiredOrgId));
             return await query.WhereIF(IsEnable.HasValue, x => x.IsEnable == IsEnable)
                  .Select(x => new KnowledgeTypeDto()
@@ -151,7 +152,8 @@ namespace Hotline.Api.Controllers
                      Id = x.Id.SelectAll(),
                      KnowledgeNum = SqlFunc.Subqueryable<KnowledgeRelationType>().LeftJoin<Knowledge>((kr, k) => kr.KnowledgeId == k.Id)
                          .Where((kr, k) => kr.KnowledgeTypeSpliceName.StartsWith(x.SpliceName))
-                         .WhereIF(!string.IsNullOrEmpty(Attribution), (kr, k) => k.Attribution == Attribution).DistinctCount(kr => kr.KnowledgeId)
+                         .WhereIF(!string.IsNullOrEmpty(Attribution) && !isCenter, (kr, k) => k.Attribution == Attribution)
+                         .DistinctCount(kr => kr.KnowledgeId)
 
                  })
                  .OrderBy(x => x.Sort)

+ 1 - 1
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -1001,7 +1001,7 @@ namespace Hotline.Api.Controllers
             var inputLevelOneTypes = items.Select(d => d.KnowledgeTypeLevelOne)
                 .Distinct().ToList();
             var levelOneTypes = await _knowledgeTypeRepository.Queryable()
-                .Where(d => d.IsEnable && d.ParentId == null)
+                .Where(d => d.IsEnable && string.IsNullOrEmpty(d.ParentId))
                 .ToListAsync(HttpContext.RequestAborted);
             var existLevelOneNames = levelOneTypes.Select(d => d.Name);
             var notExists = inputLevelOneTypes.Except(existLevelOneNames).ToList();

+ 5 - 0
src/Hotline.Api/Controllers/WebPortalController.cs

@@ -594,6 +594,7 @@ namespace Hotline.Api.Controllers
                 Page = SqlFunc.RowNumber($"{it.CreationTime} desc "),// SqlFunc.MappingColumn(default(int), "  row_number()  over( order by 'NoticeCreateDate'  ) "),
                 NoticeID = it.Id,
                 NoticeTitle = it.Title,
+                NoticeTypeName = it.BulletinTypeName,
                 NoticeCreateDate = it.CreationTime
             });
 
@@ -611,6 +612,7 @@ namespace Hotline.Api.Controllers
                         Page = 0,
                         NoticeID = it.Id,
                         NoticeTitle = it.Title,
+                        NoticeTypeName = "知识库",
                         NoticeCreateDate = it.CreationTime
                     });
 
@@ -620,6 +622,7 @@ namespace Hotline.Api.Controllers
                         Page = SqlFunc.RowNumber($"{x.NoticeCreateDate} desc "),
                         NoticeID = x.NoticeID,
                         NoticeTitle = x.NoticeTitle,
+                        NoticeTypeName = x.NoticeTypeName,
                         NoticeCreateDate = x.NoticeCreateDate
                     })
                     .OrderByDescending(x => x.NoticeCreateDate)
@@ -647,6 +650,7 @@ namespace Hotline.Api.Controllers
                         {
                             NoticeID = pTemp.NoticeID,
                             NoticeTitle = pTemp.NoticeTitle,
+                            NoticeTypeName = pTemp.NoticeTypeName,
                             pntype = "p"
                         });
 
@@ -657,6 +661,7 @@ namespace Hotline.Api.Controllers
                         {
                             NoticeID = nTemp.NoticeID,
                             NoticeTitle = nTemp.NoticeTitle,
+                            NoticeTypeName = nTemp.NoticeTypeName,
                             pntype = "n"
                         });
                     return OpenResponse.Ok(WebPortalDeResponse<List<ArticlePreviousAndNextDataDto>>.Success(returnDto));

+ 11 - 3
src/Hotline.Application/Knowledge/KnowApplication.cs

@@ -1,6 +1,8 @@
-using Hotline.Application.Tools;
+using DocumentFormat.OpenXml.EMMA;
+using Hotline.Application.Tools;
 using Hotline.Configurations;
 using Hotline.KnowledgeBase;
+using Hotline.Pdf;
 using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
 using Hotline.Settings.Hotspots;
@@ -34,6 +36,7 @@ namespace Hotline.Application.Knowledge
         private readonly IRepository<KnowledgeApply> _knowledgeApplyRepository;
         private readonly IRepository<KnowledgeWord> _knowledgeWordRepository;
         private readonly IRepository<KnowledgeHotWord> _knowledgeHotWordRepository;
+        private readonly IPdfManager _pdfManager;
         private readonly ISessionContext _sessionContext;
         private readonly IMapper _mapper;
         private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
@@ -46,7 +49,11 @@ namespace Hotline.Application.Knowledge
         /// <param name="sessionContext"></param>
         /// <param name="knowledgeDomainService"></param>
         /// <param name="mapper"></param>
-        public KnowApplication(IKnowledgeRepository knowledgeRepository, IOptionsSnapshot<AppConfiguration> appOptions, IRepository<KnowledgeApply> knowledgeApplyRepository, ISessionContext sessionContext, IMapper mapper, IRepository<KnowledgeType> knowledgeTypeRepository, IRepository<Hotspot> hotspotTypeRepository, IRepository<KnowledgeWord> knowledgeWordRepository, IRepository<KnowledgePv> knowledgePvepository, IRepository<KnowledgeHotWord> knowledgeHotWordRepository)
+        public KnowApplication(IKnowledgeRepository knowledgeRepository, IOptionsSnapshot<AppConfiguration> appOptions,
+            IRepository<KnowledgeApply> knowledgeApplyRepository, ISessionContext sessionContext, IMapper mapper,
+            IRepository<KnowledgeType> knowledgeTypeRepository, IRepository<Hotspot> hotspotTypeRepository,
+            IRepository<KnowledgeWord> knowledgeWordRepository, IRepository<KnowledgePv> knowledgePvepository,
+            IRepository<KnowledgeHotWord> knowledgeHotWordRepository, IPdfManager pdfManager)
         {
             _knowledgeRepository = knowledgeRepository;
             _knowledgeApplyRepository = knowledgeApplyRepository;
@@ -57,6 +64,7 @@ namespace Hotline.Application.Knowledge
             _knowledgeWordRepository = knowledgeWordRepository;
             _knowledgePvepository = knowledgePvepository;
             _knowledgeHotWordRepository = knowledgeHotWordRepository;
+            _pdfManager = pdfManager;
             _appOptions = appOptions;
 
         }
@@ -287,7 +295,7 @@ namespace Hotline.Application.Knowledge
 
             var tasks = knowList.Select(async item =>
             {
-                var stream = await Task.Run(() => item.Content.HtmlToStream(dto.FileType), cancellationToken);
+                var stream = await Task.Run(() => item.Content.HtmlToStream(dto.FileType, item.Title, _pdfManager), cancellationToken);
                 return new KeyValuePair<string, Stream>(
                     item.Title + dto.FileType.GetFileExtension(),
                     stream

+ 7 - 0
src/Hotline.Share/Dtos/WebPortal/ArticleDetailsDto.cs

@@ -126,6 +126,11 @@ namespace Hotline.Share.Dtos.WebPortal
         /// 公告标题
         /// </summary>
         public string NoticeTitle { get; set; }
+
+        /// <summary>
+        /// 分类
+        /// </summary>
+        public string NoticeTypeName { get; set; }
     }
 
     /// <summary>
@@ -207,6 +212,8 @@ namespace Hotline.Share.Dtos.WebPortal
         /// </summary>
         public string NoticeID { get; set; }
         public string NoticeTitle { get; set; }
+
+        public string NoticeTypeName { get; set; }
         public DateTime NoticeCreateDate { get; set; }
     }
 

+ 1 - 0
src/Hotline/KnowledgeBase/KnowledgeDomainService.cs

@@ -104,6 +104,7 @@ namespace Hotline.KnowledgeBase
             {
                 CreationTime = DateTime.Now,
                 KnowledgeCode = know.Code,
+                KnowledgeId = know.Id,
                 BrowseTime = browseTime
             };
             //浏览记录写入

+ 6 - 0
src/Hotline/KnowledgeBase/KnowledgePV.cs

@@ -8,6 +8,12 @@ namespace Hotline.KnowledgeBase;
 /// </summary>
 public class KnowledgePv : CreationEntity
 {
+    /// <summary>
+    /// 知识Code
+    /// </summary>
+    [SugarColumn(ColumnDescription = "知识Id")]
+    public string? KnowledgeId { get; set; }
+
     /// <summary>
     /// 知识Code
     /// </summary>