|
@@ -20,6 +20,7 @@ using Hotline.Users;
|
|
|
using MapsterMapper;
|
|
|
using MediatR;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
+using Microsoft.IdentityModel.Tokens;
|
|
|
using Org.BouncyCastle.Utilities;
|
|
|
using Polly.Caching;
|
|
|
using SqlSugar;
|
|
@@ -218,10 +219,20 @@ namespace Hotline.Api.Controllers
|
|
|
await _knowledgeRepository.UpdateAsync(knowledge, HttpContext.RequestAborted);
|
|
|
if (dto.Workflow != null)
|
|
|
{
|
|
|
- var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
- startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeUpdate;
|
|
|
- startDto.Title = "知识库修改";
|
|
|
- await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeUpdate, EKnowledgeApplyType.Update, startDto);
|
|
|
+ if (update.Status == EKnowledgeStatus.Drafts)
|
|
|
+ {
|
|
|
+ var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
+ startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeAdd;
|
|
|
+ startDto.Title = "知识库新增";
|
|
|
+ await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeAdd, EKnowledgeApplyType.Update, startDto);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
+ startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeUpdate;
|
|
|
+ startDto.Title = "知识库修改";
|
|
|
+ await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeUpdate, EKnowledgeApplyType.Update, startDto);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -460,7 +471,9 @@ namespace Hotline.Api.Controllers
|
|
|
.Includes(x => x.HotspotType)
|
|
|
.Includes(x=>x.SourceOrganize)
|
|
|
.Where(x => x.IsDeleted == false)
|
|
|
+ .Where(x=> (x.Status == EKnowledgeStatus.Drafts && x.CreatorId == _sessionContext.UserId) || (x.Status != EKnowledgeStatus.Drafts))
|
|
|
.WhereIF(!string.IsNullOrEmpty(pagedDto.Title), x => x.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Keyword),x=>x.Title.Contains(pagedDto.Keyword!) || x.CreatorName.Contains(pagedDto.Keyword!) || x.CreatorOrgName.Contains(pagedDto.Keyword!) || x.SourceOrganize.Name.Contains(pagedDto.Keyword!))
|
|
|
.WhereIF(pagedDto.Status.HasValue, x => x.Status == pagedDto.Status && ((x.ExpiredTime != null && x.ExpiredTime > DateTime.Now)|| x.ExpiredTime == null))
|
|
|
.WhereIF(pagedDto.IsPublic.HasValue, x => x.IsPublic == pagedDto.IsPublic)
|
|
|
.WhereIF(!string.IsNullOrEmpty(pagedDto.Summary), x => x.Summary != null && x.Summary.Contains(pagedDto.Summary!))
|