private void DoJob() { var data = DalGroupBuying.GetExpiredUserList(); if (data.Any()) { using (var client = new OrderApiForCClient()) { foreach (var item in data) { var OrderData = client.FetchOrderByOrderId(item.OrderId); var result = OrderData.Success && OrderData.Result.Status == "7Canceled"; if (!result) { result = CancelPinTuanOrder(item.UserId, item.OrderId); } //if (result) //{ // var ChangeResult = DalGroupBuying.ChangeUserOrderStatus(item.OrderId); // if (ChangeResult == 0) // { // Logger.Warn($"修改拼团用户状态为订单取消失败/{item.OrderId}"); // } //} if (!result) { Logger.Warn($"取消未付款订单{item.OrderId}失败"); } } } } }
private void DoJob() { var startTime = DateTime.Now.Date.AddDays(1); var endTime = startTime.AddDays(1); var count = DalGroupBuying.GetExpiringFreeCouponCount(startTime, endTime); if (count == 0) { Logger.Warn($"待过期的拼团免单券数量为{count}"); return; } const int step = 1000; var start = 0; while (start < count) { var userList = DalGroupBuying.GetExpiringFreeCouponList(startTime, endTime, start, step); try { PushMessage(2195, userList); Logger.Info($"待过期拼团免单券推送成功,第{start / step + 1}批,共{count / step + 1}批"); } catch (Exception ex) { Logger.Warn( $"待过期拼团免单券推送失败,第{start / step + 1}批,共{count / step + 1}批,{ex.Message}/{ex.InnerException}"); } start += step; } }
private void DoJob() { var orderList = DalGroupBuying.GetOrderList(); using (var client = new OrderOperationClient()) { foreach (var item in orderList) { var setResult = client.ExecuteOrderProcess(new ExecuteOrderProcessRequest { OrderId = item.Item1, CreateBy = item.Item2.ToString("D"), OrderProcessEnum = OrderProcessEnum.PinTuanSuccess }); if (!setResult.Success) { Logger.Warn($"{item.Item1}出现异常", setResult.Exception); } } } //var groupInfo = DalGroupBuying.GetCouponList(); //foreach(var item in groupInfo) //{ // TuhuNotification.SendNotification("notification.GroupBuyingCreateCouponQueue", // new Dictionary<string, object> // { // ["GroupId"] = item.Item1, // ["ProductGroupId"] = item.Item2 // }, 10000); //} }
private void DoJob() { const int step = 10; var start = 0; var count = DalGroupBuying.GetGroupBuyingCount(); Logger.Warn($"待刷新拼团数量为{count}个"); while (start <= count) { var productGroupIds = DalGroupBuying.GetProductGroupList(start, step); if (productGroupIds.Any()) { using (var client = new PinTuanClient()) { var result = client.UpdateGroupBuyingInfo(productGroupIds); if (!(result.Success && result.Result)) { Logger.Warn($"更新ES数据失败-->{result.Exception?.Message}"); } } } start += step; } }
public void DoJob() { using (var client = new PinTuanClient()) { var result = client.RefreshCache(); if (!(result.Success && result.Result.Code == 1)) { Logger.Warn("刷新拼团首页模块数据失败"); } var data = DalGroupBuying.GetAllPinTuanProduct(); foreach (var item in data) { var resultItem = client.RefreshCache(item); if (!(result.Success && result.Result.Code == 1)) { Logger.Warn($"刷新拼团数据-->{item}--失败"); } } } using (var client = new ShareBargainClient()) { var result = client.RefreshShareBargainCache(); if (!(result.Success && result.Result)) { Logger.Warn("砍价首页模块数据失败"); } } }
private void DoJob() { var data = DalGroupBuying.GetExpiringGroupInfo(); Logger.Info($"当前有{data.Count}个团处于拼团中状态"); var span1 = TimeSpan.FromMinutes(160); var span2 = TimeSpan.FromMinutes(190); var span3 = TimeSpan.FromMinutes(50); var span4 = TimeSpan.FromMinutes(80); foreach (var item in data) { if (item.EndTime > DateTime.Now + span1 && item.EndTime < DateTime.Now + span2 && !GetExpiringCache(item.GroupId, 3)) { Logger.Info($"团号为{item.GroupId:D}拼团将在三个小时候结束,为相关用户推送提醒"); PushMessage(item.GroupId, 1651, 3); SetExpiringCache(item.GroupId, 3); } else if (item.EndTime > DateTime.Now + span3 && item.EndTime < DateTime.Now + span4 && !GetExpiringCache(item.GroupId, 1)) { Logger.Info($"团号为{item.GroupId:D}拼团将在一个小时候结束,为相关用户推送提醒"); PushMessage(item.GroupId, 1651, 1); SetExpiringCache(item.GroupId, 1); } else if (item.EndTime < DateTime.Now) { using (var client = new PinTuanClient()) { var pinTuanAutoFinishResult = client.PinTuanAutoFinish(new PinTuanAutoFinishRequest() { GroupId = item.GroupId }); // 判断返回值 if (!pinTuanAutoFinishResult.Result) { var result = client.ExpireGroupBuying(item.GroupId); if (result.Success && result.Result.Code == 1) { Logger.Info($"团{item.GroupId}过期,取消成功"); } else { Logger.Warn($"团{item.GroupId}过期,取消失败,{result.Exception?.Message},{result.Result?.Info}"); } } else { Logger.Info($" GroupBuyingOrderJob -> DoJob -> {item.GroupId} auto finished "); } } } } }
private void DoJob() { var data = DalGroupBuying.GetTerribleOrderList(); if (data.Count < 1) { Logger.Warn("GroupBuyingCanceledJob==>待取消订单为O"); return; } CanceledOrder(data); }
private static void Exec() { // 1. GetNeedSendEmailMetadata var expiredInfo = DalGroupBuying.GetYiwuStockOutGroupBuyingInfo().ToList(); expiredInfo.AddRange(DalGroupBuying.GetExpiredGroupBuyingInfo()); expiredInfo.AddRange(GetNotExpiredRemindGroupBuyingInfos()); // 2. SendEmail SendEmail(expiredInfo.Distinct(new ExpiredGroupBuyingInfoEqualityComparer()).ToArray()); }
/// <summary> /// 获取未过期要提醒的团信息 /// </summary> /// <returns></returns> private static IEnumerable <ExpiredGroupBuyingInfo> GetNotExpiredRemindGroupBuyingInfos() { var preList = new List <ExpiredGroupBuyingInfo>(); var list = DalGroupBuying.GetActiveGroupBuyingInfo().ToList(); using (var client = new ProductClient()) { var result = client.SelectSkuProductListByPids(list.Select(_ => _.PID).Distinct().ToList()); if (result.Success && result.Result.Any()) { foreach (var info in list) { info.IsActive = result.Result.FirstOrDefault(_ => _.Pid.Equals(info.PID))?.Onsale ?? false; } } } using (var cacheClient = CacheHelper.CreateCacheClient()) { var result = cacheClient.Get <List <ExpiredGroupBuyingInfo> >(PreGroupBuyingInfoCacheName); if (result.Success && result.Value?.FirstOrDefault() != null) { preList.AddRange(result.Value); } else { Logger.Warn($"获取缓存失败,{result.Message}", result.Exception); } cacheClient.Set(PreGroupBuyingInfoCacheName, list, TimeSpan.FromHours(24.2)); } var infos = new List <ExpiredGroupBuyingInfo>(); // 库存为0的情况 foreach (var info in list.Where(_ => _.CurrentSoldCount >= _.TotalStockCount)) { if (preList.Any(_ => _.TotalStockCount > _.CurrentSoldCount && _.ProductGroupId.Equals(info.ProductGroupId) && _.PID.Equals(info.PID))) { info.TriggerType = "商品库存不足"; infos.Add(info); } } // 产品库商品下架 foreach (var info in list.Where(_ => !_.IsActive)) { if (preList.Any(_ => _.IsActive && _.ProductGroupId.Equals(info.ProductGroupId) && _.PID.Equals(info.PID))) { info.TriggerType = "产品库商品下架"; infos.Add(info); } } return(infos); }
private void DoJob() { var data = DalGroupBuying.GetGroupInfo(); foreach (var item in data) { TuhuNotification.SendNotification("notification.GroupBuyingCreateCouponQueue", new Dictionary <string, object> { ["GroupId"] = item.Item1, ["ProductGroupId"] = item.Item2 }); } }
private void DoJob() { // 获取超时的订单 var data = DalGroupBuying.GetExpiredUserList(); if (data.Any()) { using (var client = new OrderApiForCClient()) using (var clientPinTuna = new PinTuanClient()) { foreach (var item in data) { var OrderData = client.FetchOrderByOrderId(item.OrderId); var result = OrderData.Success && OrderData.Result?.Status == "7Canceled"; if (!result && OrderData.Result != null) { //判断状态能不能取消 if (new[] { "0NewPingTuan", "0New" }.Contains(OrderData.Result.Status)) { result = CancelPinTuanOrder(item.UserId, item.OrderId); } else { result = true; //调用补足服务,订单已取消 ,拼团状态未改变 clientPinTuna.RepairPinTuanOrderStatus(new List <int> { item.OrderId }); } Logger.Info($"当前订单:{item.OrderId} {OrderData.Result.Status} "); } //if (result) //{ // var ChangeResult = DalGroupBuying.ChangeUserOrderStatus(item.OrderId); // if (ChangeResult == 0) // { // Logger.Warn($"修改拼团用户状态为订单取消失败/{item.OrderId}"); // } //} if (!result) { Logger.Warn($"取消未付款订单{item.OrderId}失败"); } } } } }
public void DoJob() { var orderList = (DalGroupBuying.GetPinTuanOrderList()).Distinct()?.ToList() ?? new List <int>(); if (orderList.Any()) { Logger.Warn($"查出{orderList.Count}个异常订单待补偿-->{string.Join("/", orderList)}"); using (var client = new PinTuanClient()) { var result = client.RepairPinTuanOrderStatus(orderList); if (result.Success && !string.IsNullOrWhiteSpace(result.Result.Info)) { Logger.Info(result.Result.Info); Email(result.Result.Info); } else { Logger.Error($"拼团异常订单处理失败-->{string.Join("/", orderList)}"); } } } }