tangjiang 7 ماه پیش
والد
کامیت
40122ac11b

+ 22 - 11
src/DataSharing.Host/Controllers/YiBin/ConvergenceMediaController.cs

@@ -15,6 +15,7 @@ using Microsoft.AspNetCore.Mvc;
 using SqlSugar;
 using XF.Domain.Filters;
 using XF.Domain.Repository;
+using static Google.Protobuf.Reflection.FieldOptions.Types;
 using static System.Runtime.InteropServices.JavaScript.JSType;
 
 namespace DataSharing.Host.Controllers.YiBin
@@ -651,24 +652,34 @@ namespace DataSharing.Host.Controllers.YiBin
             else
                 nPageSize = Convert.ToInt32(dto.PageSize);
 
-            switch (dto.CType)
+            string type = "1";
+            if (accountDto.PlatformSource == "ConvergenceMedia")
             {
-                case "1":
-                case "5":
-                    break;
-                case "6":
-                    dto.CType = "6";
-                    break;
-                default:
-                    dto.CType = "6";
-                    break;
+                type = "6";
+            }
+
+            if (accountDto.PlatformSource == "IYIBIN")
+            {
+                switch (dto.CType)
+                {
+                    case "1":
+                    case "5":
+                        break;
+                    case "6":
+                        dto.CType = "6";
+                        break;
+                    default:
+                        dto.CType = "6";
+                        break;
+                }
             }
 
             RefAsync<int> total = 0;
             var items = await _bulletinRepository
             .Queryable()
             .Where(p => p.LoseEfficacyTime >= DateTime.Now)
-            .Where(p => p.BulletinTypeId == dto.CType)
+            .Where(p => p.BulletinTypeId == type)
+            .Where(p => SqlFunc.JsonListObjectAny(p.PushRanges, "Key", "2"))
             .OrderByDescending(p => p.BulletinTime)
             .Select(it => new
             {

+ 61 - 2
src/DataSharing.Host/Controllers/ZiGong/TianQueController.cs

@@ -1,6 +1,14 @@
-using DotNetCore.CAP;
+using DataSharing.RawData;
+using DataSharing.Share.Dtos.YiBin.ZzptPlatformsYB;
+using DataSharing.Share.Dtos;
+using DataSharing.Share.Dtos.ZiGong.TianQue;
+using DotNetCore.CAP;
 using MapsterMapper;
 using MediatR;
+using Microsoft.AspNetCore.Mvc;
+using XF.Domain.Filters;
+using DataSharing.YiBin.ConvergenceMedia;
+using XF.Domain.Repository;
 
 namespace DataSharing.Host.Controllers.ZiGong
 {
@@ -13,18 +21,69 @@ namespace DataSharing.Host.Controllers.ZiGong
         private readonly IMediator _mediator;
         private readonly ICapPublisher _capPublisher;
         private readonly IChannelConfigurationManager _channelConfigurationManager;
+        private readonly IDsUserTokenInfoService _dsUserTokenInfoService;
+        private readonly IRepository<DsReceiveMediaData> _dsReceiveMediaDataRepository;
 
         public TianQueController(IMapper mapper,
             IMediator mediator,
             ICapPublisher capPublisher,
-            IChannelConfigurationManager channelConfigurationManager)
+            IChannelConfigurationManager channelConfigurationManager,
+            IDsUserTokenInfoService dsUserTokenInfoService,
+            IRepository<DsReceiveMediaData> dsReceiveMediaDataRepository)
         {
             _mapper = mapper;
             _mediator = mediator;
             _capPublisher = capPublisher;
             _channelConfigurationManager = channelConfigurationManager;
+            _dsUserTokenInfoService = dsUserTokenInfoService;
+            _dsReceiveMediaDataRepository = dsReceiveMediaDataRepository;
         }
 
+        public async Task<OpenResponse> WriteResult([FromBody] OrderResultDto dto)
+        {
+            //写入原始数据
+            DsReceiveMediaData dsReceiveMediaData = new()
+            {
+                ServiceInterface = "WriteResult",
+                PlatformsName = "天阙",
+                ExternalId = dto.ReplyCode,
+                ReceiveData = System.Text.Json.JsonSerializer.Serialize(dto)
+            };
+            var id = 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<string>.Failed("密钥错误"));
+
+            //验证数据
+            string strResult = dto.Validate();
+            if (!string.IsNullOrEmpty(strResult))
+                return OpenResponse.Ok(TianQueResponse<string>.Failed(strResult));
+
+            if (false == IsDate(dto.ReplyDate))
+                return OpenResponse.Ok(TianQueResponse<string>.Failed("办理时间格式错误"));
+
+            //todo
+            //处理推送数据导hotline
+
+            if (!string.IsNullOrEmpty(id))
+                return OpenResponse.Ok(TianQueResponse<string>.Success("回复提交成功"));
+            else
+                return OpenResponse.Ok(TianQueResponse<string>.Failed("回复提交失败"));
+        }
+
+        private bool IsDate(string strDate)
+        {
+            try
+            {
+                DateTime.Parse(strDate);  //不是字符串时会出现异常
+                return true;
+            }
+            catch
+            {
+                return false;
+            }
+        }
 
     }
 }

