TANG JIANG 1 年間 前
コミット
11f3b2c3d8

+ 67 - 0
src/Push.Share/Dtos/PushMessageDto.cs

@@ -0,0 +1,67 @@
+using Push.Share.Enums;
+
+namespace Push.Share.Dtos
+{
+    public class PushMessageDto
+    {
+        /// <summary>
+        /// 消息处理类型  0:推送状态修改,2:发送状态,3:短信回复
+        /// </summary>
+        public string Type { get; set; }
+
+        /// <summary>
+        /// 外部业务唯一编号
+        /// </summary>
+        public string? ExternalId { get; set; }
+
+        /// <summary>
+        /// 推送状态
+        /// </summary>
+        public EPushStatus Status { get; set; }
+
+        /// <summary>
+        /// 短信中心待发送ID
+        /// </summary>
+        public string? SmsWaitSendingId { get; set; }
+
+        /// <summary>
+        /// 短信中心已发送ID
+        /// </summary>
+        public string? SmsSendingCompletedId { get; set; }
+
+        /// <summary>
+        /// 短信发送状态
+        /// </summary>
+        public ESendState SendState { get; set; }
+
+        /// <summary>
+        /// 发送时间
+        /// </summary>
+        public DateTime? SendTime { get; set; }
+
+        /// <summary>
+        /// 短信回复是否回复
+        /// </summary>   
+        public bool IsSmsReply { get; set; }
+
+        /// <summary>
+        /// 短信回复内容
+        /// </summary>   
+        public string? SmsReplyContent { get; set; }
+
+        /// <summary>
+        /// 短信回复时间
+        /// </summary>
+        public DateTime? SmsReplyTime { get; set; }
+
+        /// <summary>
+        /// 业务系统短信ID
+        /// </summary>
+        public int WaitSendId { get; set; } = 0;
+
+        /// <summary>
+        /// 发送短信使用的数量
+        /// </summary>
+        public int? MsgCount { get; set; }
+    }
+}

+ 18 - 0
src/Push.Share/EventNames.cs

@@ -2,5 +2,23 @@
 
 public static class EventNames
 {
+    /// <summary>
+    /// 发送短信
+    /// </summary>
     public const string SendSms = "send.sms";
+
+    /// <summary>
+    /// 修改发送状态
+    /// </summary>
+    public const string UpdateSendSmsState = "update.send.sms.state";
+
+    /// <summary>
+    /// 短信发送状态回调
+    /// </summary>
+    public const string SendSmsReceiveObtain = "send.sms.receive.obtain";
+
+    /// <summary>
+    /// 短信接收
+    /// </summary>
+    public const string SendSmsReceiveSms = "send.sms.receive.sms";
 }

+ 17 - 1
src/yibin/Push.YiBin/PushDomainService.cs

@@ -27,6 +27,7 @@ public class PushDomainService : IPushDomainService, IScopeDependency
     private readonly SmsAccountInfo? accountInfo = null;
     private readonly IMediator _mediator;
     private readonly ITypedCache<CacheWaitSendId> _cacheWaitSendId;
+    //private readonly ICapPublisher _capPublisher;
 
     /// <summary>
     /// 
@@ -104,6 +105,12 @@ public class PushDomainService : IPushDomainService, IScopeDependency
         }
 
         await _messageRepository.AddAsync(message); //写入本地数据库
+
+        if (message.ClientId == "Hotline")
+        {
+            var data = _mapper.Map<PushMessageDto>(message);
+            data.Type = "0";
+        }
     }
 
     #endregion
@@ -180,6 +187,11 @@ public class PushDomainService : IPushDomainService, IScopeDependency
             await _messageRepository.UpdateAsync(data);
             // 成功返回值必须是ok
             strResult = "ok";
+            if (data.ClientId == "Hotline")
+            {
+                var dataPush = _mapper.Map<PushMessageDto>(data);
+                dataPush.Type = "1";
+            }
         }
         else
             strResult = "error,调用失败";
@@ -220,7 +232,11 @@ public class PushDomainService : IPushDomainService, IScopeDependency
             data.SmsReplyTime = Convert.ToDateTime(receiveMessageDto.motime);
             data.SmsReplyContent = receiveMessageDto.msg;
             await _messageRepository.UpdateAsync(data);
-
+            if (data.ClientId == "Hotline")
+            {
+                var dataPush = _mapper.Map<PushMessageDto>(data);
+                dataPush.Type = "2";
+            }
             //消息处理 todo
             //await _mediator.Publish(new PushMessageNotify(_mapper.Map<PushMessageNotifyDto>(data)));
         }