|
@@ -1,11 +1,20 @@
|
|
|
using DotNetCore.CAP;
|
|
|
+using Hotline.Share.Dtos.Knowledge;
|
|
|
+using Hotline.Share.Dtos;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
using MapsterMapper;
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
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;
|
|
|
|
|
|
namespace Sharing.ConvergenceMedia.Controllers
|
|
|
{
|
|
@@ -15,6 +24,7 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
private readonly ICapPublisher _capPublisher;
|
|
|
private readonly IChannelConfigurationManager _channelConfigurationManager;
|
|
|
private readonly IRepository<MediaDataReceive> _mediaDataReceiveRepository;
|
|
|
+ private readonly IDataOrderRepository _dataOrderRepository;
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
@@ -23,16 +33,19 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
/// <param name="capPublisher"></param>
|
|
|
/// <param name="channelConfigurationManager"></param>
|
|
|
/// <param name="mediaDataReceiveRepository"></param>
|
|
|
- public ConvergenceMediaController(IMapper mapper, ICapPublisher capPublisher, IChannelConfigurationManager channelConfigurationManager, IRepository<MediaDataReceive> mediaDataReceiveRepository)
|
|
|
+ /// <param name="dataOrderRepository"></param>
|
|
|
+ public ConvergenceMediaController(IMapper mapper, ICapPublisher capPublisher, IChannelConfigurationManager channelConfigurationManager,
|
|
|
+ IRepository<MediaDataReceive> mediaDataReceiveRepository, IDataOrderRepository dataOrderRepository)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
_capPublisher = capPublisher;
|
|
|
_channelConfigurationManager = channelConfigurationManager;
|
|
|
_mediaDataReceiveRepository = mediaDataReceiveRepository;
|
|
|
+ _dataOrderRepository = dataOrderRepository;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 融媒体写信
|
|
|
+ /// 2.1融媒体写信
|
|
|
/// </summary>
|
|
|
/// <param name="mediaDataReceiveDto"></param>
|
|
|
/// <returns></returns>
|
|
@@ -158,6 +171,158 @@ namespace Sharing.ConvergenceMedia.Controllers
|
|
|
return DeReponse<WriteOrderResponseDto>.Failed(new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = "接口调用失败", Code = "0" }, "1", description: "接口调用失败!");
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 2.2工单列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("GetOrderByList")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<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", "密钥错误");
|
|
|
+
|
|
|
+ string AcceptTypeCode = "";
|
|
|
+ switch (dto.PurTypeID)
|
|
|
+ {
|
|
|
+ case 17:
|
|
|
+ AcceptTypeCode = "10";
|
|
|
+ break;
|
|
|
+ case 18:
|
|
|
+ AcceptTypeCode = "30";
|
|
|
+ break;
|
|
|
+ case 19:
|
|
|
+ AcceptTypeCode = "35";
|
|
|
+ break;
|
|
|
+ case 20:
|
|
|
+ AcceptTypeCode = "20";
|
|
|
+ break;
|
|
|
+ case 21:
|
|
|
+ AcceptTypeCode = "15";
|
|
|
+ break;
|
|
|
+ case 25:
|
|
|
+ AcceptTypeCode = "40";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ AcceptTypeCode = "";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ RefAsync<int> total = 0;
|
|
|
+ var items = await _dataOrderRepository
|
|
|
+ .Queryable()
|
|
|
+ .Where(p => p.Source == ESource.ConvergenceMedia.ToString())
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptCode), p => p.OrderNo.Contains(dto.AcceptCode))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Title.Contains(dto.Title))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Mobile), p => p.Contact.Contains(dto.Mobile))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(AcceptTypeCode), p => p.CaseTypeCode == AcceptTypeCode)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.StartDate), p => p.CaseDate >= Convert.ToDateTime(dto.StartDate))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.EndDate), p => p.CaseDate < Convert.ToDateTime(dto.EndDate).AddDays(1))
|
|
|
+ .Select(it => new
|
|
|
+ {
|
|
|
+ FlowID = it.Id,
|
|
|
+ RowID = SqlFunc.MappingColumn(default(int), " row_number() over( order by 'AddDate' desc ) "),
|
|
|
+ Code = it.OrderNo,
|
|
|
+ Title = it.Title,
|
|
|
+ AddDate = it.CaseDate,
|
|
|
+ FromName = it.CaseSource,
|
|
|
+ PurTypeName = it.CaseType,
|
|
|
+ ResultState = it.HandleState
|
|
|
+ })
|
|
|
+ .ToPageListAsync(dto.CurrentPage, dto.PageSize, total);
|
|
|
+
|
|
|
+ //计算总页数
|
|
|
+ int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / dto.PageSize));
|
|
|
+
|
|
|
+ GetOrderMediaDataDto dataDto = new()
|
|
|
+ {
|
|
|
+ PageCount = nPageCount,
|
|
|
+ data = _mapper.Map<IReadOnlyList<GetOrderMediaDataListDto>>(items)
|
|
|
+ };
|
|
|
+
|
|
|
+ return DeReponse<GetOrderMediaDataDto>.Success(dataDto, "成功");
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 2.5 答复公开
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("GetOrderByListOpen")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<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", "密钥错误");
|
|
|
+
|
|
|
+ string AcceptTypeCode = "";
|
|
|
+ switch (dto.PurTypeID)
|
|
|
+ {
|
|
|
+ case 17:
|
|
|
+ AcceptTypeCode = "10";
|
|
|
+ break;
|
|
|
+ case 18:
|
|
|
+ AcceptTypeCode = "30";
|
|
|
+ break;
|
|
|
+ case 19:
|
|
|
+ AcceptTypeCode = "35";
|
|
|
+ break;
|
|
|
+ case 20:
|
|
|
+ AcceptTypeCode = "20";
|
|
|
+ break;
|
|
|
+ case 21:
|
|
|
+ AcceptTypeCode = "15";
|
|
|
+ break;
|
|
|
+ case 25:
|
|
|
+ AcceptTypeCode = "40";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ AcceptTypeCode = "";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ RefAsync<int> total = 0;
|
|
|
+ var items = await _dataOrderRepository
|
|
|
+ .Queryable()
|
|
|
+ .Where(p => p.Source == ESource.ConvergenceMedia.ToString())
|
|
|
+ .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))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.EndDate), p => p.CaseDate < Convert.ToDateTime(dto.EndDate).AddDays(1))
|
|
|
+ .Select(it => new
|
|
|
+ {
|
|
|
+ FlowID = it.Id,
|
|
|
+ RowID = SqlFunc.MappingColumn(default(int), " row_number() over( order by 'AddDate' desc ) "),
|
|
|
+ Code = it.OrderNo,
|
|
|
+ Title = it.Title,
|
|
|
+ AddDate = it.CaseDate,
|
|
|
+ FromName = it.CaseSource,
|
|
|
+ PurTypeName = it.CaseType,
|
|
|
+ ResultState = it.HandleState
|
|
|
+ })
|
|
|
+ .ToPageListAsync(dto.CurrentPage, dto.PageSize, total);
|
|
|
+
|
|
|
+ //计算总页数
|
|
|
+ int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / dto.PageSize));
|
|
|
+
|
|
|
+ GetOrderMediaDataDto dataDto = new()
|
|
|
+ {
|
|
|
+ PageCount = nPageCount,
|
|
|
+ data = _mapper.Map<IReadOnlyList<GetOrderMediaDataListDto>>(items)
|
|
|
+ };
|
|
|
+
|
|
|
+ return DeReponse<GetOrderMediaDataDto>.Success(dataDto, "成功");
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|