/// <summary> /// 根据活动id查询活动广告位 /// </summary> /// <param name="activityId"></param> /// <returns></returns> public IEnumerable <BankMRActivityAdConfig> GetBankMRActivityAdConfigByActivityId(Guid activityId) { IEnumerable <BankMRActivityAdConfig> result = null; try { result = TuhuGrouponDbScopeManagerReadOnly.Execute(conn => BankMRActivityDal.SelectBankMRActivityAdConfigByActivityId(conn, activityId)); } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(result); }
/// <summary> /// 插入或更新银行美容活动配置 /// </summary> /// <param name="config">插入活动配置</param> /// <param name="adConfig">广告位配置</param> /// <param name="operateUser">操作人</param> /// <returns></returns> public bool UpsertBankMRActivityConfig(BankMRActivityConfig config, IEnumerable <BankMRActivityAdConfig> adConfig, string operateUser) { var result = false; try { TuhuGrouponDbScopeManager.CreateTransaction(conn => { if (config.ActivityId != null && config.ActivityId != Guid.Empty) { var currentActivity = GetBankMRActivityConfigByActivityId(config.ActivityId); if (!string.Equals(currentActivity.RoundCycleType, config.RoundCycleType) || currentActivity.StartTime != config.StartTime || currentActivity.EndTime != config.EndTime)//如果活动场次周期类型变了,则需要重新生成活动场次 { BankMRActivityDal.SetBankMRActivityRoundDisable(conn, config.ActivityId); var roundResult = handler.GenerateBankMRActivityRound(conn, config); if (!roundResult) { throw new Exception("生成银行美容活动场次失败"); } } var updateResult = BankMRActivityDal.UpdateBankMRActivityConfig(conn, config); if (!updateResult) { throw new Exception("更新银行美容活动配置失败"); } var log = new BeautyOprLog { LogType = "UpdateBankMRActivityConfig", IdentityID = config.ActivityId.ToString(), OldValue = JsonConvert.SerializeObject(currentActivity), NewValue = JsonConvert.SerializeObject(config), Remarks = $"修改银行美容活动配置,活动ID:{config.ActivityId}", OperateUser = operateUser, }; LoggerManager.InsertLog("BeautyOprLog", log); } else { config.ActivityId = Guid.NewGuid(); adConfig?.ForEach(s => s.ActivityId = config.ActivityId); var insertResult = BankMRActivityDal.InsertBankMRActivityConfig(conn, config); if (insertResult) { var roundResult = handler.GenerateBankMRActivityRound(conn, config); if (!roundResult) { throw new Exception("生成银行美容活动场次失败"); } } else { throw new Exception("插入银行美容活动配置失败"); } var log = new BeautyOprLog { LogType = "InsertBankMRActivityConfig", IdentityID = config.ActivityId.ToString(), OldValue = null, NewValue = JsonConvert.SerializeObject(config), Remarks = $"插入银行美容活动配置,活动ID:{config.ActivityId}", OperateUser = operateUser, }; LoggerManager.InsertLog("BeautyOprLog", log); } if (adConfig != null && adConfig.Any()) { foreach (var ad in adConfig) { if (ad != null && ad.ActivityId != Guid.Empty) { BankMRActivityDal.UpsertBankMRActivityAdConfig(conn, ad); } } var oldAdConfig = BankMRActivityDal.SelectBankMRActivityAdConfigByActivityId(conn, config.ActivityId); var adLog = new BeautyOprLog() { LogType = "UpsertBankMRActivityAdConfig", IdentityID = config.ActivityId.ToString(), OldValue = oldAdConfig != null && oldAdConfig.Any() ? JsonConvert.SerializeObject(oldAdConfig) : string.Empty, NewValue = JsonConvert.SerializeObject(adConfig), Remarks = $"修改银行广告位配置,活动ID:{config.ActivityId}", OperateUser = operateUser, }; LoggerManager.InsertLog("BeautyOprLog", adLog); } result = true; }); } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(result); }