|
@@ -1,5 +1,4 @@
|
|
|
-using DocumentFormat.OpenXml.Wordprocessing;
|
|
|
-using DotNetCore.CAP;
|
|
|
+using DotNetCore.CAP;
|
|
|
using Hotline.Api.Filter;
|
|
|
using Hotline.Application.Bulletin;
|
|
|
using Hotline.Application.ExportExcel;
|
|
@@ -13,14 +12,11 @@ using Hotline.FlowEngine.WorkflowModules;
|
|
|
using Hotline.FlowEngine.Workflows;
|
|
|
using Hotline.KnowledgeBase;
|
|
|
using Hotline.KnowledgeBase.Notifies;
|
|
|
-using Hotline.Permissions;
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
-using Hotline.Repository.SqlSugar.Knowledge;
|
|
|
using Hotline.Repository.SqlSugar.Ts;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Settings.Hotspots;
|
|
|
using Hotline.Share.Dtos;
|
|
|
-using Hotline.Share.Dtos.File;
|
|
|
using Hotline.Share.Dtos.FlowEngine;
|
|
|
using Hotline.Share.Dtos.Knowledge;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
@@ -30,24 +26,18 @@ using Hotline.Share.Enums.KnowledgeBase;
|
|
|
using Hotline.Share.Mq;
|
|
|
using Hotline.Share.Tools;
|
|
|
using Hotline.Users;
|
|
|
-using J2N.Text;
|
|
|
using Mapster;
|
|
|
using MapsterMapper;
|
|
|
using MediatR;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
-using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
|
|
-using Org.BouncyCastle.Utilities.IO;
|
|
|
using SqlSugar;
|
|
|
using System.Text;
|
|
|
-using System.Threading;
|
|
|
using Hotline.Configurations;
|
|
|
using Microsoft.Extensions.Options;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Exceptions;
|
|
|
using XF.Domain.Repository;
|
|
|
using XF.Utility.EnumExtensions;
|
|
|
-using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
|
|
|
-using Hotline.Share.Dtos.Schedulings;
|
|
|
|
|
|
namespace Hotline.Api.Controllers
|
|
|
{
|
|
@@ -57,6 +47,7 @@ namespace Hotline.Api.Controllers
|
|
|
#region 注入
|
|
|
private readonly IExportApplication _exportApplication;
|
|
|
private readonly IRepository<KnowledgeHotWord> _knowledgeHotWordRepository;
|
|
|
+ private readonly IRepository<KnowledgeApprove> _knowledgeApproRepository;
|
|
|
private readonly IRepository<KnowledgeWord> _knowledgeWordRepository;
|
|
|
private readonly IWordHelperService _wordHelperService;
|
|
|
private readonly BaseDataApplication _baseDataApplication;
|
|
@@ -122,7 +113,8 @@ namespace Hotline.Api.Controllers
|
|
|
IRepository<KnowledgeWord> knowledgeWordRepository,
|
|
|
IRepository<KnowledgeHotWord> knowledgeWordHotRepository,
|
|
|
IOptionsSnapshot<AppConfiguration> appOptions,
|
|
|
- IRepository<KnowledgeHotWord> knowledgeHotWordRepository)
|
|
|
+ IRepository<KnowledgeHotWord> knowledgeHotWordRepository,
|
|
|
+ IRepository<KnowledgeApprove> knowledgeApproRepository)
|
|
|
{
|
|
|
_knowledgeRepository = knowledgeRepository;
|
|
|
_sessionContext = sessionContext;
|
|
@@ -155,6 +147,7 @@ namespace Hotline.Api.Controllers
|
|
|
_knowledgePvepository = knowledgePvepository;
|
|
|
_knowledgeWordRepository = knowledgeWordRepository;
|
|
|
_knowledgeHotWordRepository = knowledgeHotWordRepository;
|
|
|
+ _knowledgeApproRepository = knowledgeApproRepository;
|
|
|
_appOptions = appOptions;
|
|
|
}
|
|
|
|
|
@@ -208,6 +201,50 @@ namespace Hotline.Api.Controllers
|
|
|
return kn.Id;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-新增(new)
|
|
|
+ /// </summary>
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<string> Add([FromBody] AddKnowledgeDto dto)
|
|
|
+ {
|
|
|
+ //add kn
|
|
|
+ var kn = _mapper.Map<Knowledge>(dto);
|
|
|
+ kn.SourceOrganizeId = _sessionContext.RequiredOrgId;
|
|
|
+ var any = await _knowledgeRepository.Queryable().Where(x => x.Status == EKnowledgeStatus.OnShelf && x.Title == kn.Title).AnyAsync();
|
|
|
+ if (any) throw UserFriendlyException.SameMessage("当前知识标题存在重复标题!");
|
|
|
+
|
|
|
+ //Code为空,从新生成Code
|
|
|
+ if (string.IsNullOrEmpty(kn.Code))
|
|
|
+ kn.Code = Convert.ToInt64((DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds).ToString();
|
|
|
+
|
|
|
+ kn.Status = EKnowledgeStatus.Drafts;
|
|
|
+ kn.InitId();
|
|
|
+ if (dto.Files.NotNullOrEmpty()) kn.FileJson = await _fileRepository.AddFileAsync(dto.Files, kn.Id, "", HttpContext.RequestAborted);
|
|
|
+ //await _knowledgeRepository.AddAsync(kn, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (dto.KnowledgeType.Any())
|
|
|
+ {
|
|
|
+ List<KnowledgeRelationType> types = _mapper.Map<List<KnowledgeRelationType>>(dto.Data.KnowledgeType);
|
|
|
+ types.ForEach(x => x.KnowledgeId = kn.Id);
|
|
|
+ await _knowledgeRelationTypeRepository.AddRangeAsync(types, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //发起新增审批
|
|
|
+ var approveAdd = new KnowledgeApprove
|
|
|
+ {
|
|
|
+ KnowledgeId = kn.Id,
|
|
|
+ KnowledgeApproveType = EKnowledgeApproveType.Add,
|
|
|
+ KnowledgeApproveStatus = EKnowledgeApproveStatus.Unhandle,
|
|
|
+ Knowledge = kn
|
|
|
+ };
|
|
|
+ await _knowledgeApproRepository.AddNav(approveAdd)
|
|
|
+ .Include(d => d.Knowledge)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+
|
|
|
+ return kn.Id;
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 知识库-知识下架
|
|
|
/// </summary>
|
|
@@ -361,10 +398,21 @@ namespace Hotline.Api.Controllers
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 批量审核
|
|
|
+ /// 知识库-修改(new)
|
|
|
/// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
- [HttpPost("batch_audit")]
|
|
|
+ [HttpPut]
|
|
|
+ [LogFilter("知识修改")]
|
|
|
+ public async Task UpdateKnowledge([FromBody] UpdateKnowledgeDto dto)
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 批量审核
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("batch_audit")]
|
|
|
public async Task<string> KnowledgeBatchAuditAsync([FromBody] KnowledgeBatchAuditInDto dto)
|
|
|
{
|
|
|
var result = new StringBuilder();
|
|
@@ -1635,5 +1683,9 @@ namespace Hotline.Api.Controllers
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
+
|
|
|
+ #region 知识审批
|
|
|
+
|
|
|
+ #endregion
|
|
|
}
|
|
|
}
|