|
@@ -18,6 +18,11 @@ using Hotline.Share.Dtos.File;
|
|
|
using System.Collections.Generic;
|
|
|
using SharpCompress.Common;
|
|
|
using Hotline.Share.Dtos.DataSharing.PusherHotlineDto;
|
|
|
+using Microsoft.AspNetCore.Authorization;
|
|
|
+using Hotline.Share.Dtos.DataSharingSearch;
|
|
|
+using DataSharing.Share.Dtos.HotlineSetting;
|
|
|
+using Hotline.Share.Dtos;
|
|
|
+using DataSharing.FwDataExchange;
|
|
|
|
|
|
namespace DataSharing.Host.Controllers.ZiGong
|
|
|
{
|
|
@@ -33,32 +38,33 @@ namespace DataSharing.Host.Controllers.ZiGong
|
|
|
private readonly IDsUserTokenInfoService _dsUserTokenInfoService;
|
|
|
private readonly IRepository<DsReceiveMediaData> _dsReceiveMediaDataRepository;
|
|
|
private readonly IHttpClientFactory _httpClientFactory;
|
|
|
+ private readonly FwClient _fwClient;
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
|
/// </summary>
|
|
|
/// <param name="mapper"></param>
|
|
|
- /// <param name="mediator"></param>
|
|
|
/// <param name="capPublisher"></param>
|
|
|
/// <param name="channelConfigurationManager"></param>
|
|
|
/// <param name="dsUserTokenInfoService"></param>
|
|
|
/// <param name="dsReceiveMediaDataRepository"></param>
|
|
|
/// <param name="httpClientFactory"></param>
|
|
|
+ /// <param name="fwClient"></param>
|
|
|
public TianQueController(IMapper mapper,
|
|
|
- IMediator mediator,
|
|
|
ICapPublisher capPublisher,
|
|
|
IChannelConfigurationManager channelConfigurationManager,
|
|
|
IDsUserTokenInfoService dsUserTokenInfoService,
|
|
|
IRepository<DsReceiveMediaData> dsReceiveMediaDataRepository,
|
|
|
- IHttpClientFactory httpClientFactory)
|
|
|
+ IHttpClientFactory httpClientFactory,
|
|
|
+ FwClient fwClient)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
- _mediator = mediator;
|
|
|
_capPublisher = capPublisher;
|
|
|
_channelConfigurationManager = channelConfigurationManager;
|
|
|
_dsUserTokenInfoService = dsUserTokenInfoService;
|
|
|
_dsReceiveMediaDataRepository = dsReceiveMediaDataRepository;
|
|
|
_httpClientFactory = httpClientFactory;
|
|
|
+ _fwClient = fwClient;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -66,9 +72,9 @@ namespace DataSharing.Host.Controllers.ZiGong
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
- [Route("writeResult")]
|
|
|
- [HttpPost]
|
|
|
- private async Task<OpenResponse> ReceiverOpinion([FromBody] OrderResultOpinionDto dto)
|
|
|
+ [HttpPost("writeResult")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<OpenResponse> ReceiverOpinion([FromBody] OrderResultOpinionDto dto)
|
|
|
{
|
|
|
//写入原始数据
|
|
|
DsReceiveMediaData dsReceiveMediaData = new()
|
|
@@ -82,15 +88,15 @@ namespace DataSharing.Host.Controllers.ZiGong
|
|
|
|
|
|
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.VailCode, HttpContext.RequestAborted);
|
|
|
if (accountDto is null || accountDto.IsCheckAccount == false)
|
|
|
- return OpenResponse.Ok(TianQueResponse<string>.Failed("密钥错误"));
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed("密钥错误"));
|
|
|
|
|
|
//验证数据
|
|
|
string strResult = dto.Validate();
|
|
|
if (!string.IsNullOrEmpty(strResult))
|
|
|
- return OpenResponse.Ok(TianQueResponse<string>.Failed(strResult));
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed(strResult));
|
|
|
|
|
|
if (false == IsDate(dto.ReplyDate))
|
|
|
- return OpenResponse.Ok(TianQueResponse<string>.Failed("办理时间格式错误"));
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed("办理时间格式错误"));
|
|
|
|
|
|
//todo
|
|
|
//处理推送数据导hotline
|
|
@@ -123,9 +129,52 @@ namespace DataSharing.Host.Controllers.ZiGong
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.TianQueReceiverOpinion, receiverOpinionDto, cancellationToken: HttpContext.RequestAborted);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(id))
|
|
|
- return OpenResponse.Ok(TianQueResponse<string>.Success("回复提交成功"));
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Success("回复提交成功"));
|
|
|
else
|
|
|
- return OpenResponse.Ok(TianQueResponse<string>.Failed("回复提交失败"));
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed("回复提交失败"));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 随手拍网格员-短信接口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("SendSMS")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<OpenResponse> SendSms([FromBody] SendSmsDto dto)
|
|
|
+ {
|
|
|
+ //写入原始数据
|
|
|
+ DsReceiveMediaData dsReceiveMediaData = new()
|
|
|
+ {
|
|
|
+ ServiceInterface = "SendSMS",
|
|
|
+ PlatformsName = "天阙",
|
|
|
+ ExternalId = dto.ReplyCode,
|
|
|
+ ReceiveData = System.Text.Json.JsonSerializer.Serialize(dto)
|
|
|
+ };
|
|
|
+ await _dsReceiveMediaDataRepository.AddAsync(dsReceiveMediaData, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.VailCode, HttpContext.RequestAborted);
|
|
|
+ if (accountDto is null || accountDto.IsCheckAccount == false)
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed("密钥错误"));
|
|
|
+
|
|
|
+ //验证数据
|
|
|
+ string strResult = dto.Validate();
|
|
|
+ if (!string.IsNullOrEmpty(strResult))
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed(strResult));
|
|
|
+
|
|
|
+ var data = _mapper.Map<GridOperatorSendSmsDto>(dto);
|
|
|
+
|
|
|
+ var result = await _fwClient.RequestNoTokenAsync<HotlineClientDataSharingResponse<string>>("api/v1/DataSharing/grid_operator_send_sms",
|
|
|
+ "Post", System.Text.Json.JsonSerializer.Serialize(data));
|
|
|
+ if (result != null && result.code == 0)
|
|
|
+ {
|
|
|
+ if (result.result == "提交成功")
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Success("提交成功"));
|
|
|
+ else
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed(result.result));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ return OpenResponse.Ok(TianQueResponse.Failed("提交失败"));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -141,9 +190,9 @@ namespace DataSharing.Host.Controllers.ZiGong
|
|
|
var businessFile = _channelConfigurationManager.GetConfigurationBusinessFile();
|
|
|
foreach (var file in FilePath)
|
|
|
{
|
|
|
- //HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strPath);
|
|
|
+ //HttpWebRequest request = (HttpWebRequest)WebRequest.Create(file);
|
|
|
|
|
|
- //byte[] bytes;
|
|
|
+ //byte[] fileContentBytes;
|
|
|
//using (Stream stream = request.GetResponse().GetResponseStream())
|
|
|
//{
|
|
|
// using (MemoryStream mstream = new MemoryStream())
|
|
@@ -159,18 +208,24 @@ namespace DataSharing.Host.Controllers.ZiGong
|
|
|
// mstream.Position = 0;
|
|
|
// using (BinaryReader br = new BinaryReader(mstream))
|
|
|
// {
|
|
|
- // bytes = br.ReadBytes(count);
|
|
|
+ // fileContentBytes = br.ReadBytes(count);
|
|
|
// }
|
|
|
// }
|
|
|
//}
|
|
|
var fileName = "";
|
|
|
+ if (file.IndexOf('/') > 1)
|
|
|
+ {
|
|
|
+ fileName = file.Split('/')[file.Split('/').Length - 1].ToString();
|
|
|
+ fileName = fileName.Substring(0, fileName.LastIndexOf("."));
|
|
|
+ fileName = "WGY_" + fileName;
|
|
|
+ }
|
|
|
byte[] fileContentBytes = null;
|
|
|
using (var client = _httpClientFactory.CreateClient())
|
|
|
using (var response = await client.GetAsync(file))
|
|
|
{
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
|
{
|
|
|
- fileName = response.Content.Headers.ContentDisposition.FileNameStar;
|
|
|
+ // fileName = response.Content.Headers.ContentDisposition.FileNameStar;
|
|
|
using var memoryStream = new MemoryStream();
|
|
|
await response.Content.CopyToAsync(memoryStream);
|
|
|
memoryStream.Seek(0, SeekOrigin.Begin);
|