Ejemplo n.º 1
0
        /// <summary>
        /// 添加SKU,并过滤已添加的
        /// </summary>
        /// <param name="pids"></param>
        /// <param name="shopBranchId"></param>
        /// <param name="shopId"></param>
        public static void AddProductSkus(IEnumerable <long> pids, long shopBranchId, long shopId)
        {
            var productsInfo = ProductManagerApplication.GetProductsByIds(pids).Where(e => e.ShopId == shopId);

            if (productsInfo == null)
            {
                throw new HimallException("未找到商品数据");
            }
            //查询已添加的SKU,用于添加时过滤
            var oldskus = _shopBranchService.GetSkus(shopId, new List <long> {
                shopBranchId
            }, null).Select(e => e.SkuId);
            var allSkus        = SKUApplication.GetByProductIds(productsInfo.Select(p => p.Id));
            var shopBranchSkus = new List <ShopBranchSkusInfo> {
            };

            var skus = allSkus.Where(s => !oldskus.Any(sku => sku == s.Id)).Select(e => new ShopBranchSkusInfo
            {
                ProductId    = e.ProductId,
                SkuId        = e.Id,
                ShopId       = shopId,
                ShopBranchId = shopBranchId,
                Stock        = 0,
                CreateDate   = DateTime.Now
            });

            shopBranchSkus.AddRange(skus);

            _shopBranchService.AddSkus(shopBranchSkus);
        }