public ActionResult GetAllVehicleBrand()
        {
            var manager = new PackageActivityManager();
            var result  = manager.GetAllVehicleBrand();

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public JsonResult RefreshPackageBaoYangCache(Guid activityId)
        {
            PackageActivityManager manager = new PackageActivityManager();
            var result = manager.RefreshPackageBaoYangCache(activityId);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public JsonResult SelectOperationLog(string objectId)
        {
            PackageActivityManager manager = new PackageActivityManager();
            var result = manager.SelectOperationLog(objectId);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public JsonResult DeletePackageActivityConfig(Guid activityId)
        {
            PackageActivityManager manager = new PackageActivityManager();
            var result = false;

            result = manager.DeletePackageActivityConfig(activityId, HttpContext.User.Identity.Name);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public ActionResult PackageActivityConfig(Guid?activityId)
        {
            PackageActivityViewModel result  = new PackageActivityViewModel();
            PackageActivityManager   manager = new PackageActivityManager();

            if (activityId != null && activityId != Guid.Empty)
            {
                var data = manager.SelectPackageActivityConfig(activityId ?? Guid.Empty);
                result = ConvertPackageActivity(data);
            }
            ViewData["PackageTypes"] = manager.GetBaoYangPacekageType();
            return(View(result));
        }
        public ActionResult GetVehicles(List <string> series, List <string> brands, IEnumerable <string> excludeVids,
                                        double minPrice, double maxPrice, int index = 1, int size = 20)
        {
            if (minPrice > 0 && maxPrice <= minPrice)
            {
                return(Json(new { status = false, msg = "价格输入不正确" }, JsonRequestBehavior.AllowGet));
            }
            series      = series?.Where(x => !string.IsNullOrWhiteSpace(x)).ToList();
            excludeVids = excludeVids?.Where(x => !string.IsNullOrWhiteSpace(x)).ToList();
            brands      = brands?.Where(x => !string.IsNullOrWhiteSpace(x)).ToList();
            var manager = new PackageActivityManager();
            var result  = manager.GetVehicles(series, brands, excludeVids, minPrice, maxPrice, index, size);

            return(Json(new { status = true, data = result.Item2, total = result.Item1 }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetPackageActivityConfig(string activityId, string activityName, DateTime?startTime, DateTime?endTime, int pageIndex, int pageSiz = 20)
        {
            PackageActivityManager manager = new PackageActivityManager();

            var result = manager.SelectPackageActivity(activityId, activityName, startTime, endTime, pageIndex, pageSiz);

            if (result != null && result.Any())
            {
                return(Json(new { status = "success", data = result, count = result.FirstOrDefault().Total }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { status = "fail" }, JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult UpsertPaceageActivityConfig(string jsonData)
        {
            PackageActivityManager manager = new PackageActivityManager();
            var    result  = false;
            string msg     = "数据格式有误";
            var    flagTwo = true;
            PackageActivityConfig oldData = null;

            if (!string.IsNullOrEmpty(jsonData))
            {
                var model = JsonConvert.DeserializeObject <PackageActivityConfig>(jsonData);
                if (model != null)
                {
                    if (model.IsTieredPricing)
                    {
                        var tierList = Enum.GetNames(typeof(TierType));
                        model.PromotionPrice = 0;
                        model.PriceConfig    = model.PriceConfig?.Join(
                            tierList, x => x.TierType, y => y, (x, y) => new PackageActivityPriceConfig
                        {
                            TierType = y,
                            Price    = x.Price,
                        }).GroupBy(x => x.TierType)
                                               .Select(g => g.FirstOrDefault()).ToList() ?? new List <PackageActivityPriceConfig>();
                        if (model.PriceConfig.Count != tierList.Length ||
                            model.PriceConfig.Select(x => x.TierType).Distinct().Count() != tierList.Length)
                        {
                            return(Json(new { status = false, msg = "分层定价填写有误" }));
                        }
                    }
                    else
                    {
                        model.PriceConfig = new List <PackageActivityPriceConfig>();
                    }


                    if (model.ActivityId != Guid.Empty)
                    {
                        oldData = manager.SelectPackageActivityConfig(model.ActivityId);
                    }
                    var flag = ValidRoundConfig(model.RoundConfig, oldData);
                    if (flag.Item1)
                    {
                        model = ConvertOther(model);
                        if (model.PackageTypes.Contains("xby") && model.PackageTypes.Contains("dby"))
                        {
                            msg = "小保养服务和大保养服务不能同时勾选";
                        }
                        else
                        {
                            flagTwo = validQuantityPeruser(model, oldData);
                            if (flagTwo)
                            {
                                result = manager.UpsertPaceageActivityConfig(model, HttpContext.User.Identity.Name);
                            }
                            else
                            {
                                msg = "活动进行中时,每人每个项目限购数量只能调整的更大,而不能调小";
                            }
                        }
                    }
                    else
                    {
                        msg = flag.Item2;
                    }
                }
            }

            return(Json(new { status = result, msg = msg }, JsonRequestBehavior.AllowGet));
        }