/// <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() }); } } }
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(""); }