|
@@ -226,23 +226,24 @@ namespace Hotline.KnowledgeBase
|
|
|
knowledge.Status = EKnowledgeStatus.OnShelf;
|
|
|
await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
}
|
|
|
- else {
|
|
|
- //现有知识状态更改为已撤回
|
|
|
- knowledge.Status = EKnowledgeStatus.Revert;
|
|
|
- await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
- }
|
|
|
- //switch (workFlow.WorkflowModuleStatus)
|
|
|
- // {
|
|
|
- // case EKnowledgeApplyType.Add:
|
|
|
- // //将知识保存为草稿
|
|
|
- // knowledge.Status = EKnowledgeStatus.Drafts;
|
|
|
- // await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
- // break;
|
|
|
- // default:
|
|
|
- // //现有知识状态更改为已撤回
|
|
|
- // knowledge.Status = EKnowledgeStatus.Revert;
|
|
|
- // await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
- // break;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //现有知识状态更改为已撤回
|
|
|
+ knowledge.Status = EKnowledgeStatus.Revert;
|
|
|
+ await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ }
|
|
|
+ //switch (workFlow.WorkflowModuleStatus)
|
|
|
+ // {
|
|
|
+ // case EKnowledgeApplyType.Add:
|
|
|
+ // //将知识保存为草稿
|
|
|
+ // knowledge.Status = EKnowledgeStatus.Drafts;
|
|
|
+ // await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ // break;
|
|
|
+ // default:
|
|
|
+ // //现有知识状态更改为已撤回
|
|
|
+ // knowledge.Status = EKnowledgeStatus.Revert;
|
|
|
+ // await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ // break;
|
|
|
|
|
|
|
|
|
//}
|
|
@@ -324,14 +325,14 @@ namespace Hotline.KnowledgeBase
|
|
|
isSendType = "2";
|
|
|
break;
|
|
|
case WorkflowModuleConsts.KnowledgeOffshelf://下架
|
|
|
- //知识先下架
|
|
|
- knowledge.Status = EKnowledgeStatus.OffShelf;
|
|
|
- knowledge.OffShelfTime = System.DateTime.Now;
|
|
|
- knowledge.WorkflowId = workflow.Id;
|
|
|
- await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
- isSendType = "2";
|
|
|
- break;
|
|
|
- }
|
|
|
+ //知识先下架
|
|
|
+ knowledge.Status = EKnowledgeStatus.OffShelf;
|
|
|
+ knowledge.OffShelfTime = System.DateTime.Now;
|
|
|
+ knowledge.WorkflowId = workflow.Id;
|
|
|
+ await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ isSendType = "2";
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
#region 数据推送
|
|
|
var pushKnowledge = _mapper.Map<KnowledgeSendDto>(knowledge);
|
|
@@ -435,11 +436,18 @@ namespace Hotline.KnowledgeBase
|
|
|
|
|
|
public async Task<Knowledge> UpdateKnowledgeAsync(UpdateKnowledgeDto dto, CancellationToken cancellation)
|
|
|
{
|
|
|
- var knowledge = _mapper.Map<Knowledge>(dto);
|
|
|
+ var knowledge = await _knowledgeRepository.GetAsync(d => d.Id == dto.Id, cancellation);
|
|
|
+ if (knowledge == null)
|
|
|
+ throw UserFriendlyException.SameMessage("无效知识编号");
|
|
|
+ if (knowledge.Status == EKnowledgeStatus.OnShelf
|
|
|
+ || knowledge.Status == EKnowledgeStatus.Auditing
|
|
|
+ || (knowledge.ExpiredTime.HasValue && knowledge.ExpiredTime.Value > DateTime.Now))
|
|
|
+ throw UserFriendlyException.SameMessage("知识库数据不可修改");
|
|
|
var any = await _knowledgeRepository.Queryable()
|
|
|
.AnyAsync(x => x.Status == EKnowledgeStatus.OnShelf && x.Title == dto.Title && x.Id != dto.Id, cancellation);
|
|
|
if (any) throw UserFriendlyException.SameMessage("当前知识标题已存在!");
|
|
|
|
|
|
+ _mapper.Map(dto, knowledge);
|
|
|
if (dto.Files.Any())
|
|
|
knowledge.FileJson = await _fileRepository.AddFileAsync(dto.Files, knowledge.Id, "", cancellation);
|
|
|
else
|
|
@@ -461,18 +469,28 @@ namespace Hotline.KnowledgeBase
|
|
|
|
|
|
if (dto.KnowledgeType.Any())
|
|
|
{
|
|
|
- var knTypes = _mapper.Map<List<KnowledgeType>>(dto.KnowledgeType);
|
|
|
- knowledge.KnowledgeTypes = knTypes;
|
|
|
+ //var knTypes = _mapper.Map<List<KnowledgeType>>(dto.KnowledgeType);
|
|
|
+ //var knTypes = dto.KnowledgeType.Select(d => new KnowledgeType
|
|
|
+ //{
|
|
|
+ // Id = d.KnowledgeTypeId,
|
|
|
+ //}).ToList();
|
|
|
+ knowledge.KnowledgeTypes = dto.KnowledgeType.Select(d => new KnowledgeType
|
|
|
+ {
|
|
|
+ Id = d.KnowledgeTypeId,
|
|
|
+ }).ToList();
|
|
|
+ await _knowledgeRepository.UpdateNav(knowledge)
|
|
|
+ .Include(d => d.KnowledgeTypes)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ await _knowledgeRepository.UpdateAsync(knowledge, cancellation);
|
|
|
}
|
|
|
-
|
|
|
- await _knowledgeRepository.UpdateNav(knowledge)
|
|
|
- .Include(d => d.KnowledgeTypes)
|
|
|
- .ExecuteCommandAsync();
|
|
|
|
|
|
return knowledge;
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|