Ejemplo n.º 1
0
        /// <summary>
        /// 根据用户输入的商品信息构造一个ConfigItem
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public ComputerConfigItem BuildConfigItem(ComputerConfigItem item)
        {
            var foundProduct = ExternalDomainBroker.GetProductInfo(item.ProductSysNo.Value);

            if (foundProduct == null)
            {
                throw new BizException("商品不存在。");
            }
            var partsCategoryList = _configDA.GetComputerPartsCategory(item.ComputerPartSysNo);

            if (!foundProduct.ProductBasicInfo.ProductCategoryInfo.SysNo.HasValue ||
                !partsCategoryList.Exists(c => c == foundProduct.ProductBasicInfo.ProductCategoryInfo.SysNo.Value))
            {
                throw new BizException(string.Format("商品{0}不在该组件的可选分类中,不能添加。", foundProduct.ProductID));
            }
            if (foundProduct.ProductStatus != BizEntity.IM.ProductStatus.Active)
            {
                throw new BizException(string.Format("商品{0}不是上架状态,不能添加!。", foundProduct.ProductID));
            }
            //填充商品详细
            item.ProductID    = foundProduct.ProductID;
            item.ProductName  = foundProduct.ProductName;
            item.UnitCost     = foundProduct.ProductPriceInfo.UnitCost;
            item.CurrentPrice = foundProduct.ProductPriceInfo.CurrentPrice;

            //填充库存信息
            var foundInventory = ExternalDomainBroker.GetProductTotalInventoryInfo(item.ProductSysNo.Value);

            if (foundInventory != null)
            {
                if (foundInventory.OnlineQty <= 0)
                {
                    throw new BizException(string.Format("商品{0}库存为零,不能添加!。", foundProduct.ProductID));
                }
                item.OnlineQty = foundInventory.OnlineQty;
            }
            item.ProductQty = 1;
            item.Discount   = 0;

            return(item);
        }