コード例 #1
0
        /// <summary>
        /// 添加商品至购物车
        /// </summary>
        /// <param name="productSysNo">商品系统编号</param>
        /// <param name="quantity">商品数量</param>
        /// <param name="source">购物车商品来源</param>
        /// <param name="sysNo">系统编号</param>
        /// <returns>购物车商品明细</returns>
        /// <remarks>2013-08-13 吴文强 创建</remarks>
        private CBCrShoppingCartItem ProductToCartItem(int productSysNo, int quantity, CustomerStatus.购物车商品来源 source = CustomerStatus.购物车商品来源.PC网站,
                                                       CustomerStatus.商品销售类型 productSalesType = CustomerStatus.商品销售类型.普通,
                                                       CustomerStatus.是否选中 isChecked          = CustomerStatus.是否选中.是, int sysNo = 0, string promotions = null)
        {
            var shoppingCartItem = new CBCrShoppingCartItem();

            var productPrices = PdPriceBo.Instance.GetProductPrice(productSysNo,
                                                                   new ProductStatus.产品价格来源[] { ProductStatus.产品价格来源.会员等级价 });
            var firstOrDefault = productPrices.FirstOrDefault(p => p.SourceSysNo == CustomerLevel.初级);

            if (firstOrDefault != null)
            {
                shoppingCartItem = new CBCrShoppingCartItem
                {
                    SysNo            = sysNo,
                    IsChecked        = (int)isChecked,
                    CustomerSysNo    = -1,
                    ProductSysNo     = productSysNo,
                    ProductName      = "",
                    Quantity         = quantity,
                    OriginPrice      = firstOrDefault.Price,
                    IsLock           = (int)CustomerStatus.购物车是否锁定.否,
                    IsExpireReset    = (int)CustomerStatus.购物车是否过期重置.是,
                    CreateDate       = DateTime.Now,
                    Source           = (int)source,
                    ProductSalesType = (int)productSalesType,
                    Promotions       = promotions,
                    UsedPromotions   = promotions,
                };
            }

            return(shoppingCartItem);
        }
コード例 #2
0
        /// <summary>
        /// 添加商品至购物车
        /// </summary>
        /// <param name="cacheKey">缓存Key</param>
        /// <param name="customerSysNo">客户系统编号</param>
        /// <param name="productSysNo">商品系统编号</param>
        /// <param name="quantity">商品数量</param>
        /// <param name="source">购物车商品来源</param>
        /// <param name="isChecked">是否选中商品</param>
        /// <remarks>2013-08-13 吴文强 创建</remarks>
        public void Add(string cacheKey, int customerSysNo, int productSysNo, int quantity, CustomerStatus.购物车商品来源 source, CustomerStatus.是否选中 isChecked = CustomerStatus.是否选中.是)
        {
            _cacheKey = cacheKey;

            var productPrices = PdPriceBo.Instance.GetProductPrice(productSysNo,
                                                                   new ProductStatus.产品价格来源[] { ProductStatus.产品价格来源.会员等级价 });
            var customer       = CrCustomerBo.Instance.GetModel(customerSysNo);
            var firstOrDefault = productPrices.FirstOrDefault(p => customer != null ? p.SourceSysNo == customer.LevelSysNo : p.SourceSysNo == CustomerLevel.初级);

            if (firstOrDefault != null)
            {
                var shoppingCartItem = new CBCrShoppingCartItem
                {
                    SysNo            = SeqSysNo,
                    IsChecked        = (int)isChecked,
                    CustomerSysNo    = customerSysNo,
                    ProductSysNo     = productSysNo,
                    ProductName      = "",
                    Quantity         = quantity,
                    OriginPrice      = firstOrDefault.Price,
                    IsLock           = (int)CustomerStatus.购物车是否锁定.否,
                    IsExpireReset    = (int)CustomerStatus.购物车是否过期重置.是,
                    CreateDate       = DateTime.Now,
                    Source           = (int)source,
                    ProductSalesType = (int)CustomerStatus.商品销售类型.普通,
                };

                #region 计算并写入Cache

                var items = CacheItems;
                var item  = items.FirstOrDefault(sci => sci.ProductSysNo == shoppingCartItem.ProductSysNo);
                if (item == null)
                {
                    items.Add(shoppingCartItem);
                }
                else
                {
                    item.Quantity = item.Quantity + quantity;
                }
                CacheItems = items;

                #endregion
            }
        }
コード例 #3
0
        /// <summary>
        /// 添加促销赠品至购物车
        /// </summary>
        /// <param name="cacheKey">缓存Key</param>
        /// <param name="customerSysNo">客户系统编号</param>
        /// <param name="productSysNo">商品(赠品)系统编号</param>
        /// <param name="promotionSysNo">促销系统编号</param>
        /// <param name="source">购物车商品来源</param>
        /// <remarks>2013-08-13 吴文强 创建</remarks>
        public void AddGift(string cacheKey, int customerSysNo, int productSysNo, int promotionSysNo, CustomerStatus.购物车商品来源 source)
        {
            _cacheKey = cacheKey;

            var shoppingCartItem = new CBCrShoppingCartItem
            {
                SysNo            = SeqSysNo,
                IsChecked        = (int)CustomerStatus.是否选中.是,
                CustomerSysNo    = customerSysNo,
                ProductSysNo     = productSysNo,
                ProductName      = "",
                Quantity         = 1,
                OriginPrice      = 0,
                IsLock           = (int)CustomerStatus.购物车是否锁定.否,
                IsExpireReset    = (int)CustomerStatus.购物车是否过期重置.是,
                CreateDate       = DateTime.Now,
                Source           = (int)source,
                ProductSalesType = (int)CustomerStatus.商品销售类型.赠品,
                UsedPromotions   = promotionSysNo.ToString(),
            };

            #region 计算并写入Cache

            var items = CacheItems;
            var item  = items.FirstOrDefault(sci => sci.ProductSysNo == shoppingCartItem.ProductSysNo &&
                                             sci.ProductSalesType == (int)CustomerStatus.商品销售类型.赠品 &&
                                             sci.UsedPromotions == promotionSysNo.ToString());
            if (item == null)
            {
                items.Add(shoppingCartItem);
            }
            else
            {
                item.Quantity = 1;
            }
            CacheItems = items;

            #endregion
        }