|
@@ -1,20 +1,16 @@
|
|
|
using DotNetCore.CAP;
|
|
|
-using Hotline.Share.Dtos.Knowledge;
|
|
|
-using Hotline.Share.Dtos;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
+using Hotline.Share.Enums.Order;
|
|
|
using MapsterMapper;
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using Sharing.ConvergenceMedia.Dtos;
|
|
|
using Sharing.Orders;
|
|
|
using Sharing.Share.Dtos.ConvergenceMedia;
|
|
|
using Sharing.WebCore;
|
|
|
-using System.Threading;
|
|
|
-using XF.Domain.Authentications;
|
|
|
-using XF.Domain.Repository;
|
|
|
-using Microsoft.IdentityModel.Tokens;
|
|
|
using SqlSugar;
|
|
|
-using Hotline.Share.Enums.Order;
|
|
|
+using XF.Domain.Repository;
|
|
|
|
|
|
namespace Sharing.ConvergenceMedia.Controllers
|
|
|
{
|
|
@@ -25,6 +21,7 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
private readonly IChannelConfigurationManager _channelConfigurationManager;
|
|
|
private readonly IRepository<MediaDataReceive> _mediaDataReceiveRepository;
|
|
|
private readonly IDataOrderRepository _dataOrderRepository;
|
|
|
+ private readonly IRepository<DataOrderWorkFlow> _dataOrderWorkFlowRepository;
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
@@ -34,14 +31,16 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
/// <param name="channelConfigurationManager"></param>
|
|
|
/// <param name="mediaDataReceiveRepository"></param>
|
|
|
/// <param name="dataOrderRepository"></param>
|
|
|
+ /// <param name="dataOrderWorkFlowRepository"></param>
|
|
|
public ConvergenceMediaController(IMapper mapper, ICapPublisher capPublisher, IChannelConfigurationManager channelConfigurationManager,
|
|
|
- IRepository<MediaDataReceive> mediaDataReceiveRepository, IDataOrderRepository dataOrderRepository)
|
|
|
+ IRepository<MediaDataReceive> mediaDataReceiveRepository, IDataOrderRepository dataOrderRepository, IRepository<DataOrderWorkFlow> dataOrderWorkFlowRepository)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
_capPublisher = capPublisher;
|
|
|
_channelConfigurationManager = channelConfigurationManager;
|
|
|
_mediaDataReceiveRepository = mediaDataReceiveRepository;
|
|
|
_dataOrderRepository = dataOrderRepository;
|
|
|
+ _dataOrderWorkFlowRepository = dataOrderWorkFlowRepository;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -51,21 +50,18 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("WriteOrder")]
|
|
|
[AllowAnonymous]
|
|
|
- public async Task<DeReponse<WriteOrderResponseDto>> WriteOrder([FromBody] MediaDataReceiveDto mediaDataReceiveDto)
|
|
|
+ public async Task<List<DeReponse<WriteOrderResponseDto>>> WriteOrder([FromBody] MediaDataReceiveDto mediaDataReceiveDto)
|
|
|
{
|
|
|
- // 验证
|
|
|
- if (mediaDataReceiveDto is null)
|
|
|
- return DeReponse<WriteOrderResponseDto>.Failed(new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = "数据解析失败", Code = "0" }, "1", "数据解析失败");
|
|
|
+ //验证密钥
|
|
|
+ var mediaCode = _channelConfigurationManager.GetConfigurationMediaCode();
|
|
|
+ if (mediaCode.MediaCode.ToLower().Trim() != mediaDataReceiveDto.Code.ToLower().Trim())
|
|
|
+ return DeReponse<WriteOrderResponseDto>.Failed(new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = "密钥错误", Code = "-900" }, "1", "密钥错误");
|
|
|
|
|
|
//验证数据
|
|
|
string strResult = mediaDataReceiveDto.Validate();
|
|
|
if (!string.IsNullOrEmpty(strResult))
|
|
|
return DeReponse<WriteOrderResponseDto>.Failed(new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = strResult, Code = "0" }, "1", description: strResult);
|
|
|
|
|
|
- var mediaCode = _channelConfigurationManager.GetConfigurationMediaCode();
|
|
|
- if (mediaCode.MediaCode.ToLower().Trim() != mediaDataReceiveDto.Code.ToLower().Trim())
|
|
|
- return DeReponse<WriteOrderResponseDto>.Failed(new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = "密钥错误", Code = "-900" }, "1", "密钥错误");
|
|
|
-
|
|
|
//转换数据
|
|
|
var dto = _mapper.Map<MediaDataReceive>(mediaDataReceiveDto);
|
|
|
//添加数据
|
|
@@ -178,12 +174,14 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("GetOrderByList")]
|
|
|
[AllowAnonymous]
|
|
|
- public async Task<DeReponse<GetOrderMediaDataDto>> GetOrderByList([FromBody] GetOrderMediaReceiveDto dto)
|
|
|
+ public async Task<List<DeReponse<GetOrderMediaDataDto>>> GetOrderByList([FromBody] GetOrderMediaReceiveDto dto)
|
|
|
{
|
|
|
+ //密钥验证
|
|
|
var mediaCode = _channelConfigurationManager.GetConfigurationMediaCode();
|
|
|
if (mediaCode.MediaCode.ToLower().Trim() != dto.Code.ToLower().Trim())
|
|
|
- return DeReponse<GetOrderMediaDataDto>.Failed(new GetOrderMediaDataDto(), "0", "密钥错误");
|
|
|
+ return DeReponse<GetOrderMediaDataDto>.Failed(null, "0", "密钥错误");
|
|
|
|
|
|
+ //数据处理
|
|
|
string AcceptTypeCode = "";
|
|
|
switch (dto.PurTypeID)
|
|
|
{
|
|
@@ -210,6 +208,7 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ //数据查询
|
|
|
RefAsync<int> total = 0;
|
|
|
var items = await _dataOrderRepository
|
|
|
.Queryable()
|
|
@@ -224,6 +223,7 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
{
|
|
|
FlowID = it.Id,
|
|
|
RowID = SqlFunc.MappingColumn(default(int), " row_number() over( order by 'AddDate' desc ) "),
|
|
|
+ // RowID= SqlFunc.RowNumber(it.CaseDate),
|
|
|
Code = it.OrderNo,
|
|
|
Title = it.Title,
|
|
|
AddDate = it.CaseDate,
|
|
@@ -236,6 +236,7 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
//计算总页数
|
|
|
int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / dto.PageSize));
|
|
|
|
|
|
+ //处理返回
|
|
|
GetOrderMediaDataDto dataDto = new()
|
|
|
{
|
|
|
PageCount = nPageCount,
|
|
@@ -244,13 +245,90 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
|
|
|
return DeReponse<GetOrderMediaDataDto>.Success(dataDto, "成功");
|
|
|
|
|
|
-
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 2.3 工单查询
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("GetOrderDetail")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<List<DeReponse<IReadOnlyList<MediaOrderDetailDataDto>>>> GetOrderDetail([FromBody] MediaOrderDetailReceiveDto dto)
|
|
|
+ {
|
|
|
+ //验证密钥
|
|
|
+ var mediaCode = _channelConfigurationManager.GetConfigurationMediaCode();
|
|
|
+ if (mediaCode.MediaCode.ToLower().Trim() != dto.Code.ToLower().Trim())
|
|
|
+ return DeReponse<IReadOnlyList<MediaOrderDetailDataDto>>.Failed(null, "0", "密钥错误");
|
|
|
+
|
|
|
+ //验证数据
|
|
|
+ string strResult = dto.Validate();
|
|
|
+ if (!string.IsNullOrEmpty(strResult))
|
|
|
+ return DeReponse<IReadOnlyList<MediaOrderDetailDataDto>>.Failed(null, "0", strResult);
|
|
|
|
|
|
+ //查询数据
|
|
|
+ var items = await _dataOrderRepository
|
|
|
+ .Queryable()
|
|
|
+ .Where(p => p.OrderNo == dto.AcceptCode)
|
|
|
+ .Where(p => p.Password == dto.AcceptPwd)
|
|
|
+ .Select(it => new
|
|
|
+ {
|
|
|
+ FlowID = it.Id,
|
|
|
+ FlowCode = it.OrderNo,
|
|
|
+ FlowTitle = it.Title,
|
|
|
+ FlowFromName = it.CaseSource,
|
|
|
+ FlowPurTypeName = it.CaseType,
|
|
|
+ FlowConTypeName = it.HotspotName,
|
|
|
+ FlowAddDate = it.CaseDate,
|
|
|
+ FlowLKName = it.FromName,
|
|
|
+ FlowBMName = it.ActualHandleOrgName,
|
|
|
+ FlowRSFlagName = it.HandleState,
|
|
|
+ FlowContent = it.Content,
|
|
|
+ FlowResult = it.ActualOpinion,
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
+
|
|
|
+ if (items == null)
|
|
|
+ return DeReponse<IReadOnlyList<MediaOrderDetailDataDto>>.Failed(null, "0", "编号、密码错误!");
|
|
|
+ else
|
|
|
+ return DeReponse<IReadOnlyList<MediaOrderDetailDataDto>>.Success(_mapper.Map<IReadOnlyList<MediaOrderDetailDataDto>>(items), "成功");
|
|
|
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 2.4 今日受理分类统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Code"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("GetPurTypeReport")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<List<DeReponse<List<GetPurTypeReportDataDto>>>> GetPurTypeReport([FromBody] string Code)
|
|
|
+ {
|
|
|
+ //验证密钥
|
|
|
+ var mediaCode = _channelConfigurationManager.GetConfigurationMediaCode();
|
|
|
+ if (mediaCode.MediaCode.ToLower().Trim() != Code.ToLower().Trim())
|
|
|
+ return DeReponse<List<GetPurTypeReportDataDto>>.Failed(null, "0", "密钥错误");
|
|
|
+
|
|
|
+ //数据查询
|
|
|
+ var list = _dataOrderRepository.Queryable()
|
|
|
+ .Where(p => p.CaseDate >= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")))
|
|
|
+ .Where(p => p.CaseDate <= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")))
|
|
|
+ .Select(it => new
|
|
|
+ {
|
|
|
+ it.CaseType,
|
|
|
+ it.CaseTypeCode
|
|
|
+ })
|
|
|
+ .MergeTable()//将查询出来的结果合并成一个新表
|
|
|
+ .GroupBy(it => new { it.CaseType, it.CaseTypeCode })//对新表进行分组
|
|
|
+ .Select(it => new
|
|
|
+ {
|
|
|
+ PurTypeName = it.CaseType,
|
|
|
+ Count = SqlFunc.AggregateCount(it.CaseTypeCode)
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
|
|
|
+ var listData = _mapper.Map<List<GetPurTypeReportDataDto>>(list);
|
|
|
+ return DeReponse<List<GetPurTypeReportDataDto>>.Success(listData, "成功");
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 2.5 答复公开
|
|
@@ -259,12 +337,14 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("GetOrderByListOpen")]
|
|
|
[AllowAnonymous]
|
|
|
- public async Task<DeReponse<GetOrderMediaDataDto>> GetOrderByListOpen([FromBody] GetOrderMediaReceiveOpenDto dto)
|
|
|
+ public async Task<List<DeReponse<GetOrderMediaDataDto>>> GetOrderByListOpen([FromBody] GetOrderMediaReceiveOpenDto dto)
|
|
|
{
|
|
|
+ //密钥验证
|
|
|
var mediaCode = _channelConfigurationManager.GetConfigurationMediaCode();
|
|
|
if (mediaCode.MediaCode.ToLower().Trim() != dto.Code.ToLower().Trim())
|
|
|
- return DeReponse<GetOrderMediaDataDto>.Failed(new GetOrderMediaDataDto(), "0", "密钥错误");
|
|
|
+ return DeReponse<GetOrderMediaDataDto>.Failed(null, "0", "密钥错误");
|
|
|
|
|
|
+ //数据处理
|
|
|
string AcceptTypeCode = "";
|
|
|
switch (dto.PurTypeID)
|
|
|
{
|
|
@@ -291,10 +371,11 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ //查询数据
|
|
|
RefAsync<int> total = 0;
|
|
|
var items = await _dataOrderRepository
|
|
|
.Queryable()
|
|
|
- .Where(p => p.Source == ESource.ConvergenceMedia.ToString())
|
|
|
+ .Where(p => p.IsPublish == Sharing.Share.Enums.EPublishState.Open)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Title.Contains(dto.Title))
|
|
|
.WhereIF(!string.IsNullOrEmpty(AcceptTypeCode), p => p.CaseTypeCode == AcceptTypeCode)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.StartDate), p => p.CaseDate >= Convert.ToDateTime(dto.StartDate))
|
|
@@ -315,6 +396,7 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
//计算总页数
|
|
|
int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / dto.PageSize));
|
|
|
|
|
|
+ //返回数据处理
|
|
|
GetOrderMediaDataDto dataDto = new()
|
|
|
{
|
|
|
PageCount = nPageCount,
|
|
@@ -324,5 +406,84 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
return DeReponse<GetOrderMediaDataDto>.Success(dataDto, "成功");
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 2.6 办理明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("GetOrderByRun")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<List<DeReponse<IReadOnlyList<GetOrderByRunDataDto>>>> GetOrderByRun([FromBody] MediaOrderDetailReceiveDto dto)
|
|
|
+ {
|
|
|
+ //密钥验证
|
|
|
+ var mediaCode = _channelConfigurationManager.GetConfigurationMediaCode();
|
|
|
+ if (mediaCode.MediaCode.ToLower().Trim() != dto.Code.ToLower().Trim())
|
|
|
+ return DeReponse<IReadOnlyList<GetOrderByRunDataDto>>.Failed(null, "0", "密钥错误");
|
|
|
+
|
|
|
+ //验证数据
|
|
|
+ string strResult = dto.Validate();
|
|
|
+ if (!string.IsNullOrEmpty(strResult))
|
|
|
+ return DeReponse<IReadOnlyList<GetOrderByRunDataDto>>.Failed(null, "0", strResult);
|
|
|
+
|
|
|
+ //验证信件是否存在
|
|
|
+ var data = await _dataOrderRepository.GetAsync(p => p.OrderNo == dto.AcceptCode && p.Password == dto.AcceptPwd);
|
|
|
+ if (data == null)
|
|
|
+ return DeReponse<IReadOnlyList<GetOrderByRunDataDto>>.Failed(null, "0", "编号、密码错误!");
|
|
|
+
|
|
|
+ //数据查询
|
|
|
+ var list = await _dataOrderWorkFlowRepository.Queryable()
|
|
|
+ .Where(p => p.OrderId == data.OrderId)
|
|
|
+ .Where(p => p.WorkflowId == data.WorkflowId)
|
|
|
+ .Select(it => new
|
|
|
+ {
|
|
|
+ BMName = it.HandlerOrgName,
|
|
|
+ TTime = it.StepExpiredTime,
|
|
|
+ DisposeDate = it.HandleTime
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
+ return DeReponse<IReadOnlyList<GetOrderByRunDataDto>>.Success(_mapper.Map<IReadOnlyList<GetOrderByRunDataDto>>(list), "成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 2.1.3 上传附件----未完成
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="formData"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("WriteFiles")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<byte[]> WriteFiles([FromForm] IFormCollection formData)
|
|
|
+ {
|
|
|
+ string Code = formData["Code"];
|
|
|
+ string AcceptCode = formData["AcceptCode"];
|
|
|
+ string AcceptPwd = formData["AcceptPwd"];
|
|
|
+
|
|
|
+ IFormFileCollection files = formData.Files;//等价于Request.Form.Files
|
|
|
+ long size = files.Sum(f => f.Length);
|
|
|
+ var file = files[0];
|
|
|
+
|
|
|
+ string FileName = file.FileName;
|
|
|
+
|
|
|
+ var stream = file.OpenReadStream();
|
|
|
+ byte[] ByteFile = i_StreamToBytes(stream);
|
|
|
+ return ByteFile;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #region 私有方法-将文件转化为文件流
|
|
|
+ /// <summary>
|
|
|
+ /// 将文件转化为文件流
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="stream"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ private byte[] i_StreamToBytes(Stream stream)
|
|
|
+ {
|
|
|
+ byte[] bytes = new byte[stream.Length];
|
|
|
+ stream.Read(bytes, 0, bytes.Length);
|
|
|
+ // 设置当前流的位置为流的开始
|
|
|
+ stream.Seek(0, SeekOrigin.Begin);
|
|
|
+ return bytes;
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
}
|
|
|
}
|