public IActionResult DeleteGoodsRotationImage(long id)
        {
            if (id <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "找不到该商品图片!")));
            }
            GoodsInRotationImage rotationImg = goodsInRotationImageService.GetGoodsInRotationImage(id);
            bool result = goodsInRotationImageService.DeleteGoodsRotationImage(rotationImg);

            if (result)
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "删除成功!")));
            }
            return(Json(new StatusMessageData(StatusMessageType.Error, "删除失败!")));
        }
        public async Task <IActionResult> EditGoodsRotationImage([FromServices] IHostingEnvironment env, IList <IFormFile> imgfile, long id, int number)
        {
            if (id <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "找不到该商品图片!")));
            }
            const string fileFilt   = ".gif|.jpg|.jpeg|.png|.webp|";
            const string saveSuffix = ".jpeg";

            foreach (var file in Request.Form.Files)
            {
                var fileExtension = Path.GetExtension(file.FileName);
                if (fileExtension == null)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件没有后缀")));
                }
                if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件不是图片")));
                }
                if (file.Length > 1024 * 1024 * 2)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件不能大于2M")));
                }
            }

            GoodsInRotationImage rotationImg = goodsInRotationImageService.GetGoodsInRotationImage(id);

            if (number != rotationImg.Number)
            {
                rotationImg.Number = number;
            }

            if (imgfile.Count > 0)
            {
                IFormFile imgFile = imgfile[0];
                rotationImg.GoodsRotationImage = await Utility.SaveImage(env, imgFile, Request, saveSuffix);
            }

            bool result = goodsInRotationImageService.EditGoodsRotationImage(rotationImg);

            if (result)
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "编辑成功!")));
            }
            return(Json(new StatusMessageData(StatusMessageType.Error, "编辑失败!")));
        }
        public async Task <IActionResult> AddGoodsRotationImage([FromServices] IHostingEnvironment env, IList <IFormFile> addImgFiles, long goodsId, int number)
        {
            if (goodsId <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "找不到该商品!")));
            }
            else if (addImgFiles.Count <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "添加失败!")));
            }
            const string fileFilt   = ".gif|.jpg|.jpeg|.png|.webp|";
            const string saveSuffix = ".jpeg";

            foreach (var file in Request.Form.Files)
            {
                var fileExtension = Path.GetExtension(file.FileName);
                if (fileExtension == null)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件没有后缀")));
                }
                if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件不是图片")));
                }
                if (file.Length > 1024 * 1024 * 2)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件不能大于2M")));
                }
            }

            IEnumerable <GoodsInRotationImage> rotationLists = goodsInRotationImageService.GetAllGoodsRotationImage(goodsId);
            int imgMaxIndex = 0;

            if (rotationLists.Count() <= 0)
            {
                imgMaxIndex = 0;
            }
            else
            {
                imgMaxIndex = rotationLists.Max(m => m.Number);
            }

            List <bool> resultList = new List <bool>();

            foreach (var img in addImgFiles)
            {
                GoodsInRotationImage imgModel = new GoodsInRotationImage();
                var       imgIndex            = addImgFiles.IndexOf(img);
                IFormFile file = addImgFiles[imgIndex];
                imgModel.Number             = ++imgMaxIndex;
                imgModel.Goodsid            = goodsId;
                imgModel.GoodsRotationImage = await Utility.SaveImage(env, file, Request, saveSuffix);

                bool result = goodsInRotationImageService.AddGoodsInRotationImage(imgModel);
                resultList.Add(result);
            }
            if (resultList.All(m => m == true))
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "添加成功!")));
            }
            return(Json(new StatusMessageData(StatusMessageType.Error, "添加失败!")));
        }
        public async Task <IActionResult> AddGoods([FromServices] IHostingEnvironment env, GoodsInfoModel model, IList <IFormFile> imgfiles, IList <IFormFile> skufiles)
        {
            const string fileFilt   = ".gif|.jpg|.jpeg|.png|.webp|";
            const string saveSuffix = ".jpeg";

            foreach (var file in Request.Form.Files)
            {
                var fileExtension = Path.GetExtension(file.FileName);
                if (fileExtension == null)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件没有后缀")));
                }
                if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件不是图片")));
                }
                if (file.Length > 1024 * 1024 * 2)
                {
                    return(Json(new StatusMessageData(StatusMessageType.Error, "上传的文件不能大于2M")));
                }
            }

            var skuArr = Request.Get <string>("SkuArr");

            string[] skuNumArr = skuArr.Split(',');

            GoodsInfo infoModel = model.AsGoodsInfo();

            infoModel.Status      = (int)GoodsInfoStatus.Shelves;
            infoModel.IsEnable    = false;
            infoModel.DateCreated = DateTime.Now;
            infoModel.Userid      = UserContext.CurrentUser.UserId;

            List <GoodsSkuInfo>         skuModels = new List <GoodsSkuInfo>();
            List <GoodsInRotationImage> imgModels = new List <GoodsInRotationImage>();

            var index = 0;

            foreach (var skuNum in skuNumArr)
            {
                GoodsSkuInfo goodsSkuInfo = new GoodsSkuInfo();
                goodsSkuInfo.SkuName          = Request.Get <string>($"SkuName{skuNum}");
                goodsSkuInfo.SkuOriginalPrice = Request.Get <string>($"SkuOriginalPrice{skuNum}").AsDecimal();
                goodsSkuInfo.SkuMaketPrice    = Request.Get <decimal>($"SkuMaketPrice{skuNum}");
                goodsSkuInfo.SkuFactoryPrice  = Request.Get <decimal>($"SkuFactoryPrice{skuNum}");
                goodsSkuInfo.SkuVipPrice      = Request.Get <string>($"SkuVipPrice{skuNum}").AsDecimal();
                goodsSkuInfo.Stock            = Request.Get <string>($"Stock{skuNum}").AsInt();
                goodsSkuInfo.Number           = Request.Get <int>($"Number{skuNum}");
                goodsSkuInfo.IsDefault        = Request.Get <bool>($"IsDefault{skuNum}");
                goodsSkuInfo.Status           = (int)GoodsSkuInfoStatus.Show;
                IFormFile file = skufiles[index];
                goodsSkuInfo.SkuImage = await Utility.SaveImage(env, file, Request, saveSuffix);

                if (index == 0)
                {
                    infoModel.GoodsPrice     = goodsSkuInfo.SkuMaketPrice;
                    infoModel.GoodsRealPrice = goodsSkuInfo.SkuFactoryPrice;
                }

                skuModels.Add(goodsSkuInfo);
                index++;
            }


            foreach (var img in imgfiles)
            {
                GoodsInRotationImage imgModel = new GoodsInRotationImage();
                var       imgIndex            = imgfiles.IndexOf(img);
                IFormFile file = imgfiles[imgIndex];
                imgModel.Number             = imgIndex + 1;
                imgModel.GoodsRotationImage = await Utility.SaveImage(env, file, Request, saveSuffix);

                if (imgIndex == 0)
                {
                    infoModel.ImageUrl = imgModel.GoodsRotationImage;
                }
                imgModels.Add(imgModel);
            }
            var detailsImg = Request.Get <string>("goodsDetailsImg");

            string[] detailsImgArr = detailsImg.Split(',');

            if (goodsInfoService.ReleaseGoods(infoModel, skuModels, imgModels, detailsImgArr, UserContext.CurrentUser.UserId))
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "发布成功")));
            }
            return(Json(new StatusMessageData(StatusMessageType.Error, "发布失败")));
        }