Пример #1
0
        /// <summary>
        /// 添加商品
        /// </summary>
        /// <param name="shopId">店铺id</param>
        /// <param name="product">商品信息</param>
        /// <param name="pics">需要转移的商品图片地址</param>
        /// <param name="skus">skus,至少要有一项</param>
        /// <param name="description">描述</param>
        /// <param name="attributes">商品属性</param>
        /// <param name="goodsCategory">商家分类</param>
        /// <param name="sellerSpecifications">商家自定义规格</param>
        public static Product AddProduct(long shopId, Product product, string[] pics, SKU[] skus, ProductDescription description, ProductAttribute[] attributes, long[] goodsCategory, SellerSpecificationValue[] sellerSpecifications, ProductLadderPrice[] prices)
        {
            var productInfo              = product.Map <Entities.ProductInfo>();
            var skuInofs                 = skus.Map <Entities.SKUInfo[]>();
            var descriptionInfo          = description.Map <Entities.ProductDescriptionInfo>();
            var attributeInfos           = attributes.Map <Entities.ProductAttributeInfo[]>();
            var sellerSpecificationInfos = sellerSpecifications.Map <Entities.SellerSpecificationValueInfo[]>();
            var ladderpricesInfos        = prices.Select(p =>
            {
                var ladder       = new Entities.ProductLadderPriceInfo();
                ladder.Id        = p.Id;
                ladder.MinBath   = p.MinBath;
                ladder.MaxBath   = p.MaxBath;
                ladder.ProductId = p.ProductId;
                ladder.Price     = p.Price;
                return(ladder);
            }).ToArray();

            Service.AddProduct(shopId, productInfo, pics, skuInofs, descriptionInfo, attributeInfos,
                               goodsCategory, sellerSpecificationInfos, ladderpricesInfos);
            CreateHtml(productInfo.Id);
            return(AutoMapper.Mapper.Map <Product>(productInfo));
        }
Пример #2
0
        /// <summary>
        /// 更新商品
        /// </summary>
        /// <param name="product">修改后的商品</param>
        /// <param name="pics">需要转移的商品图片地址</param>
        /// <param name="skus">skus,至少要有一项</param>
        /// <param name="description">描述</param>
        /// <param name="attributes">商品属性</param>
        /// <param name="goodsCategory">商家分类</param>
        /// <param name="sellerSpecifications">商家自定义规格</param>
        public static void UpdateProduct(Product product, string[] pics, SKU[] skus, ProductDescription description, ProductAttribute[] attributes, long[] goodsCategory, SellerSpecificationValue[] sellerSpecifications, ProductLadderPrice[] prices)
        {
            var productInfo = Service.GetProduct(product.Id);

            if (productInfo == null)
            {
                throw new HimallException("指定id对应的数据不存在");
            }

            var editStatus = productInfo.EditStatus;

            if (product.ProductName != productInfo.ProductName)
            {
                editStatus = GetEditStatus(editStatus);
            }
            if (product.ShortDescription != productInfo.ShortDescription)
            {
                editStatus = GetEditStatus(editStatus);
            }

            product.AddedDate = productInfo.AddedDate;
            if (productInfo.SaleStatus != Entities.ProductInfo.ProductSaleStatus.InDraft)
            {
                product.SaleStatus = productInfo.SaleStatus;
            }
            product.AuditStatus       = productInfo.AuditStatus;
            product.DisplaySequence   = productInfo.DisplaySequence;
            product.ShopId            = productInfo.ShopId;
            product.HasSKU            = productInfo.HasSKU;
            product.ImagePath         = productInfo.ImagePath;
            product.SaleCounts        = productInfo.SaleCounts;
            product.VirtualSaleCounts = productInfo.VirtualSaleCounts;

            if (product.IsOpenLadder)
            {
                editStatus = GetEditStatus(editStatus);
            }

            productInfo.ColorAlias   = product.ColorAlias;
            productInfo.SizeAlias    = product.SizeAlias;
            productInfo.VersionAlias = product.VersionAlias;
            productInfo.VideoPath    = product.VideoPath;
            product.DynamicMap(productInfo);

            productInfo.EditStatus = editStatus;

            var skuInofs                 = skus.Map <Entities.SKUInfo[]>();
            var descriptionInfo          = description.Map <Entities.ProductDescriptionInfo>();
            var attributeInfos           = attributes.Map <Entities.ProductAttributeInfo[]>();
            var sellerSpecificationInfos = sellerSpecifications.Map <Entities.SellerSpecificationValueInfo[]>();
            var ladderpricesInfos        = prices.Select(p =>
            {
                var ladder       = new Entities.ProductLadderPriceInfo();
                ladder.Id        = p.Id;
                ladder.MinBath   = p.MinBath;
                ladder.MaxBath   = p.MaxBath;
                ladder.ProductId = p.ProductId;
                ladder.Price     = p.Price;
                return(ladder);
            }).ToArray();

            Service.UpdateProduct(productInfo, pics, skuInofs, descriptionInfo, attributeInfos, goodsCategory,
                                  sellerSpecificationInfos, ladderpricesInfos);
            if (productInfo.IsOpenLadder)
            {
                //处理门店
                ShopBranchApplication.UnSaleProduct(productInfo.Id);
            }
            CreateHtml(product.Id);
        }