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