/// <summary>
        /// 创建活动页
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool CreateActivityUrl(SqlConnection conn, RegionVehicleIdActivityUrlConfig model)
        {
            var sql        = @"INSERT  INTO Configuration..RegionVehicleIdActivityUrlConfig
                              ( ActivityId ,
                                TargetUrl ,
                                WxappUrl ,
                                IsDefault ,
                                VehicleId ,
                                RegionId ,
                                CreateDateTime ,
                                LastUpdateDateTime
                               )
                        VALUES  ( @ActivityId ,
                                  @TargetUrl,
                                  @WxappUrl ,
                                  @IsDefault,
                                  @VehicleId,
                                  @RegionId,
                                  GETDATE(),
                                  GETDATE()
                                );";
            var parameters = new SqlParameter[]
            {
                new SqlParameter("@ActivityId", model.ActivityId),
                new SqlParameter("@TargetUrl", model.TargetUrl ?? string.Empty),
                new SqlParameter("@WxappUrl", model.WxappUrl),
                new SqlParameter("@IsDefault", model.IsDefault),
                new SqlParameter("@VehicleId", model.VehicleId),
                new SqlParameter("@RegionId", model.RegionId)
            };
            var count = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, sql, parameters);

            return(count > 0);
        }
        public ActionResult UpdateActivityUrl(RegionVehicleIdActivityUrlConfig model, string h5OldUrl, string wxOldUrl, string vehicleIds, string regionIds)
        {
            if (model == null || model.ActivityId == Guid.Empty)
            {
                return(Json(new { Status = false, Msg = "未知的更新对象" }));
            }
            if (string.IsNullOrWhiteSpace(model.TargetUrl) && string.IsNullOrWhiteSpace(model.WxappUrl))
            {
                return(Json(new { Status = false, Msg = "活动页面地址不能全为空" }));
            }
            if (model.IsDefault != 0 && model.IsDefault != 1)
            {
                return(Json(new { Status = false, Msg = "是否默认页面字段出错" }));
            }
            if (model.IsDefault != 1 && string.IsNullOrWhiteSpace(vehicleIds) && string.IsNullOrWhiteSpace(regionIds))
            {
                return(Json(new { Status = false, Msg = "车型或地区不能为空" }));
            }
            if (string.IsNullOrWhiteSpace(h5OldUrl) && string.IsNullOrWhiteSpace(wxOldUrl))
            {
                return(Json(new { Status = false, Msg = "原有活动页链接为空" }));
            }
            if (!string.IsNullOrWhiteSpace(model.TargetUrl) && !string.Equals(h5OldUrl, model.TargetUrl))
            {
                var isExist = cityActivityConfig.IsExistActivityTargetUrl(model.ActivityId, model.TargetUrl);
                if (isExist)
                {
                    return(Json(new { Status = false, Msg = "已存在该H5活动页" }));
                }
            }
            if (!string.IsNullOrWhiteSpace(model.WxappUrl) && !string.Equals(wxOldUrl, model.WxappUrl))
            {
                var isExist = cityActivityConfig.IsExistActivityWxappUrl(model.ActivityId, model.WxappUrl);
                if (isExist)
                {
                    return(Json(new { Status = false, Msg = "已存在该小程序活动页" }));
                }
            }
            var user   = User.Identity.Name;
            var result = cityActivityConfig.UpdateActivityUrl(model, h5OldUrl, wxOldUrl, vehicleIds, regionIds);

            if (result)
            {
                int id         = cityActivityConfig.GetActivityPKIDByActivityId(model.ActivityId);
                var AfterValue = $"H5活动页地址:{h5OldUrl}改为{model.TargetUrl}" +
                                 $",小程序活动页地址:{wxOldUrl}改为{model.WxappUrl}" +
                                 $",是否默认页面:{model.IsDefault},车型ID:{vehicleIds},城市ID:{regionIds}";//适配日志重构
                var log = new ConfigHistory()
                {
                    AfterValue = AfterValue,
                    Author     = user,
                    Operation  = $"{model.ActivityId.ToString()}更新活动页",
                    ObjectType = "CVPage",
                    ObjectID   = id.ToString()
                };
                LoggerManager.InsertOplog(log);
            }
            return(Json(new { Status = result, Msg = $"活动页更新{(result ? "成功" : "失败")}" }));
        }
        /// <summary>
        /// 创建活动页
        /// </summary>
        /// <param name="model"></param>
        /// <param name="vehicleIds"></param>
        /// <param name="regionIds"></param>
        /// <returns></returns>
        public bool CreateActivityUrl(RegionVehicleIdActivityUrlConfig model, string vehicleIds, string regionIds)
        {
            var result = false;

            try
            {
                result = ConfigurationDb.Execute(conn => CreateActivityUrlConfig(conn, model, vehicleIds, regionIds));
            }
            catch (Exception ex)
            {
                result = false;
                Logger.Error("CreateActivityUrl", ex);
            }
            return(result);
        }
        public ActionResult CreateActivityUrl(RegionVehicleIdActivityUrlConfig model, string vehicleIds, string regionIds)
        {
            if (model == null || model.ActivityId == Guid.Empty)
            {
                return(Json(new { Status = false, Msg = "未知的创建对象" }));
            }
            if (string.IsNullOrWhiteSpace(model.TargetUrl) && string.IsNullOrWhiteSpace(model.WxappUrl))
            {
                return(Json(new { Status = false, Msg = "活动页面地址不能全为空" }));
            }
            if (model.IsDefault != 0 && model.IsDefault != 1)
            {
                return(Json(new { Status = false, Msg = "是否默认页面字段出错" }));
            }
            if (model.IsDefault != 1 && string.IsNullOrWhiteSpace(vehicleIds) && string.IsNullOrWhiteSpace(regionIds))
            {
                return(Json(new { Status = false, Msg = "车型或地区不能为空" }));
            }
            if (!string.IsNullOrWhiteSpace(model.TargetUrl) && cityActivityConfig.IsExistActivityTargetUrl(model.ActivityId, model.TargetUrl))
            {
                return(Json(new { Status = false, Msg = "该H5活动页已存在,请勿重复添加" }));
            }
            if (!string.IsNullOrWhiteSpace(model.WxappUrl) && cityActivityConfig.IsExistActivityWxappUrl(model.ActivityId, model.WxappUrl))
            {
                return(Json(new { Status = false, Msg = "该小程序活动页已存在,请勿重复添加" }));
            }
            var result = cityActivityConfig.CreateActivityUrl(model, vehicleIds, regionIds);

            if (result)
            {
                int id         = cityActivityConfig.GetActivityPKIDByActivityId(model.ActivityId);//适配日志重构
                var AfterValue = $"H5活动页地址:{model.TargetUrl}" +
                                 $",小程序活动页地址:{model.WxappUrl}" +
                                 $",是否默认页面:{model.IsDefault},车型ID:{vehicleIds},城市ID:{regionIds}";
                var log = new ConfigHistory()
                {
                    AfterValue = AfterValue,
                    Author     = User.Identity.Name,
                    Operation  = $"{model.ActivityId}新增活动页",
                    ObjectType = "CVPage",
                    ObjectID   = id.ToString()
                };
                LoggerManager.InsertOplog(log);
            }
            return(Json(new { Status = result, Msg = $"活动页添加{(result ? "成功" : "失败")}" }));
        }
        /// <summary>
        /// 更新活动页配置
        /// </summary>
        /// <param name="model"></param>
        /// <param name="oldTargetUrl"></param>
        /// <param name="oldWxappUrl"></param>
        /// <param name="vehicleIds"></param>
        /// <param name="regionIds"></param>
        /// <returns></returns>
        public bool UpdateActivityUrl(RegionVehicleIdActivityUrlConfig model, string oldTargetUrl, string oldWxappUrl, string vehicleIds, string regionIds)
        {
            bool result = false;

            try
            {
                ConfigurationDb.CreateTransaction(conn =>
                {
                    if (!DalCityActivityPageConfig.DeleteActivityUrlByActivityIdUrl(conn, model.ActivityId, oldTargetUrl, oldWxappUrl))
                    {
                        result = false;
                    }
                    else
                    {
                        result = CreateActivityUrlConfig(conn, model, vehicleIds, regionIds);
                    }
                });
            }
            catch (Exception ex)
            {
                Logger.Error("UpdateActivityUrl", ex);
            }
            return(result);
        }
        /// <summary>
        /// 创建活动页
        /// </summary>
        /// <param name="activityId"></param>
        /// <param name="targetUrl"></param>
        /// <param name="isDefault"></param>
        /// <param name="vehicleIds"></param>
        /// <param name="regionIds"></param>
        /// <returns></returns>
        private bool CreateActivityUrlConfig(SqlConnection conn, RegionVehicleIdActivityUrlConfig model, string vehicleIds, string regionIds)
        {
            var result       = false;
            var vehicleIdArr = vehicleIds.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList();
            var regionIdArr  = regionIds.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList();

            //默认页面
            if (model.IsDefault == 1 || !(vehicleIdArr.Any() || regionIdArr.Any()))
            {
                result = DalCityActivityPageConfig.CreateActivityUrl(conn, model);
                if (!result)
                {
                    throw new Exception($"CreateActivityUrl失败,插入失败数据{JsonConvert.SerializeObject(model)}");
                }
            }
            else
            {
                var models = new List <RegionVehicleIdActivityUrlConfig>();
                foreach (var vehicleId in vehicleIdArr)
                {
                    var config = new RegionVehicleIdActivityUrlConfig()
                    {
                        ActivityId = model.ActivityId,
                        TargetUrl  = model.TargetUrl,
                        WxappUrl   = model.WxappUrl,
                        IsDefault  = model.IsDefault,
                        VehicleId  = vehicleId,
                        RegionId   = 0,
                    };
                    models.Add(config);
                }
                foreach (var regionIdStr in regionIdArr)
                {
                    var regionId = 0;
                    if (int.TryParse(regionIdStr, out regionId))
                    {
                        var config = new RegionVehicleIdActivityUrlConfig()
                        {
                            ActivityId = model.ActivityId,
                            TargetUrl  = model.TargetUrl,
                            WxappUrl   = model.WxappUrl,
                            IsDefault  = model.IsDefault,
                            VehicleId  = string.Empty,
                            RegionId   = regionId
                        };
                        models.Add(config);
                    }
                }
                if (models.Any())
                {
                    foreach (var urlConfig in models)
                    {
                        var isCreated = DalCityActivityPageConfig.CreateActivityUrl(conn, urlConfig);
                        if (!isCreated)
                        {
                            throw new Exception($"CreateActivityUrlConfig失败,插入失败数据{JsonConvert.SerializeObject(urlConfig)}");
                        }
                    }
                    result = true;
                }
            }
            return(result);
        }