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