|
@@ -5,6 +5,7 @@ using Hotline.KnowledgeBase;
|
|
|
using Hotline.KnowledgeBase.Notifies;
|
|
|
using Hotline.Permissions;
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
+using Hotline.Repository.SqlSugar.Ts;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Settings.Hotspots;
|
|
|
using Hotline.Share.Dtos;
|
|
@@ -41,25 +42,26 @@ namespace Hotline.Api.Controllers
|
|
|
private readonly IRepository<User> _userRepository;
|
|
|
private readonly IRepository<KnowledgeType> _knowledgeTypeRepository;
|
|
|
private readonly IRepository<Hotspot> _hotspotTypeRepository;
|
|
|
-
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- ///
|
|
|
- /// </summary>
|
|
|
- /// <param name="knowledgeRepository"></param>
|
|
|
- /// <param name="sessionContext"></param>
|
|
|
- /// <param name="knowledgeDomainService"></param>
|
|
|
- /// <param name="mapper"></param>
|
|
|
- /// <param name="knowApplication"></param>
|
|
|
- /// <param name="mediator"></param>
|
|
|
- /// <param name="workflowApplication"></param>
|
|
|
- /// <param name="knowledgeWorkFlowRepository"></param>
|
|
|
- /// <param name="userRepository"></param>
|
|
|
- /// <param name="knowledgeTypeRepository"></param>
|
|
|
- /// <param name="hotspotTypeRepository"></param>
|
|
|
- public KnowledgeController(IKnowledgeRepository knowledgeRepository, ISessionContext sessionContext, IKnowledgeDomainService knowledgeDomainService, IMapper mapper, IKnowApplication knowApplication,
|
|
|
+ private readonly IRepositoryTextSearch<KnowledgeTs> _repositoryts;
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="knowledgeRepository"></param>
|
|
|
+ /// <param name="sessionContext"></param>
|
|
|
+ /// <param name="knowledgeDomainService"></param>
|
|
|
+ /// <param name="mapper"></param>
|
|
|
+ /// <param name="knowApplication"></param>
|
|
|
+ /// <param name="mediator"></param>
|
|
|
+ /// <param name="workflowApplication"></param>
|
|
|
+ /// <param name="knowledgeWorkFlowRepository"></param>
|
|
|
+ /// <param name="userRepository"></param>
|
|
|
+ /// <param name="knowledgeTypeRepository"></param>
|
|
|
+ /// <param name="hotspotTypeRepository"></param>
|
|
|
+ public KnowledgeController(IKnowledgeRepository knowledgeRepository, ISessionContext sessionContext, IKnowledgeDomainService knowledgeDomainService, IMapper mapper, IKnowApplication knowApplication,
|
|
|
IMediator mediator, IWorkflowApplication workflowApplication, IKnowledgeWorkFlowRepository knowledgeWorkFlowRepository
|
|
|
- , IRepository<User> userRepository, IRepository<KnowledgeType> knowledgeTypeRepository, IRepository<Hotspot> hotspotTypeRepository)
|
|
|
+ , IRepository<User> userRepository, IRepository<KnowledgeType> knowledgeTypeRepository, IRepository<Hotspot> hotspotTypeRepository, IRepositoryTextSearch<KnowledgeTs> repositoryts)
|
|
|
{
|
|
|
_knowledgeRepository = knowledgeRepository;
|
|
|
_sessionContext = sessionContext;
|
|
@@ -72,7 +74,9 @@ namespace Hotline.Api.Controllers
|
|
|
_userRepository = userRepository;
|
|
|
_knowledgeTypeRepository = knowledgeTypeRepository;
|
|
|
_hotspotTypeRepository = hotspotTypeRepository;
|
|
|
- }
|
|
|
+ _repositoryts = repositoryts;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
#endregion
|
|
|
|
|
@@ -151,7 +155,9 @@ namespace Hotline.Api.Controllers
|
|
|
kn.Code = Convert.ToInt64((DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds).ToString();
|
|
|
|
|
|
kn.Status = EKnowledgeStatus.Drafts;
|
|
|
- return await _knowledgeRepository.AddAsync(kn, HttpContext.RequestAborted);
|
|
|
+ var id = await _knowledgeRepository.AddAsync(kn, HttpContext.RequestAborted);
|
|
|
+ if (dto.Tags.Any()) await _repositoryts.AddVectorAsync(id, DateTime.Now, dto.Tags, HttpContext.RequestAborted);
|
|
|
+ return id;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -266,8 +272,8 @@ namespace Hotline.Api.Controllers
|
|
|
if (dto.Status != EKnowledgeStatus.Drafts)
|
|
|
throw UserFriendlyException.SameMessage("非草稿数据不可修改");
|
|
|
var kn = _mapper.Map<Knowledge>(dto);
|
|
|
-
|
|
|
- await _knowledgeRepository.UpdateAsync(kn, HttpContext.RequestAborted);
|
|
|
+ if (dto.Tags.Any()) await _repositoryts.UpdateVectorAsync(dto.Id, dto.Tags, HttpContext.RequestAborted);
|
|
|
+ await _knowledgeRepository.UpdateAsync(kn, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|