|
@@ -0,0 +1,413 @@
|
|
|
+using Hotline.KnowledgeBase;
|
|
|
+using Hotline.Repository.SqlSugar;
|
|
|
+using Hotline.Share.Dtos;
|
|
|
+using Hotline.Share.Dtos.Knowledge;
|
|
|
+using Hotline.Share.Enums.KnowledgeBase;
|
|
|
+using Identity.Shared.Dtos;
|
|
|
+using MapsterMapper;
|
|
|
+using Microsoft.AspNetCore.Mvc;
|
|
|
+using XF.Domain.Exceptions;
|
|
|
+
|
|
|
+namespace Hotline.Api.Controllers
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public class KnowledgeController : BaseController
|
|
|
+ {
|
|
|
+ private readonly IKnowledgeRepository _knowledgeRepository;
|
|
|
+ private readonly IKnowledgeTempRepository _knowledgeTempRepository;
|
|
|
+ private readonly IKnowledgePVRepository _knowledgePVRepository;
|
|
|
+ private readonly IMapper _mapper;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="knowledgeRepository"></param>
|
|
|
+ /// <param name="knowledgeTempRepository"></param>
|
|
|
+ /// <param name="knowledgePVRepository"></param>
|
|
|
+ /// <param name="mapper"></param>
|
|
|
+ public KnowledgeController(IKnowledgeRepository knowledgeRepository, IKnowledgeTempRepository knowledgeTempRepository, IKnowledgePVRepository knowledgePVRepository, IMapper mapper)
|
|
|
+ {
|
|
|
+ _knowledgeRepository = knowledgeRepository;
|
|
|
+ _knowledgeTempRepository = knowledgeTempRepository;
|
|
|
+ _knowledgePVRepository = knowledgePVRepository;
|
|
|
+ _mapper = mapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 草稿箱-新增
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledgetemp-add")]
|
|
|
+ public async Task<string> KnowledgeTempAdd([FromBody] KnowledgeDto dto)
|
|
|
+ {
|
|
|
+ var kn = _mapper.Map<KnowledgeTemp>(dto);
|
|
|
+ kn.Code = Convert.ToInt64((DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds).ToString();
|
|
|
+ kn.PageView = 0;
|
|
|
+ kn.CreationTime = DateTime.Now;
|
|
|
+ return await _knowledgeTempRepository.AddAsync(kn);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 草稿箱-修改
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledgetemp-update")]
|
|
|
+ public async Task KnowledgeTempUpdate([FromBody] UpdateKnowledgeDto dto)
|
|
|
+ {
|
|
|
+ var kn = _mapper.Map<KnowledgeTemp>(dto);
|
|
|
+ await _knowledgeTempRepository.UpdateAsync(kn);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 草稿箱-查询详情
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("knowledgetemp-info")]
|
|
|
+ public async Task<KnowledgeTemp> KnowledgeTempInfo(string Id)
|
|
|
+ {
|
|
|
+ var temp = await _knowledgeTempRepository.GetAsync(Id);
|
|
|
+ if (temp is null)
|
|
|
+ throw UserFriendlyException.SameMessage("知识草稿查询失败!");
|
|
|
+ return temp;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-知识修改-查询详情
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("knowledge-updateinfo")]
|
|
|
+ public async Task<Knowledge> KnowledgeUpdateInfo(string Id)
|
|
|
+ {
|
|
|
+ var know = await _knowledgeRepository.GetAsync(Id);
|
|
|
+ if (know is null)
|
|
|
+ throw UserFriendlyException.SameMessage("知识查询失败!");
|
|
|
+ return know;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-查询详情
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("knowledge-info")]
|
|
|
+ public async Task<Knowledge> KnowledgeInfo(string Id)
|
|
|
+ {
|
|
|
+ var know = await _knowledgeRepository.GetAsync(Id);
|
|
|
+ if (know is null)
|
|
|
+ throw UserFriendlyException.SameMessage("知识查询失败!");
|
|
|
+ //写入浏览记录
|
|
|
+ KnowledgePv knowledgePV = new()
|
|
|
+ {
|
|
|
+ CreationTime = DateTime.Now,
|
|
|
+ KnowledgeId = know.Id
|
|
|
+ };
|
|
|
+ await _knowledgePVRepository.AddAsync(knowledgePV);
|
|
|
+ return know;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-新增
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-add")]
|
|
|
+ public async Task<string> KnowledgeAdd([FromBody] AddKnowledgeDto dto)
|
|
|
+ {
|
|
|
+ var kn = _mapper.Map<Knowledge>(dto);
|
|
|
+ if (string.IsNullOrEmpty(kn.Code))
|
|
|
+ kn.Code = Convert.ToInt64((DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds).ToString();
|
|
|
+ kn.PageView = 0;
|
|
|
+ kn.CreationTime = DateTime.Now;
|
|
|
+ kn.Status = EKnowledgeStatus.Auditing;
|
|
|
+ return await _knowledgeRepository.AddAsync(kn);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 知识库-修改
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-update")]
|
|
|
+ public async Task KnowledgeUpdate([FromBody] UpdateKnowledgeDto dto)
|
|
|
+ {
|
|
|
+ var know = await _knowledgeRepository.GetAsync(dto.Id);
|
|
|
+ if (know is null || know.IsDeleted)
|
|
|
+ throw UserFriendlyException.SameMessage("无效知识编号");
|
|
|
+ _mapper.Map(dto, know);
|
|
|
+ await _knowledgeRepository.UpdateAsync(know);
|
|
|
+ }
|
|
|
+
|
|
|
+ #region 知识列表
|
|
|
+ /// <summary>
|
|
|
+ /// 我的草稿箱
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-mydraftslist")]
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> MyDraftsList([FromBody] MyDraftsListPagedDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeTempRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.CreateUserId == pagedDto.CreateUserId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), d => d.KnowledgeTypeId == pagedDto.KnowledgeTypeId)
|
|
|
+ .WhereIF(pagedDto.StartTime != null, d => d.CreationTime >= pagedDto.StartTime)
|
|
|
+ .WhereIF(pagedDto.EndTime != null, d => d.CreationTime <= pagedDto.EndTime)
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 全部知识
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-alllist")]
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> AllList([FromBody] KnowledgePagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.IsDeleted == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), d => d.KnowledgeTypeId == pagedDto.KnowledgeTypeId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), d => d.HotspotId == pagedDto.HotspotId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMCode), d => d.AutoOrgCode == pagedDto.CreateBMCode)
|
|
|
+ .WhereIF(pagedDto.StartTime != null, d => d.OnShelfTime >= pagedDto.StartTime)
|
|
|
+ .WhereIF(pagedDto.EndTime != null, d => d.OnShelfTime <= pagedDto.EndTime)
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 已上架
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-ontheshelf")]
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> OnTheShelf([FromBody] KnowledgePagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.IsOnShelf == true && p.Status == EKnowledgeStatus.Succeed && p.IsDeleted == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), d => d.KnowledgeTypeId == pagedDto.KnowledgeTypeId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), d => d.HotspotId == pagedDto.HotspotId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMCode), d => d.AutoOrgCode == pagedDto.CreateBMCode)
|
|
|
+ .WhereIF(pagedDto.StartTime != null, d => d.OnShelfTime >= pagedDto.StartTime)
|
|
|
+ .WhereIF(pagedDto.EndTime != null, d => d.OnShelfTime <= pagedDto.EndTime)
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 已下架
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-offshelf")]
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> OffShelf([FromBody] KnowledgePagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.IsOnShelf == false && p.Status == EKnowledgeStatus.Succeed && p.IsDeleted == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), d => d.KnowledgeTypeId == pagedDto.KnowledgeTypeId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), d => d.HotspotId == pagedDto.HotspotId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMCode), d => d.AutoOrgCode == pagedDto.CreateBMCode)
|
|
|
+ .WhereIF(pagedDto.StartTime != null, d => d.OffShelfTime >= pagedDto.StartTime)
|
|
|
+ .WhereIF(pagedDto.EndTime != null, d => d.OffShelfTime <= pagedDto.EndTime)
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 审批中
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-underapproval")]
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> UnderApproval([FromBody] KnowledgePagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.Status == EKnowledgeStatus.Auditing && p.IsDeleted == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), d => d.KnowledgeTypeId == pagedDto.KnowledgeTypeId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), d => d.HotspotId == pagedDto.HotspotId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMCode), d => d.AutoOrgCode == pagedDto.CreateBMCode)
|
|
|
+ .WhereIF(pagedDto.StartTime != null, d => d.CreationTime >= pagedDto.StartTime)
|
|
|
+ .WhereIF(pagedDto.EndTime != null, d => d.CreationTime <= pagedDto.EndTime)
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 审批完成
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-approved")]
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> Approved([FromBody] KnowledgePagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.Status == EKnowledgeStatus.Succeed && p.IsDeleted == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), d => d.KnowledgeTypeId == pagedDto.KnowledgeTypeId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), d => d.HotspotId == pagedDto.HotspotId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMCode), d => d.AutoOrgCode == pagedDto.CreateBMCode)
|
|
|
+ .WhereIF(pagedDto.StartTime != null, d => d.CreationTime >= pagedDto.StartTime)
|
|
|
+ .WhereIF(pagedDto.EndTime != null, d => d.CreationTime <= pagedDto.EndTime)
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 审批不通过
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-approvalfailed")]
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> ApprovalFailed([FromBody] KnowledgePagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.Status == EKnowledgeStatus.Failed && p.IsDeleted == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), d => d.KnowledgeTypeId == pagedDto.KnowledgeTypeId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), d => d.HotspotId == pagedDto.HotspotId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMCode), d => d.AutoOrgCode == pagedDto.CreateBMCode)
|
|
|
+ .WhereIF(pagedDto.StartTime != null, d => d.CreationTime >= pagedDto.StartTime)
|
|
|
+ .WhereIF(pagedDto.EndTime != null, d => d.CreationTime <= pagedDto.EndTime)
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 待审核
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-tobereviewed")]
|
|
|
+ public async Task<PagedDto<KnowledgeApprovalDataDto>> ToBeReviewed([FromBody] KnowledgeApprovalPagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.IsDeleted == false&&p.Status== EKnowledgeStatus.Auditing&&p.AssignUserIds.Contains(pagedDto.UserId!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeApprovalDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeApprovalDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 审核通过
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-approvedlist")]
|
|
|
+ public async Task<PagedDto<KnowledgeApprovalDataDto>> ApprovedList([FromBody] KnowledgeApprovalPagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.IsDeleted == false && p.Status == EKnowledgeStatus.Succeed && p.AssignUserIds.Contains(pagedDto.UserId!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeApprovalDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeApprovalDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 审核不通过
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("knowledge-approvedfailedlist")]
|
|
|
+ public async Task<PagedDto<KnowledgeApprovalDataDto>> ApprovedFailedList([FromBody] KnowledgeApprovalPagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Includes(it => it.User)
|
|
|
+ .Includes(it => it.SystemOrganize)
|
|
|
+ .Includes(it => it.KnowledgeType)
|
|
|
+ .Where(p => p.IsDeleted == false && p.Status == EKnowledgeStatus.Failed && p.AssignUserIds.Contains(pagedDto.UserId!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
|
|
|
+
|
|
|
+ .OrderByDescending(p => p.CreationTime)
|
|
|
+ .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeApprovalDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeApprovalDataDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|