Example #1
0
        private void DoPush(DataTable dt)
        {
            var dic = dt.Rows.OfType <DataRow>().GroupBy(x => int.Parse(x["Type"].ToString())).ToDictionary(k => k.Key,
                                                                                                            v => v.Select(_ => new { UserId = _["UserId"].ToString().ToUpper(), PKID = long.Parse(_["PKID"].ToString()), Status = int.Parse(_["Status"].ToString()), CarId = _["CarId"].ToString() }).ToList());

            if (dic.ContainsKey(1)) //单独发送
            {
                Parallel.ForEach(dic[1], new ParallelOptions()
                {
                    MaxDegreeOfParallelism = ThreadCount
                }, temp =>
                {
                    using (var client = new Service.Push.TemplatePushClient())
                    {
                        client.PushByUserIDAndBatchID(new List <string> {
                            temp.UserId
                        }, 833,
                                                      new Service.Push.Models.Push.PushTemplateLog()
                        {
                            Replacement = Newtonsoft.Json.JsonConvert.SerializeObject(
                                new Dictionary <string, string>
                            {
                                ["{{carID}}"] = temp.CarId
                            })
                        });
                    }
                });

                if (dic[1].Any())
                {
                    UpdateStatus(dic[1].Select(x => x.PKID).ToList());
                }
            }
            if (dic.ContainsKey(2)) //批量发送 没有领取洗车券的
            {
                if (dic[2].Count > 0)
                {
                    using (var client = new Service.Push.TemplatePushClient())
                    {
                        client.PushByUserIDAndBatchID(dic[2].Select(_ => _.UserId).ToList(), 836,
                                                      new Service.Push.Models.Push.PushTemplateLog());
                    }
                    UpdateStatus(dic[2].Select(_ => _.PKID).ToList());
                }
            }
            if (dic.ContainsKey(3)) //批量发送 没有领取加油卡的
            {
                if (dic[3].Count > 0)
                {
                    using (var client = new Service.Push.TemplatePushClient())
                    {
                        client.PushByUserIDAndBatchID(dic[3].Select(_ => _.UserId).ToList(), 839,
                                                      new Service.Push.Models.Push.PushTemplateLog());
                    }
                    UpdateStatus(dic[3].Select(_ => _.PKID).ToList());
                }
            }
        }
Example #2
0
 private void Send(IEnumerable <CarDetail> data)
 {
     using (var client = new Service.Push.TemplatePushClient())
     {
         foreach (var item in data)
         {
             var result = GetResponse(item);
             if (result != null)
             {
                 if (result.HasData)
                 {
                     Notification(item, WeiZhang, client);
                 }
                 else
                 {
                     Notification(item, NoWeiZhang, client);
                 }
             }
         }
     }
 }
Example #3
0
 private void Send(CarDetail _CarDetail)
 {
     using (var client = new Service.Push.TemplatePushClient())
     {
         if (_CarDetail != null)
         {
             var result = GetResponse(_CarDetail);
             if (result != null)
             {
                 if (result.HasData)
                 {
                     Notification(_CarDetail, WeiZhang, client);
                 }
                 else
                 {
                     Notification(_CarDetail, NoWeiZhang, client);
                 }
             }
         }
     }
 }
        public bool ExecuteJob(List <ActivityMessageRemindModel> activityMessages)
        {
            if (activityMessages == null || !activityMessages.Any())
            {
                return(false);
            }
            var pushMessages = activityMessages.GroupBy(r => new { r.ActivityId, r.UserId }).Select(g =>
            {
                var model = g.FirstOrDefault <ActivityMessageRemindModel>();
                if (model == null)
                {
                    return(new ActivityMessageRemindModel());
                }
                var result = new ActivityMessageRemindModel
                {
                    ActivityId      = g.Key.ActivityId,
                    Pid             = model.Pid,
                    UserId          = g.Key.UserId,
                    ProductName     = model.ProductName,
                    Pkid            = model.Pkid,
                    ActivityName    = model.ActivityName,
                    IsMultiProducts = g.Count() > 1,
                    StartDtartTime  = model.StartDtartTime,
                };
                return(result);
            });

            using (var client = new Service.Push.TemplatePushClient())
            {
                foreach (var pushMessage in pushMessages)
                {
                    if (pushMessage.IsMultiProducts)
                    {
                        var result = client.PushByUserIDAndBatchID(new List <string> {
                            pushMessage.UserId.ToString()
                        }, 676,
                                                                   new PushTemplateLog()
                        {
                            Replacement = Newtonsoft.Json.JsonConvert.SerializeObject(new Dictionary <string, string>()
                            {
                                { "{{ios.productname}}", $"{pushMessage.ProductName}等商品" },
                                { "{{ios.activitytime}}", pushMessage.StartDtartTime.ToString("F") },
                                { "{{ios.activitypagehashid}}", pushMessage.ActivityId },
                                { "{{android.productname}}", $"{pushMessage.ProductName}等商品" },
                                { "{{android.activitytime}}", pushMessage.StartDtartTime.ToString("F") },
                                { "{{android.activitypagehashid}}", pushMessage.ActivityId },
                                { "{{messagebox.productname}}", $"{pushMessage.ProductName}等商品" },
                                { "{{messagebox.activitytime}}", pushMessage.StartDtartTime.ToString("F") },
                                { "{{messagebox.activitypagehashid}}", pushMessage.ActivityId }
                            })
                        }
                                                                   );
                        if (result.Success)
                        {
                            Logger.Info($"活动页推送消息成功Pid{pushMessage.Pid}ActivityId{pushMessage.ActivityId}UserId{pushMessage.UserId}");
                        }
                        else
                        {
                            Logger.Warn($"活动页推送消息失败Pid{pushMessage.Pid}ActivityId{pushMessage.ActivityId}UserId{pushMessage.UserId}");
                        }
                    }
                    else
                    {
                        var result = client.PushByUserIDAndBatchID(new List <string> {
                            pushMessage.UserId.ToString()
                        }, 676,
                                                                   new PushTemplateLog()
                        {
                            Replacement = Newtonsoft.Json.JsonConvert.SerializeObject(new Dictionary <string, string>()
                            {
                                { "{{ios.productname}}", $"{pushMessage.ProductName}" },
                                { "{{ios.activitytime}}", pushMessage.StartDtartTime.ToString("F") },
                                { "{{ios.activitypagehashid}}", pushMessage.ActivityId },
                                { "{{android.productname}}", $"{pushMessage.ProductName}" },
                                { "{{android.activitytime}}", pushMessage.StartDtartTime.ToString("F") },
                                { "{{android.activitypagehashid}}", pushMessage.ActivityId },
                                { "{{messagebox.productname}}", $"{pushMessage.ProductName}" },
                                { "{{messagebox.activitytime}}", pushMessage.StartDtartTime.ToString("F") },
                                { "{{messagebox.activitypagehashid}}", pushMessage.ActivityId }
                            })
                        });
                        if (result.Success)
                        {
                            Logger.Info($"活动页推送消息成功Pid{pushMessage.Pid}ActivityId{pushMessage.ActivityId}UserId{pushMessage.UserId}");
                        }
                        else
                        {
                            Logger.Warn($"活动页推送消息失败Pid{pushMessage.Pid}ActivityId{pushMessage.ActivityId}UserId{pushMessage.UserId}");
                        }
                    }
                }
            };
            return(true);
        }