/// <summary> /// 获取所有活动地区 /// </summary> /// <returns></returns> public static async Task <IEnumerable <T_ArearModel> > GetAllAreaAsync() { var key = $"GetAllAreaAsync"; using (var client = CacheHelper.CreateCacheClient(DefaultClientName)) { var result = await client.GetOrSetAsync(key, () => DalActivity.GetAllAreaAsync(), ActivityCacheExpiration); IEnumerable <T_ArearModel> xhrActivity; if (result.Success) { xhrActivity = result.Value; } else { Logger.Warn($"获取redis数据失败SelectAllArea:{key};Error:{result.Message}", result.Exception); // redis查询失败查数据库 xhrActivity = await DalActivity.GetAllAreaAsync(); } if (xhrActivity != null && xhrActivity.Any()) { return(xhrActivity); } return(null); } }
private void Run() { using (var acitivtyClient = new ActivityClient()) { #region 世界杯活动清算 //获取世界杯活动 var activity = acitivtyClient.GetWorldCup2018Activity(); if (activity.Success && activity.Result != null) { //获取今天发布'结果'的题目 列表 var questions = DalActivity.SearchTodayReleaseQuestionAnswerList(activity.Result.QuestionnaireID)?.ToList(); if (questions != null) { if (questions.Count > 0) { //刷新缓存 RefreshCache(activity?.Result?.PKID ?? 0); } //循环问题 questions.ForEach(question => { UserAnswerClear(question, activity.Result.PKID); }); } } #endregion } }
public List <ActivityMessageRemindModel> BeforeExecuteJob() { var list = new List <ActivityMessageRemindModel>(); var activtyProducts = DalActivity.SelectFlashSaleProductModels().ToList(); if (activtyProducts.Any()) { var pids = activtyProducts.Select(r => r.Pid); foreach (var enumerable in pids.Split(100).Select(_ => _.ToList())) { var datas = (DalActivity.SelectActivityMessageRemindModel(enumerable)).ToList(); if (datas.Any()) { list.AddRange(datas); } } ; var result = (from l in list join p in activtyProducts on l.Pid equals p.Pid select new ActivityMessageRemindModel { ActivityId = l.ActivityId, ActivityName = l.ActivityName, Pid = l.Pid, Pkid = l.Pkid, ProductName = l.ProductName, UserId = l.UserId, StartDtartTime = p.StartDateTime, }).ToList(); return(result); } return(list); }
public TemplateListResponse GetTemplates() { TemplateListResponse response = new TemplateListResponse(); using (DalActivity context = new DalActivity()) { response = context.GetTemplates(); } return(response); }
public ActivitiesListResponse GetActivitiesList(ActivityFilters filters) { ActivitiesListResponse response = new ActivitiesListResponse(); using (DalActivity context = new DalActivity()) { response = context.GetActivitiesList(filters); } return(response); }
/// <summary> /// 获取所有活动 /// </summary> /// <returns></returns> public static async Task <IEnumerable <T_Activity_xhrModel> > GetAllActivityManagerAsync(int pageIndex, int pageSize) { try { return(await DalActivity.GetAllActivityManagerAsync(pageIndex, pageSize)); } catch (Exception ex) { Logger.Error($"GetAllActivityManagerAsync", ex); throw ex; } }
/// <summary> /// 管理员注册 /// </summary> /// <param name="request"></param> /// <returns></returns> public static async Task <bool> ManagerRegisterAsync(T_ActivityManagerUserInfo_xhrModel request) { try { return(await DalActivity.ManagerRegisterAsync(request)); } catch (Exception ex) { Logger.Error($"ManagerRegister", ex); throw ex; } }
/// <summary> /// 修改报名信息 /// </summary> /// <param name="request"></param> /// <returns></returns> public static async Task <bool> UpdateActivitiesUserAsync(ActivityUserInfo_xhrRequest request) { try { return(await DalActivity.UpdateActivitiesUserAsync(request)); } catch (Exception ex) { Logger.Error($"UpdateActivitiesUserAsync -> {JsonConvert.SerializeObject(request)}", ex); throw ex; } }
/// <summary> /// 获取密码盐 /// </summary> /// <param name="request"></param> /// <returns></returns> public static string GetPassWordsSalt(T_ActivityManagerUserInfo_xhrModel request) { try { return(DalActivity.GetPassWordsSalt(request)); } catch (Exception ex) { Logger.Error($"GetPassWordsSalt", ex); throw ex; } }
/// <summary> /// 验证登录状态 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public static async Task <bool> CheckLoginAsync(int managerId) { try { return(await DalActivity.CheckLoginAsync(managerId)); } catch (Exception ex) { Logger.Error($"ManagerRegister", ex); throw ex; } }
/// <summary> /// 审核活动 /// </summary> /// <returns></returns> public static async Task <bool> ReviewActivityTaskAsync() { try { return(await DalActivity.ReviewActivityTaskAsync()); } catch (Exception ex) { Logger.Error($"ReviewActivityTask", ex); throw ex; } }
/// <summary> /// 根据地区查询用户信息 /// </summary> /// <returns></returns> public static async Task <IEnumerable <T_ActivityUserInfo_xhrModels> > GetActivityUserInfoByAreaAsync(int areaId, int pageIndex, int pageSize) { IEnumerable <T_ActivityUserInfo_xhrModels> xhrActivity; xhrActivity = await DalActivity.GetActivityUserInfoByAreaAsync(areaId, pageIndex, pageSize); if (xhrActivity != null && xhrActivity.Any()) { return(xhrActivity); } return(null); }
/// <summary> /// 私有 获取 游戏信息 /// </summary> /// <param name="request"></param> /// <returns></returns> private async Task <GetGameInfoResponse> _GetGameInfoResponseAsync(GetGameInfoRequest request) { var dbResult = await DalActivity.GetActivityByTypeId(GameVersion); return(new GetGameInfoResponse { ActivityName = dbResult.ActivityName, StartTime = dbResult.StartTime, EndTime = dbResult.EndTime, GameRuleText = dbResult.GameRuleText, SupportRuleText = dbResult.SupportRuleText }); }
public void AfterExecuteJob(List <int> pkids) { foreach (var ints in pkids.Split(100).Select(_ => _.ToList())) { var enumerable = ints; var datas = (DalActivity.UpdateActivityMessageRemindModel(enumerable)); if (datas <= 0) { Logger.Warn("更新已经推送过的消息记录失败"); } else { Logger.Info($"更新已经推送过的消息记录成功共计{datas}条数据"); } } }
public void Execute(IJobExecutionContext context) { var watcher = new Stopwatch(); watcher.Start(); Logger.Info("自动审核活动Job开始执行"); try { DalActivity.ReviewActivityTask(); } catch (Exception ex) { Logger.Warn("自动审核活动Job出现异常", ex); } watcher.Stop(); Logger.Info($"会员任务数据备份Job完成,用时{watcher.ElapsedMilliseconds}毫秒"); }
public CrmResponse InsertActivity(ENTITIES.Activity newActivity) { CrmResponse response = new CrmResponse(); using (DalActivity context = new DalActivity()) { response = context.InsertNewActivity(newActivity); if (response.rc > -1) { //insert lines to schedule email sending response = context.ScheduleEmails(response.rc); } } return(response); }
/// <summary> /// 获取所有可用活动 /// </summary> /// <returns></returns> public static async Task <List <T_Activity_xhrModel> > GetAllActivityAsync(int pageIndex, int pageSize) { using (var hashClient = CacheHelper.CreateHashClient("GetAllActivity", ActivityCacheExpiration)) { IEnumerable <T_Activity_xhrModel> xhrActivity; var getresult = hashClient.GetAsync <IEnumerable <T_Activity_xhrModel> >("GetAllActivityAsync/" + pageIndex.ToString()); if (!getresult.Result.Success) { Logger.Warn($"查询redis数据失败GetActivity:{"GetAllActivityAsync/" + pageIndex.ToString()};Error:{getresult.Result.Message}", getresult.Exception); return(null); } else { if (getresult.Result.Value.Any() && getresult.Result.Value != null) { xhrActivity = getresult.Result.Value; } else { var result = DalActivity.GetAllActivityAsync(pageIndex, pageSize); var dic = new Dictionary <string, object>(); dic.Add("GetAllActivityAsync" + pageIndex.ToString(), result.Result); IReadOnlyDictionary <string, object> roDic = new ReadOnlyDictionary <string, object>(dic); var setResult = await hashClient.SetAsync <IEnumerable <T_Activity_xhrModel> >(roDic); if (setResult.Success) { xhrActivity = result.Result; } else { Logger.Warn($"存储redis数据失败SetActivity:{"GetAllActivityAsync/" + pageIndex.ToString()};Error:{setResult.Message}", setResult.Exception); return(null); } } } if (xhrActivity != null && xhrActivity.Any()) { return(xhrActivity.Where(_ => _.StartTime <= DateTime.Now && _.EndTime > DateTime.Now)?.ToList() ?? new List <T_Activity_xhrModel>()); } return(null); } }
/// <summary> /// 修改活动信息 /// </summary> /// <param name="request"></param> /// <returns></returns> public static async Task <bool> UpdateActivityAsync(T_Activity_xhrModel request) { using (var hashClient = CacheHelper.CreateHashClient("GetAllActivity")) { try { var result = await DalActivity.UpdateActivityAsync(request); hashClient.RemoveSelf(); return(result); } catch (Exception ex) { Logger.Error($"UpdateActivityAsync -> {JsonConvert.SerializeObject(request)}", ex); throw ex; } } }
/// <summary> /// 刷新客户专享活动配置缓存 /// </summary> /// <param name="activityExclusiveId"></param> /// <returns></returns> public static async Task <bool> RefreshRedisCacheCustomerSetting(string activityExclusiveId) { using (var client = CacheHelper.CreateCacheClient(ActivityManager.DefaultClientName)) { var data = await DalActivity.SelectCustomerExclusiveSettingInfo(activityExclusiveId, false); var result = await client.SetAsync(string.Concat("CustomerSettingInfo/", activityExclusiveId), data , TimeSpan.FromDays(2)); if (result.Success) { return(true); } else { Logger.Warn($"set redis缓存失败,接口==》RefreshRedisCacheCustomerSettingAsync"); return(false); } } }
public static async Task <bool> RefreshVipCardCacheByActivityIdAsync(string activityId) { using (var client = CacheHelper.CreateCacheClient(ActivityManager.DefaultClientName)) { var data = await DalActivity.GetVipCardSaleConfigDetailsAsync(activityId); var result = await client.SetAsync(GlobalConstant.VipCardPrefix + activityId, data , TimeSpan.FromDays(10)); if (result.Success) { return(true); } else { Logger.Warn($"set redis缓存失败,接口==》RefreshVipCardCacheByActivityIdAsync"); return(false); } } }
public void Execute(IJobExecutionContext context) { var sw = new Stopwatch(); sw.Start(); Logger.Info($"开始定时刷新活动页适配车型的产品缓存"); try { var activityIds = DalActivity.GetSystemActivityIds(); var result = true; if (activityIds != null && activityIds.Any()) { using (var client = new Service.Activity.ActivityClient()) { foreach (var activityId in activityIds) { var result1 = client.GetOrSetActivityPageSortedPids(new SortedPidsRequest() { IsRefresh = true, DicActivityId = new KeyValuePair <string, ActivityIdType>(activityId, ActivityIdType.AutoActivity) }); result1.ThrowIfException(true); if (result1.ErrorCode == "-1") { result = false; } } } } if (result == false) { Logger.Error($"刷新活动页适配车型的产品缓存执行失败"); } } catch (Exception e) { Logger.Error($"开始定时刷新活动页适配车型的产品缓存执行失败", e.InnerException); } sw.Stop(); Logger.Info($"定时刷新活动页适配车型的产品缓存耗时{sw.ElapsedMilliseconds}"); }
/// <summary> /// 更新游戏信息 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <UpdateGameInfoResponse> UpdateGameInfoAsync(UpdateGameInfoRequest request) { try { var dbResult = await DalActivity.GetActivityByTypeId(GameVersion); using (var dbHelper = DbHelper.CreateDbHelper()) { dbResult.StartTime = request.StartTime; dbResult.EndTime = request.EndTime; await DalActivity.UpdateActivtyAsync(dbHelper, dbResult); } return(new UpdateGameInfoResponse()); } catch (Exception e) { Logger.Error( $"{ManagerName} -> UpdateGameInfoAsync -> {JsonConvert.SerializeObject(request)} ", e.InnerException ?? e); throw; } }
private static string GetActivityConfigInfo(DateTime dt) { var schedule = ConvertToSchedule(dt.Hour); #region 过期的待审核的数据在这里删掉 var expiredDatas = DalActivity.SelectExpiredScheduleActivity(schedule); foreach (var activity in expiredDatas) { Logger.Info($"{activity}活动已经结束了,还没审核通过直接删掉了"); DalActivity.DeleteFlashSaleTempByAcid(activity); DalActivity.DeleteFlashSaleProductsTempByAcid(activity); } #endregion var activityId = DalActivity.SelectNextScheduleActivity(schedule); if (string.IsNullOrEmpty(activityId)) { return(null); } else { return(schedule); } }
public static async Task <TireActivityModel> SelectTireActivityAsync(string vehicleId, string tireSize) { using (var client = CacheHelper.CreateCacheClient(DefaultClientName)) { var result = await client.GetOrSetAsync(string.Concat("TireActivity/", vehicleId, tireSize), () => DalActivity.SelectTireActivity(vehicleId, tireSize), ActivityCacheExpiration); IEnumerable <TireActivityModel> tireActivity; if (result.Success) { tireActivity = result.Value; } else { Logger.Warn($"获取redis数据失败SelectTireActivityAsync:{string.Concat("TireActivity/", vehicleId, tireSize)};Error:{result.Message}", result.Exception); // redis查询失败查数据库 tireActivity = await DalActivity.SelectTireActivity(vehicleId, tireSize); } if (tireActivity != null && tireActivity.Any()) { return(tireActivity.FirstOrDefault(_ => _.StartTime <= DateTime.Now && _.EndTime > DateTime.Now)); } return(null); } }
/// <summary> /// 清算用户数据 /// </summary> /// <param name="questionModel"></param> /// <param name="activityId"></param> private void UserAnswerClear(QuestionModel questionModel, long activityId) { var questionId = questionModel.PKID; //获取题目的选项和子项 var options = DalActivity.SearchQuestionOption(questionId)?.ToList(); if (options?.Count == 0) { return; } //正确选项 var rightOption = options.FirstOrDefault(p => p.QuestionParentID == 0 && p.IsRightValue == 1); if (rightOption == null) { return; } var i = 1; using (var db = DbHelper.CreateDbHelper()) using (var configClient = new ConfigClient()) using (var userClient = new UserClient()) using (var activityClient = new ActivityClient()) using (var templatePushClient = new TemplatePushClient()) using (var cacheClient = CacheHelper.CreateCacheClient("ActivityUserQuestionAnswerClear")) { //推送的开关设置 var pushResult = configClient.GetOrSetRuntimeSwitch("activityquestionclearpush")?.Result; //推送开关 var pushFlag = pushResult?.Value ?? false; //推送的模板ID var pushIdstr = pushResult?.Description; var pushId = 0; int.TryParse(pushIdstr, out pushId); while (true) { var ts = new Stopwatch(); ts.Start(); var clearCount = 1000; //获取用户答题尚未清算数据 var userAnswerNotClearDatas = DalActivity.SearchUserAnswerNotClear(questionId, clearCount)?.ToList(); if (userAnswerNotClearDatas?.Count == 0) { break; } //循环用户数据 userAnswerNotClearDatas.AsParallel().ForAll(userData => { try { //用户选择的选项 var userOption = options.FirstOrDefault(p => p.PKID == userData.AnswerOptionID); if (userOption != null) { Logger.Info($"开始清算用户数据:{userData.UserID} {userData.AnswerOptionID}"); //找用户选项的根选项 var rootOption = GetRootOption(userOption, options); //判断是否正确选项 //正确则赠送兑换券 否则不赠送兑换券 if (rootOption.PKID == rightOption.PKID) { //更新回答结果 var resultAnswer = activityClient.ModifyQuestionUserAnswerResult( new ModifyQuestionUserAnswerResultRequest() { AnswerResultStatus = 1, ResultId = userData.PKID, WinCouponCount = userData.WinCouponCount }); if (resultAnswer?.Result?.IsOk == true) { //更新兑换券 和 日志 var result = activityClient.ModifyActivityCoupon(userData.UserID, activityId, userOption.WinCouponCount ?? 0 , "答题清算服务" , userData.AnswerDate); if (!result.Success && result.Result <= 0) { Logger.Warn($"请求 ModifyActivityCoupon 失败 {result.ErrorMessage}"); //回滚 DalActivity.UpdateUserAnswerResult(db, userData.PKID, userData.WinCouponCount, 0); return; } } } else { //更新用户答题结果 var resultAnswer = activityClient.ModifyQuestionUserAnswerResult( new ModifyQuestionUserAnswerResultRequest() { AnswerResultStatus = 2, ResultId = userData.PKID, WinCouponCount = 0 }); } Logger.Info($"用户 {userData.UserID} "); //推送消息 判断推送开关是否开启 if (pushFlag && pushId != 0) { PushMessage(pushId, cacheClient, userClient, templatePushClient, userData.UserID, userData.CreateDatetime); } } } catch (Exception e) { Logger.Error($" {nameof(ActivityUserQuestionAnswerClearJob)} 失败 ", e); } }); ts.Stop(); Logger.Info($" {nameof(UserAnswerClear)} 清算 {clearCount} 条数据 执行时间 {ts.Elapsed.TotalSeconds} 秒 "); i++; } } }