tangjiang 7 сар өмнө
parent
commit
c6738cfab7

+ 2 - 14
src/DataSharing.Host/Controllers/YiBin/ConvergenceMediaController.cs

@@ -16,7 +16,6 @@ using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using System.Drawing.Printing;
 using XF.Domain.Filters;
 using XF.Domain.Repository;
 
@@ -29,11 +28,8 @@ namespace DataSharing.Host.Controllers.YiBin
     {
         #region 注入
         private readonly IMapper _mapper;
-        private readonly IMediator _mediator;
-        private readonly ICapPublisher _capPublisher;
         private readonly IChannelConfigurationManager _channelConfigurationManager;
         private readonly IRepository<DsReceiveMediaData> _dsReceiveMediaDataRepository;
-        private readonly IRepository<DsBulletin> _bulletinRepository;
         private readonly FwClient _fwClient;
         private readonly IDsUserTokenInfoService _dsUserTokenInfoService;
 
@@ -41,27 +37,19 @@ namespace DataSharing.Host.Controllers.YiBin
         /// 
         /// </summary>
         /// <param name="mapper"></param>
-        /// <param name="mediator"></param>
-        /// <param name="capPublisher"></param>
         /// <param name="channelConfigurationManager"></param>
         /// <param name="dsReceiveMediaDataRepository"></param>
-        /// <param name="bulletinRepository"></param>
         /// <param name="fwClient"></param>
         /// <param name="dsUserTokenInfoService"></param>
-        public ConvergenceMediaController(IMapper mapper, IMediator mediator,
-            ICapPublisher capPublisher,
+        public ConvergenceMediaController(IMapper mapper,
             IChannelConfigurationManager channelConfigurationManager,
             IRepository<DsReceiveMediaData> dsReceiveMediaDataRepository,
-            IRepository<DsBulletin> bulletinRepository,
             FwClient fwClient,
             IDsUserTokenInfoService dsUserTokenInfoService)
         {
             _mapper = mapper;
-            _mediator = mediator;
-            _capPublisher = capPublisher;
             _channelConfigurationManager = channelConfigurationManager;
             _dsReceiveMediaDataRepository = dsReceiveMediaDataRepository;
-            _bulletinRepository = bulletinRepository;
             _fwClient = fwClient;
             _dsUserTokenInfoService = dsUserTokenInfoService;
         }
@@ -1045,7 +1033,7 @@ namespace DataSharing.Host.Controllers.YiBin
                 if (result.result.Items != null && result.result.Items.Count > 0)
                 {
                     //计算总页数
-                    nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(result.result.Total) /pageSize));
+                    nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(result.result.Total) / pageSize));
                     int rowID = 0;
                     foreach (var item in result.result.Items)
                     {

+ 71 - 16
src/DataSharing.Host/Controllers/ZiGong/TianQueController.cs

@@ -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);

+ 61 - 0
src/DataSharing.Share/Dtos/ZiGong/TianQue/SendSmsDto.cs

@@ -0,0 +1,61 @@
+using System.Text.Json.Serialization;
+
+namespace DataSharing.Share.Dtos.ZiGong.TianQue
+{
+    public class SendSmsDto
+    {
+        /// <summary>
+        /// 密钥
+        /// </summary>
+        [JsonPropertyName("vailCode")]
+        [MDisplayName("密钥")]
+        [VRequired]
+        [VStringLength(0, 50)]
+        public string VailCode { get; set; }
+
+        /// <summary>
+        /// 唯一标识/工单编号
+        /// </summary>
+        [JsonPropertyName("replyCode")]
+        [MDisplayName("唯一标识")]
+        [VRequired]
+        [VStringLength(0, 50)]
+        public string ReplyCode { get; set; }
+
+        /// <summary>
+        /// 网格员姓名
+        /// </summary>
+        [JsonPropertyName("memberName")]
+        [MDisplayName("网格员姓名")]
+        [VRequired]
+        [VStringLength(0, 50)]
+        public string? MemberName { get; set; }
+
+        /// <summary>
+        /// 网格员电话
+        /// </summary>
+        [JsonPropertyName("memberMobile")]
+        [MDisplayName("网格员电话")]
+        [VRequired]
+        [VStringLength(0, 20)]
+        public string? MemberMobile { get; set; }
+
+        /// <summary>
+        /// 网格化诉求编号
+        /// </summary>
+        [JsonPropertyName("appealNumber")]
+        [MDisplayName("网格化诉求编号")]
+        [VRequired]
+        [VStringLength(0, 50)]
+        public string? AppealNumber { get; set; }
+
+        /// <summary>
+        /// 短信类型 1: 短信  2:超时提醒  
+        /// </summary>
+        [JsonPropertyName("replyType")]
+        [MDisplayName("短信类型")]
+        [VRequired]
+        [VStringLength(0, 10)]
+        public string SendType { get; set; }
+    }
+}

+ 6 - 16
src/DataSharing.Share/Dtos/ZiGong/TianQue/TianQueResponse.cs

@@ -1,6 +1,6 @@
 namespace DataSharing.Share.Dtos.ZiGong.TianQue
 {
-    public class TianQueResponse<TData>
+    public class TianQueResponse
     {
         /// <summary>
         /// 状态
@@ -12,23 +12,16 @@
         /// </summary>
         public string msg { get; set; }
 
-        /// <summary>
-        /// 数据
-        /// </summary>
-        public TData data { get; set; }
-
         /// <summary>
         /// 成功
         /// </summary>
-        /// <param name="data"></param>
         /// <param name="message"></param>
         /// <returns></returns>
-        public static TianQueResponse<TData> Success(TData data, string? message = "")
+        public static TianQueResponse Success(string? message = "")
         {
-            return new TianQueResponse<TData>
+            return new TianQueResponse
             {
                 code = 1,
-                data = data,
                 msg = message ?? "请求成功!"
             };
         }
@@ -36,16 +29,13 @@
         /// <summary>
         /// 失败
         /// </summary>
-        /// <param name="data"></param>
-        /// <param name="code"></param>
         /// <param name="message"></param>
         /// <returns></returns>
-        public static TianQueResponse<TData> Failed(TData data, int? code = null, string? message = "")
+        public static TianQueResponse Failed(string? message = "")
         {
-            return new TianQueResponse<TData>
+            return new TianQueResponse
             {
-                code = code ?? 0,
-                data = data,
+                code =  0,
                 msg = message ?? "请求失败!"
             };
         }

+ 1 - 1
src/DataSharing/DataSharing.csproj

@@ -8,7 +8,7 @@
 
   <ItemGroup>
     <PackageReference Include="FluentValidation" Version="11.6.0" />
-    <PackageReference Include="Hotline.Share" Version="1.0.101" />
+    <PackageReference Include="Hotline.Share" Version="1.0.102" />
     <PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
     <PackageReference Include="Quartz.Jobs" Version="3.8.0" />
     <PackageReference Include="RestSharp" Version="110.2.0" />