protected override RemoveIOSMessageBindRD ProcessRequest(DTO.Base.APIRequest <RemoveIOSMessageBindRP> pRequest) { RemoveIOSMessageBindRD rd = new RemoveIOSMessageBindRD(); string userId = pRequest.Parameters.UserId; string customerId = pRequest.CustomerID; PushUserBasicBLL service = new PushUserBasicBLL(this.CurrentUserInfo); PushUserBasicEntity basicInfo = new PushUserBasicEntity(); basicInfo = service.GetByID(userId); if (basicInfo == null) { throw new APIException("用户ID无效") { ErrorCode = 103 }; } else { service.DeletePushUserBasicByUserId(userId); } return(rd); }
public void PushMessage(LoggingSessionInfo loggingSessionInfo, dynamic paramter) { DynamicInterfaceBLL dynamicInterfaceBLL = new DynamicInterfaceBLL(loggingSessionInfo); var eventList = dynamicInterfaceBLL.getEventList(new ReqData <getActivityListEntity>() { common = new ReqCommonData() { customerId = loggingSessionInfo.ClientID }, special = new getActivityListEntity() { type = "new", page = 1, pageSize = 5 } }); if (eventList.ItemList != null && eventList.ItemList.Length > 0) { int channelID = 0; string message = ""; PrepareMessage(loggingSessionInfo, paramter, out channelID, out message); PushUserBasicBLL pushUserBasicBLL = new PushUserBasicBLL(loggingSessionInfo); PushUserBasicEntity[] pushUserBasicEntity = pushUserBasicBLL.Query(new JIT.Utility.DataAccess.Query.IWhereCondition[] { new JIT.Utility.DataAccess.Query.EqualsCondition() { FieldName = "IsDelete", Value = "0" } , new JIT.Utility.DataAccess.Query.EqualsCondition() { FieldName = "CustomerId", Value = loggingSessionInfo.ClientID } , new JIT.Utility.DataAccess.Query.DirectCondition() { Expression = "Plat<>'Android'" } }, null); string json = ""; foreach (var item in pushUserBasicEntity) { PushRequest pRequest2 = RequestBuilder.CreateIOSUnicastNotificationRequest(1, channelID, item.DeviceToken, message); var request = pRequest2.Request.DeserializeJSONTo <JdSoft.Apple.Apns.Notifications.Notification>(); request.Payload.CustomItems.Add("EventUrl", new string[] { "http://o2oapi.aladingyidong.com/HtmlApps/html/public/xiehuibao/activity.html?customerId=" + loggingSessionInfo.ClientID + "&type=new" }); pRequest2.Request = request.ToJSON(); json = "{\"pRequest\":" + pRequest2.ToJSON() + "}"; ThreadPool.QueueUserWorkItem(new WaitCallback(SendHttpRequest), json); } //var response2 = SendHttpRequest(url, method, json); } else { SendMarketingMessageBLL.log.WriteEntry("无新活动", System.Diagnostics.EventLogEntryType.Information); } }
public void PushMessage(string memberID, string messageContent) { PushUserBasicBLL pushUserBasicBll = new PushUserBasicBLL(loggingSessionInfo); Loggers.Debug(new DebugLogInfo() { Message = "memberID:" + memberID }); //Updated by Willie Yan on 2014-05-09 同一账号在多个设备登录,应当取时间最新的 var userBasicArray = pushUserBasicBll.QueryByEntity( new PushUserBasicEntity() { UserId = memberID } , new JIT.Utility.DataAccess.Query.OrderBy[] { new JIT.Utility.DataAccess.Query.OrderBy() { FieldName = "LastUpdateTime", Direction = JIT.Utility.DataAccess.Query.OrderByDirections.Desc } }); PushUserBasicEntity userBasic = null; if (userBasicArray.Length > 0) { userBasic = userBasicArray[0]; } else { Loggers.Debug(new DebugLogInfo() { Message = string.Format("没有找到该memberID:" + memberID) }); } /*没有DeviceToken时,记录日志,不直接抛出异常 qianzhi 2014-03-14 * if (userBasic == null) * { * throw new Exception("VipID:" + memberID + "没有保存DeviceToken"); * } * if (!string.IsNullOrEmpty(userBasic.DeviceToken)) * { * // IOSNotificationService.Default.SendNotification(IOSNotificationBuilder.CreateNotification(userBasic.DeviceToken, messageContent)); * string method = "Process"; * //IOS消息推送 * string url = "http://121.199.42.125:9000/PushService.svc"; * PushRequest pRequest2 = RequestBuilder.CreateIOSUnicastNotificationRequest(1, 2, userBasic.DeviceToken, messageContent); * var json = "{\"pRequest\":" + pRequest2.ToJSON() + "}"; * var response2 = SendHttpRequest(url, method, json); * Loggers.DEFAULT.Debug(new DebugLogInfo * { * Message = "消息发送结果" + response2 * }); * } * else * { * throw new Exception("VipID:" + userBasic.UserId + "没有获取到DeviceToken"); * } */ if (userBasic != null) { Loggers.Debug(new DebugLogInfo() { Message = "推送客服, userBasic:" + userBasic.ToJSON() }); if (!string.IsNullOrEmpty(userBasic.DeviceToken)) { // IOSNotificationService.Default.SendNotification(IOSNotificationBuilder.CreateNotification(userBasic.DeviceToken, messageContent)); string method = "Process"; //IOS消息推送 // string url = "http://121.199.42.125:9000/PushService.svc"; string url = System.Configuration.ConfigurationManager.AppSettings["pushMessageUrl"]; int channelId = 2; if (!string.IsNullOrEmpty(userBasic.Channel)) { channelId = Convert.ToInt32(userBasic.Channel); } PushRequest pRequest2 = RequestBuilder.CreateIOSUnicastNotificationRequest(1, channelId, userBasic.DeviceToken, messageContent); var json = "{\"pRequest\":" + pRequest2.ToJSON() + "}"; var response2 = SendHttpRequest(url, method, json); var msg = "会员ID:" + memberID + " DeviceToken:" + userBasic.DeviceToken; Loggers.DEFAULT.Debug(new DebugLogInfo { Message = msg + " 消息发送结果: " + response2 }); } else { Loggers.Debug(new DebugLogInfo() { Message = string.Format("PushMessage: {0}", "VipID:" + memberID + "没有保存DeviceToken") }); } } }
public string SetIOSDeviceToken(string reqContent) { var rd = new APIResponse <SetIOSDeviceTokenRD>(); var rdData = new SetIOSDeviceTokenRD(); try { #region Loggers.Debug(new DebugLogInfo() { Message = string.Format("setSignUp: {0}", reqContent) }); //解析请求字符串 var rp = reqContent.DeserializeJSONTo <APIRequest <SetIOSDeviceTokenRP> >(); 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()); } if (string.IsNullOrEmpty(rp.Parameters.DeviceToken)) { rd.ResultCode = 2201; rd.Message = "deviceToken不能为空"; return(rd.ToJSON().ToString()); } #endregion PushUserBasicBLL service = new PushUserBasicBLL(loggingSessionInfo); PushUserBasicEntity basicInfo = new PushUserBasicEntity(); basicInfo = service.GetByID(rp.UserID); if (basicInfo == null) { PushUserBasicEntity basicInfo1 = new PushUserBasicEntity(); basicInfo1.UserId = rp.UserID; basicInfo1.DeviceToken = ToStr(rp.Parameters.DeviceToken); basicInfo1.CustomerId = ToStr(rp.CustomerID); basicInfo1.Channel = ToStr(""); basicInfo1.Plat = ToStr(""); service.Create(basicInfo1); } else { basicInfo.DeviceToken = rp.Parameters.DeviceToken; basicInfo.Channel = ToStr(""); service.Update(basicInfo); } rdData.DeviceToken = rp.Parameters.DeviceToken; rd.Data = rdData; rd.ResultCode = 0; } catch (Exception ex) { rd.ResultCode = 103; rd.Message = ex.ToString(); } Loggers.Debug(new DebugLogInfo() { Message = string.Format("setSignUp content: {0}", rd.Message) }); return(rd.ToJSON()); }