public void Execute(IJobExecutionContext context) { SendCodeForUserGroupLogger.Info($"推荐有礼特殊人群配置同步开始:每两小时同步一次数据"); //从Tuhu_bi库同步到Configuration var needData = DalShareUser.GetNeedExportData().ToList(); if (!needData.Any()) { SendCodeForUserGroupLogger.Error($"推荐有礼特殊人群配置同步:没有需要同步的数据"); return; } foreach (var groupData in needData.GroupBy(n => n.GroupId)) { var groupIsExist = DalShareUser.GetGroupIdIsExist(groupData.Key); var tempData = groupData.ToList(); if (!groupIsExist) { if (tempData.Count > 1000) { int index = 0, pageSize = 500; var temptempData = tempData.Skip(index * pageSize).Take(pageSize).ToList(); while (temptempData != null & temptempData.Count > 0) { if (!DalShareUser.CreateSendCodeForUserGroupData(temptempData)) { SendCodeForUserGroupLogger.Error($"推荐有礼特殊人群配置同步失败:GroupId={groupData.Key}"); } SendCodeForUserGroupLogger.Info($"推荐有礼特殊人群配置同步成功:GroupId={groupData.Key}"); index++; temptempData = tempData.Skip(index * pageSize).Take(pageSize).ToList(); } } else { if (!DalShareUser.CreateSendCodeForUserGroupData(tempData)) { SendCodeForUserGroupLogger.Error($"推荐有礼特殊人群配置同步失败:GroupId={groupData.Key}"); } SendCodeForUserGroupLogger.Info($"推荐有礼特殊人群配置同步成功:GroupId={groupData.Key}"); } } else { SendCodeForUserGroupLogger.Info($"推荐有礼特殊人群配置同步异常:群体GroupId已经存在:GroupId={groupData.Key}"); } } SendCodeForUserGroupLogger.Info($"推荐有礼特殊人群配置同步结束"); }
public void Execute(IJobExecutionContext context) { UserShareRankingLogger.Info($"分享排行榜:每天晚上23:30更新{DateTime.Now}"); //获取参入推荐有礼用户 int pageIndex = 1, pageSize = 100; while (true) { try { var allUsers = DalShareUser.GetAllShareUsers(pageIndex, pageSize).ToList(); if (allUsers == null || !allUsers.Any()) { UserShareRankingLogger.Info($"没有获取到用户数据"); break; } var shareUserData = new List <UserShareAwardmodel>(); shareUserData.AddRange(DalShareUser.GetShareUserDatas_Old(allUsers)); shareUserData.AddRange(DalShareUser.GetShareUserDatas_New(allUsers)); if (shareUserData == null || !shareUserData.Any()) { pageIndex++; continue; } List <UserShareRankingModel> InsertOrUpdateList = new List <Model.UserShareRankingModel>(); #region 奖励金额计算 var temp = shareUserData.ToArray(); #endregion temp.GroupBy(x => x.UserId).ForEach(f => { var InsertOrUpdateModel = InsertOrUpdateList.Where(w => w.UserId == f.Key).FirstOrDefault(); if (InsertOrUpdateModel == null) { InsertOrUpdateModel = new UserShareRankingModel() { UserId = f.Key, TotalReward = f.Sum(e => (e.IsFromOldTalbe ? (e.Award == 0 ? 20 : e.Award / 100) : e.Award)) }; InsertOrUpdateList.Add(InsertOrUpdateModel); } }); #region 获取用户昵称头像信息 DalShareUser.GetUserNickNameAndHeadImg(InsertOrUpdateList); #endregion if (!DalShareUser.CreateUserShareRankingData(InsertOrUpdateList)) { UserShareRankingLogger.Error($"分享排行榜:第{pageIndex}页数据更新失败,每页{pageSize}条"); } UserShareRankingLogger.Info($"分享排行榜:第{pageIndex}页数据更新成功,每页{pageSize}条"); } catch (Exception ex) { UserShareRankingLogger.Error(ex); break; } pageIndex++; } UserShareRankingLogger.Info($"分享排行榜:更新完成{DateTime.Now}"); }