|
@@ -91,67 +91,6 @@ namespace Hotline.Api.Controllers
|
|
|
#endregion
|
|
|
|
|
|
#region 知识管理
|
|
|
- /// <summary>
|
|
|
- /// 知识库-知识修改-查询详情
|
|
|
- /// </summary>
|
|
|
- /// <param name="Id"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("updateinfo/{Id}")]
|
|
|
- public async Task<KnowledgeInfoDto> KnowledgeUpdateInfo(string Id)
|
|
|
- {
|
|
|
- var know = await _knowledgeRepository.GetAsync(Id, HttpContext.RequestAborted);
|
|
|
- if (know is null)
|
|
|
- throw UserFriendlyException.SameMessage("知识查询失败!");
|
|
|
-
|
|
|
- var knowledgeInfoDto = _mapper.Map<KnowledgeInfoDto>(know);
|
|
|
- //分类
|
|
|
- var type = await _knowledgeTypeRepository.GetAsync(know.KnowledgeTypeId, HttpContext.RequestAborted);
|
|
|
- if (type != null)
|
|
|
- knowledgeInfoDto.KnowledgeTypeName = type.SpliceName;
|
|
|
-
|
|
|
- //热点
|
|
|
- var hot = await _hotspotTypeRepository.GetAsync(know.HotspotId, HttpContext.RequestAborted);
|
|
|
- if (hot != null)
|
|
|
- knowledgeInfoDto.HotspotName = hot.HotSpotFullName;
|
|
|
- //收藏
|
|
|
- var collect = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == Id && x.CreatorId == _sessionContext.UserId);
|
|
|
- if (collect != null)
|
|
|
- knowledgeInfoDto.Collect = _mapper.Map<KnowledgeCollectDto>(collect);
|
|
|
-
|
|
|
- return knowledgeInfoDto;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 知识库-查询详情-增加浏览量
|
|
|
- /// </summary>
|
|
|
- /// <param name="Id">知识Id</param>
|
|
|
- /// <param name="IsAddPv">默认不增加,false不增加,true增加浏览量</param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("info/{Id}")]
|
|
|
- public async Task<KnowledgeShowInfoDto> KnowledgeInfo(string Id, bool? IsAddPv)
|
|
|
- {
|
|
|
- var knowledge = await _knowledgeDomainService.KnowledgeInfo(Id, HttpContext.RequestAborted);
|
|
|
- if (knowledge is null)
|
|
|
- throw UserFriendlyException.SameMessage("知识查询失败!");
|
|
|
-
|
|
|
- //转化
|
|
|
- var knowledgeShowInfoDto = _mapper.Map<KnowledgeShowInfoDto>(knowledge);
|
|
|
-
|
|
|
- //查询其他
|
|
|
- var user = await _userRepository.GetAsync(knowledge.CreatorId, HttpContext.RequestAborted);
|
|
|
- if (user != null)
|
|
|
- knowledgeShowInfoDto.CreatorName = user.Name;
|
|
|
- var type = await _knowledgeTypeRepository.GetAsync(knowledge.KnowledgeTypeId, HttpContext.RequestAborted);
|
|
|
- if (type != null)
|
|
|
- knowledgeShowInfoDto.KnowledgeTypeName = type.SpliceName;
|
|
|
- var hot = await _hotspotTypeRepository.GetAsync(knowledge.HotspotId, HttpContext.RequestAborted);
|
|
|
- if (hot != null)
|
|
|
- knowledgeShowInfoDto.HotspotName = hot.HotSpotFullName;
|
|
|
-
|
|
|
- if (IsAddPv == true)
|
|
|
- _mediator.Publish(new GetKnowledgeInfoNotify(knowledge));
|
|
|
- return knowledgeShowInfoDto;
|
|
|
- }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 知识库-新增
|
|
@@ -160,9 +99,9 @@ namespace Hotline.Api.Controllers
|
|
|
/// <returns></returns>
|
|
|
[Permission(EPermission.AddKnowledge)]
|
|
|
[HttpPost("add")]
|
|
|
- public async Task<string> AddKnowledge([FromBody] ScreenStartFlowDto dto)
|
|
|
+ public async Task<string> AddKnowledge([FromBody] AddStartFlowDto dto)
|
|
|
{
|
|
|
- var addDto = _mapper.Map<AddKnowledgeDto>(dto.Data);
|
|
|
+ var addDto = _mapper.Map<AddKnowledgeDto>(dto.Data);
|
|
|
var kn = _mapper.Map<Knowledge>(dto.Data);
|
|
|
//Code为空,从新生成Code
|
|
|
if (string.IsNullOrEmpty(kn.Code))
|
|
@@ -181,6 +120,7 @@ namespace Hotline.Api.Controllers
|
|
|
return id;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 知识库-知识下架
|
|
|
/// </summary>
|
|
@@ -224,6 +164,120 @@ namespace Hotline.Api.Controllers
|
|
|
throw UserFriendlyException.SameMessage("知识上架失败");
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-修改
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.KnowledgeDraftsUpdate)]
|
|
|
+ [HttpPut("update")]
|
|
|
+ public async Task UpdateKnowledge([FromBody] UpdateStartFlowDto dto)
|
|
|
+ {
|
|
|
+ var update = _mapper.Map<UpdateKnowledgeDto>(dto.Data);
|
|
|
+ var knowledge = await _knowledgeRepository.GetAsync(update.Id);
|
|
|
+ if (knowledge == null)
|
|
|
+ throw UserFriendlyException.SameMessage("知识库数据错误");
|
|
|
+ if (knowledge.Status != EKnowledgeStatus.Drafts)
|
|
|
+ throw UserFriendlyException.SameMessage("非草稿数据不可修改");
|
|
|
+ _mapper.Map(dto, knowledge);
|
|
|
+ if (update.Tags.Any()) await _repositoryts.UpdateVectorAsync(update.Id, update.Tags, HttpContext.RequestAborted);
|
|
|
+ await _knowledgeRepository.UpdateAsync(knowledge, HttpContext.RequestAborted);
|
|
|
+ if (dto.Workflow != null)
|
|
|
+ {
|
|
|
+ var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
+ startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeAdd;
|
|
|
+ startDto.Title = "知识库修改";
|
|
|
+ await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeAdd, EKnowledgeApplyType.Add, startDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除知识
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.KnowledgeDraftsDelete)]
|
|
|
+ [HttpDelete]
|
|
|
+ public async Task Remove([FromBody] DeleteStartFlowDto dto)
|
|
|
+ {
|
|
|
+ var delete = _mapper.Map<Knowledge>(dto.Data);
|
|
|
+ var knowledge = await _knowledgeRepository.GetAsync(delete.Id, HttpContext.RequestAborted);
|
|
|
+ if (knowledge == null) return;
|
|
|
+ if (knowledge.Status != EKnowledgeStatus.Drafts)
|
|
|
+ throw UserFriendlyException.SameMessage("非草稿数据不可删除");
|
|
|
+ await _knowledgeRepository.RemoveAsync(knowledge, false, HttpContext.RequestAborted);
|
|
|
+ var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
+ startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeDelete;
|
|
|
+ startDto.Title = "知识库删除";
|
|
|
+ await StartFlow(delete.Id, WorkflowModuleConsts.KnowledgeDelete, EKnowledgeApplyType.Add, startDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-知识修改-查询详情
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("updateinfo/{Id}")]
|
|
|
+ public async Task<KnowledgeInfoDto> KnowledgeUpdateInfo(string Id)
|
|
|
+ {
|
|
|
+ var know = await _knowledgeRepository.GetAsync(Id, HttpContext.RequestAborted);
|
|
|
+ if (know is null)
|
|
|
+ throw UserFriendlyException.SameMessage("知识查询失败!");
|
|
|
+
|
|
|
+ var knowledgeInfoDto = _mapper.Map<KnowledgeInfoDto>(know);
|
|
|
+ //分类
|
|
|
+ var type = await _knowledgeTypeRepository.GetAsync(know.KnowledgeTypeId, HttpContext.RequestAborted);
|
|
|
+ if (type != null)
|
|
|
+ knowledgeInfoDto.KnowledgeTypeName = type.SpliceName;
|
|
|
+
|
|
|
+ //热点
|
|
|
+ var hot = await _hotspotTypeRepository.GetAsync(know.HotspotId, HttpContext.RequestAborted);
|
|
|
+ if (hot != null)
|
|
|
+ knowledgeInfoDto.HotspotName = hot.HotSpotFullName;
|
|
|
+ //收藏
|
|
|
+ var collect = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == Id && x.CreatorId == _sessionContext.UserId);
|
|
|
+ if (collect != null)
|
|
|
+ knowledgeInfoDto.Collect = _mapper.Map<KnowledgeCollectDto>(collect);
|
|
|
+
|
|
|
+ return knowledgeInfoDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-查询详情-增加浏览量
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Id">知识Id</param>
|
|
|
+ /// <param name="IsAddPv">默认不增加,false不增加,true增加浏览量</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("info/{Id}")]
|
|
|
+ public async Task<KnowledgeShowInfoDto> KnowledgeInfo(string Id, bool? IsAddPv)
|
|
|
+ {
|
|
|
+ var knowledge = await _knowledgeDomainService.KnowledgeInfo(Id, HttpContext.RequestAborted);
|
|
|
+ if (knowledge is null)
|
|
|
+ throw UserFriendlyException.SameMessage("知识查询失败!");
|
|
|
+
|
|
|
+ //转化
|
|
|
+ var knowledgeShowInfoDto = _mapper.Map<KnowledgeShowInfoDto>(knowledge);
|
|
|
+
|
|
|
+ //查询其他
|
|
|
+ var user = await _userRepository.GetAsync(knowledge.CreatorId, HttpContext.RequestAborted);
|
|
|
+ if (user != null)
|
|
|
+ knowledgeShowInfoDto.CreatorName = user.Name;
|
|
|
+ var type = await _knowledgeTypeRepository.GetAsync(knowledge.KnowledgeTypeId, HttpContext.RequestAborted);
|
|
|
+ if (type != null)
|
|
|
+ knowledgeShowInfoDto.KnowledgeTypeName = type.SpliceName;
|
|
|
+ var hot = await _hotspotTypeRepository.GetAsync(knowledge.HotspotId, HttpContext.RequestAborted);
|
|
|
+ if (hot != null)
|
|
|
+ knowledgeShowInfoDto.HotspotName = hot.HotSpotFullName;
|
|
|
+ //收藏
|
|
|
+ var collect = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == Id && x.CreatorId == _sessionContext.UserId);
|
|
|
+ if (collect != null)
|
|
|
+ knowledgeShowInfoDto.Collect = _mapper.Map<KnowledgeCollectDto>(collect);
|
|
|
+
|
|
|
+ if (IsAddPv == true)
|
|
|
+ _mediator.Publish(new GetKnowledgeInfoNotify(knowledge));
|
|
|
+ return knowledgeShowInfoDto;
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 知识申请-关联知识-获取知识列表
|
|
|
/// </summary>
|
|
@@ -254,9 +308,7 @@ namespace Hotline.Api.Controllers
|
|
|
return _mapper.Map<IReadOnlyList<KnowledgeCreateBMDataDto>>(temp);
|
|
|
|
|
|
}
|
|
|
- #endregion
|
|
|
|
|
|
- #region 我的草稿箱
|
|
|
/// <summary>
|
|
|
/// 我的草稿箱
|
|
|
/// </summary>
|
|
@@ -281,57 +333,6 @@ namespace Hotline.Api.Controllers
|
|
|
return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 知识库-修改知识草稿
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [Permission(EPermission.KnowledgeDraftsUpdate)]
|
|
|
- [HttpPut("update")]
|
|
|
- public async Task UpdateKnowledge([FromBody] ScreenStartFlowDto dto)
|
|
|
- {
|
|
|
- var update = _mapper.Map<UpdateKnowledgeDto>(dto.Data);
|
|
|
- var knowledge = await _knowledgeRepository.GetAsync(update.Id);
|
|
|
- if (knowledge == null)
|
|
|
- throw UserFriendlyException.SameMessage("知识库数据错误");
|
|
|
- if (knowledge.Status != EKnowledgeStatus.Drafts)
|
|
|
- throw UserFriendlyException.SameMessage("非草稿数据不可修改");
|
|
|
- _mapper.Map(dto, knowledge);
|
|
|
- if (update.Tags.Any()) await _repositoryts.UpdateVectorAsync(update.Id, update.Tags, HttpContext.RequestAborted);
|
|
|
- await _knowledgeRepository.UpdateAsync(knowledge, HttpContext.RequestAborted);
|
|
|
- if (dto.Workflow != null)
|
|
|
- {
|
|
|
- var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
- startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeAdd;
|
|
|
- startDto.Title = "知识库修改";
|
|
|
- await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeAdd, EKnowledgeApplyType.Add, startDto);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 删除知识草稿
|
|
|
- /// </summary>
|
|
|
- /// <param name="id"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [Permission(EPermission.KnowledgeDraftsDelete)]
|
|
|
- [HttpDelete]
|
|
|
- public async Task Remove([FromBody] ScreenStartFlowDto dto)
|
|
|
- {
|
|
|
- var delete = _mapper.Map<Knowledge>(dto.Data);
|
|
|
- var knowledge = await _knowledgeRepository.GetAsync(delete.Id, HttpContext.RequestAborted);
|
|
|
- if (knowledge == null) return;
|
|
|
- if (knowledge.Status != EKnowledgeStatus.Drafts)
|
|
|
- throw UserFriendlyException.SameMessage("非草稿数据不可删除");
|
|
|
- await _knowledgeRepository.RemoveAsync(knowledge, false, HttpContext.RequestAborted);
|
|
|
- var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
- startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeDelete;
|
|
|
- startDto.Title = "知识库删除";
|
|
|
- await StartFlow(delete.Id, WorkflowModuleConsts.KnowledgeDelete, EKnowledgeApplyType.Add, startDto);
|
|
|
- }
|
|
|
-
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region 知识列表
|
|
|
/// <summary>
|
|
|
/// 知识库列表页面枚举值
|
|
|
/// </summary>
|
|
@@ -383,9 +384,6 @@ namespace Hotline.Api.Controllers
|
|
|
return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(temp));
|
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region 知识检索
|
|
|
/// <summary>
|
|
|
/// 知识检索
|
|
|
/// </summary>
|