/// <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)); }
/// <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); }