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($"推荐有礼特殊人群配置同步结束");
        }
Esempio n. 2
0
        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}");
        }