Пример #1
0
        /// <summary>
        /// 外发
        /// </summary>
        public void Send(string pContent)
        {
            //解析请求字符串
            var rp = pContent.DeserializeJSONTo <APIRequest <SetIOSDeviceTokenRP> >();

            var loggingSessionInfo            = Default.GetBSLoggingSession(rp.CustomerID, "1");
            CSConversationBLL conversationBll = new CSConversationBLL(loggingSessionInfo);
            var conversations = conversationBll.Query(new IWhereCondition[]
            {
                new DirectCondition("IsPush=0 or IsPush is NULL")
            }, new[]
            {
                new OrderBy
                {
                    FieldName = "CreateTime",
                    Direction = OrderByDirections.Desc
                }
            });

            foreach (var conversationEntity in conversations)
            {
                CSMessageBLL    messageBll    = new CSMessageBLL(loggingSessionInfo);
                CSMessageEntity messageEntity = messageBll.GetByID(conversationEntity.CSMessageID);
                try
                {
                    switch (messageEntity.CSPipelineID)
                    {
                    //微信
                    case 1:
                        IPushMessage pushWXMessage = new PushWeiXinMessage(loggingSessionInfo);
                        pushWXMessage.PushMessage(conversationEntity.PersonID, conversationEntity.Content);
                        break;

                    //短信
                    case 2:
                        IPushMessage pushSMSMessage = new PushSMSMessage(loggingSessionInfo);
                        pushSMSMessage.PushMessage(conversationEntity.PersonID, conversationEntity.Content);
                        break;

                    //IOS
                    case 3:
                        IPushMessage pusIOSMessage = new PushIOSMessage(loggingSessionInfo);
                        pusIOSMessage.PushMessage(conversationEntity.PersonID, conversationEntity.Content);
                        break;

                    //Android
                    case 4:
                        IPushMessage pusAndroidMessage = new PushAndroidMessage(loggingSessionInfo);
                        pusAndroidMessage.PushMessage(conversationEntity.PersonID, conversationEntity.Content);
                        break;
                    }
                    //更新已经推送
                    conversationEntity.IsPush = 1;
                    conversationBll.Update(conversationEntity);
                }
                catch (Exception ex)
                {
                    Loggers.DEFAULT.Debug(new DebugLogInfo
                    {
                        Message = "离线消息推送错误:" + ex.Message + "|" + conversationEntity.PersonID + "/" + messageEntity.CSPipelineID + "/" + conversationEntity.ToJSON()
                    });
                }
            }
        }
Пример #2
0
        public string SendIOSMessage(string reqContent)
        {
            var rd = new APIResponse <SendIOSDeviceTokenRD>();

            try
            {
                #region
                Loggers.Debug(new DebugLogInfo()
                {
                    Message = string.Format("setSignUp: {0}", reqContent)
                });

                //解析请求字符串
                var rp = reqContent.DeserializeJSONTo <APIRequest <SendIOSDeviceTokenRP> >();
                if (rp.Parameters != null)
                {
                    rp.Parameters.Validate();
                }

                string customerID = string.Empty;

                //判断客户ID是否传递
                if (!string.IsNullOrEmpty(rp.CustomerID))
                {
                    customerID = rp.CustomerID;
                }
                var loggingSessionInfo = Default.GetBSLoggingSession(customerID, "1");

                //if (rp.Parameters == null)
                //{
                //    rp.Parameters.DeviceToken = string.Empty;
                //    rd.ResultCode = 102;
                //    rd.Message = "没有特殊参数";
                //    return rd.ToJSON();
                //}

                //if (string.IsNullOrEmpty(rp.UserID))
                //{
                //    rd.ResultCode = 2201;
                //    rd.Message = "userId不能为空";
                //    return rd.ToJSON();
                //}
                #endregion

                IPushMessage pushIOSMessage = new PushIOSMessage(loggingSessionInfo);
                string       msg            = "您有一条新消息";

                IPushMessage pushAndroidMessage = new PushAndroidMessage(loggingSessionInfo);
                pushAndroidMessage.PushMessage(rp.Parameters.OtherUserID, msg);

                pushIOSMessage.PushMessage(rp.Parameters.OtherUserID, msg);

                var rdData = new SendIOSDeviceTokenRD()
                {
                    IsSuccess = true
                };
                rd.Data       = rdData;
                rd.ResultCode = 0;
            }
            catch (Exception ex)
            {
            }
            return("");
        }