+ 36 - 18
src/DataSharing.Share/Dtos/ZiGong/TianQue/OrderResultDto.cs

@@ -57,85 +57,103 @@ namespace DataSharing.Share.Dtos.ZiGong.TianQue
         /// <summary>
         /// 办理状态 1,7:流转 2:办结 3:退回 4:网格员签收 5:消息推送 6: 超时自动退单
         /// </summary>
-        [JsonPropertyName("replyBMName")]
-        [MDisplayName("办理部门")]
+        [JsonPropertyName("replyResultType")]
+        [MDisplayName("办理状态")]
         [VRequired]
         [VStringLength(0, 10)]
-        public string replyResultType { get; set; }  
+        public string ReplyResultType { get; set; }
 
         /// <summary>
         /// 是否属实 1:是 0:否
         /// </summary>
-        public string replyISTrue { get; set; }  
+        [JsonPropertyName("replyISTrue")]
+        public string? ReplyISTrue { get; set; }
 
         /// <summary>
         /// 是否重复 1:是 0:否
         /// </summary>
-        public string isRepeat { get; set; }  
+        [JsonPropertyName("isRepeat")]
+        public string? IsRepeat { get; set; }
 
         /// <summary>
         /// 重复工单号
         /// </summary>
-        public string repeatReplyCode { get; set; }  
+        [JsonPropertyName("repeatReplyCode")]
+        public string? RepeatReplyCode { get; set; }
 
         /// <summary>
         /// 是否隐患 1:是 0:否
         /// </summary>
-        public string isHiddenDanger { get; set; }  
+        [JsonPropertyName("isHiddenDanger")]
+        public string? IsHiddenDanger { get; set; }
 
         /// <summary>
         /// 是否重大隐患 - 1 是、0否
         /// </summary>
-        public string isMajorHidden { get; set; } = "0";
+        [JsonPropertyName("isMajorHidden")]
+        public string? IsMajorHidden { get; set; } = "0";
 
         /// <summary>
         /// 网格员姓名
         /// </summary>
-        public string memberName { get; set; }  
+        [JsonPropertyName("memberName")]
+        public string? MemberName { get; set; }
 
         /// <summary>
         /// 网格员电话
         /// </summary>
-        public string memberMobile { get; set; }  
+        [JsonPropertyName("memberMobile")]
+        public string? MemberMobile { get; set; }
 
         /// <summary>
         /// 网格化诉求编号
         /// </summary>
-        public string appealNumber { get; set; }  
+        [JsonPropertyName("appealNumber")]
+        public string? AppealNumber { get; set; }
 
         /// <summary>
         /// 办理内容
         /// </summary>
-        public string replyContent { get; set; }  
+        [JsonPropertyName("replyContent")]
+        [MDisplayName("办理内容")]
+        [VRequired]
+        [VStringLength(0, 5000)]
+        public string? ReplyContent { get; set; }
 
         /// <summary>
         /// 区域id
         /// </summary>
-        public string orgId { get; set; }  
+        [JsonPropertyName("orgId")]
+        public string? OrgId { get; set; }
 
         /// <summary>
         /// 区域名称
         /// </summary>
-        public string orgName { get; set; }  
+        [JsonPropertyName("orgName")]
+        public string? OrgName { get; set; }
 
         /// <summary>
         /// 区域全称
         /// </summary>
-        public string orgFullName { get; set; }  
+        [JsonPropertyName("orgFullName")]
+        public string? OrgFullName { get; set; }
 
         /// <summary>
         /// 区域全称
         /// </summary>
-        public string departmentNo { get; set; }  
+        [JsonPropertyName("departmentNo")]
+        public string? DepartmentNo { get; set; }
 
         /// <summary>
         /// 区域全称
         /// </summary>
-        public string parentOrgId { get; set; }  
+        [JsonPropertyName("parentOrgId")]
+        public string? ParentOrgId { get; set; }
 
         /// <summary>
         /// 附件
         /// </summary>
-        public List<String> replyFileList { get; set; }
+        [JsonPropertyName("replyFileList")]
+        public List<String>? ReplyFileList { get; set; }
     }
 }

+ 53 - 0
src/DataSharing.Share/Dtos/ZiGong/TianQue/TianQueResponse.cs

@@ -0,0 +1,53 @@
+namespace DataSharing.Share.Dtos.ZiGong.TianQue
+{
+    public class TianQueResponse<TData>
+    {
+        /// <summary>
+        /// 状态
+        /// </summary>
+        public int code { get; set; }
+
+        /// <summary>
+        /// 描述
+        /// </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 = "")
+        {
+            return new TianQueResponse<TData>
+            {
+                code = 1,
+                data = data,
+                msg = message ?? "请求成功!"
+            };
+        }
+
+        /// <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 = "")
+        {
+            return new TianQueResponse<TData>
+            {
+                code = code ?? 0,
+                data = data,
+                msg = message ?? "请求失败!"
+            };
+        }
+    }
+}