コード例 #1
0
ファイル: CartController.cs プロジェクト: szwork2013/Zero
        public ActionResult SetCartQuantity(Cart cart)
        {
            ResultInfo resultInfo = new ResultInfo(1, "传递的参数有误");

            if (ModelState.IsValid)
            {
                //User user = new User();
                //user.UserId = 1;
                //user.GuestId = "";

                cart.UserId = 1;
                cart.GuestId = "";

                resultInfo = _cartService.SetCartQuantity(cart);
            }

            return Json(resultInfo);
        }
コード例 #2
0
ファイル: CartService.cs プロジェクト: szwork2013/Zero
 public void DeleteCart(User user, Cart cart)
 {
     _cartRepository.Delete(cart);
 }
コード例 #3
0
ファイル: CartService.cs プロジェクト: szwork2013/Zero
        /// <summary>
        /// 添加或修改购物车项
        /// </summary>
        /// <param name="user"></param>
        /// <param name="cart"></param>
        /// <returns></returns>
        public ResultInfo SetCartQuantity(Cart cart)
        {
            //保证UserId或GuestId至少有个值
            if (cart.UserId == 0 && cart.GuestId == "")
            {
                return new ResultInfo("无效用户");
            }

            var skuQuery = from s in _skuRepository.Table
                           where s.Attr == cart.Attr && s.ProductId == cart.ProductId
                           select s;
            var sku = skuQuery.FirstOrDefault();

            if (sku == null)
            {
                return new ResultInfo("该商品已下架或者库存不足");
            }

            cart.SkuId = sku.SkuId;
            cart.PhotoId = sku.PhotoId;

            var cartQuery = from c in  _cartRepository.Table
                            where c.SkuId==cart.SkuId && c.ProductId==cart.ProductId && c.UserId==cart.UserId && c.GuestId==cart.GuestId
                            select c;

            var oldCart = cartQuery.FirstOrDefault();

            if (oldCart == null)
            {
                if (cart.Quantity > sku.Quantity)
                {
                    cart.Quantity = sku.Quantity;
                }
                _cartRepository.Add(cart);
            }
            else
            {
                oldCart.Quantity += cart.Quantity;
                if (cart.Quantity > sku.Quantity)
                {
                    cart.Quantity = sku.Quantity;
                }
                _cartRepository.Update(oldCart);
            }

            return new ResultInfo("添加成功");
        }