Пример #1
0
        /// <summary>
        /// 购买商品
        /// </summary>
        /// <returns></returns>
        public ActionResult BuyProduct()
        {
            int    pid      = WebHelper.GetQueryInt("pid");      //商品id
            string note     = WebHelper.GetQueryString("note");  //备注
            int    buyCount = WebHelper.GetQueryInt("buyCount"); //购买数量

            //当商城不允许游客使用购物车时
            if (WorkContext.ShopConfig.IsGuestSC == 0 && WorkContext.Uid < 1)
            {
                return(AjaxResult("nologin", "请先登录"));
            }

            //判断商品是否存在
            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            //购买数量不能小于1
            if (buyCount < 1)
            {
                return(AjaxResult("buycountmin", "请填写购买数量"));
            }

            //商品库存
            int stockNumber = Products.GetProductStockNumberByPid(pid);

            if (stockNumber < buyCount)
            {
                return(AjaxResult("stockout", "商品库存不足"));
            }

            //购物车中已经存在的商品列表
            List <OrderProductInfo> orderProductList = Carts.GetCartProductList(WorkContext.Uid, WorkContext.Sid);
            OrderProductInfo        orderProductInfo = Carts.GetCommonOrderProductByPid(pid, orderProductList);

            if (orderProductInfo == null)
            {
                if ((WorkContext.Uid > 0 && orderProductList.Count >= WorkContext.ShopConfig.MemberSCCount) || (WorkContext.Uid < 1 && orderProductList.Count >= WorkContext.ShopConfig.GuestSCCount))
                {
                    return(AjaxResult("full", "购物车已满"));
                }
            }

            buyCount = orderProductInfo == null ? buyCount : orderProductInfo.BuyCount + buyCount;
            //将商品添加到购物车
            Carts.AddProductToCart(ref orderProductList, buyCount, partProductInfo, WorkContext.Sid, WorkContext.Uid, DateTime.Now, WorkContext.IsMember, note);
            //将购物车中商品数量写入cookie
            Carts.SetCartProductCountCookie(Carts.SumOrderProductCount(orderProductList));

            return(AjaxResult("success", Url.Action("confirmorder", "order", new RouteValueDictionary {
                { "selectedCartItemKeyList", "0_" + pid }
            })));
        }
Пример #2
0
        /// <summary>
        /// 添加商品到购物车
        /// </summary>
        public ActionResult AddProduct()
        {
            int pid          = WebHelper.GetQueryInt("pid");        //商品id
            int buyCount     = WebHelper.GetQueryInt("buyCount");   //购买数量
            int scSubmitType = WorkContext.ShopConfig.SCSubmitType; //购物车的提交方式

            //当商城不允许游客使用购物车时
            if (WorkContext.ShopConfig.IsGuestSC == 0 && WorkContext.Uid < 1)
            {
                return(AjaxResult("nologin", "请先登录"));
            }

            //判断商品是否存在
            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            //购买数量不能小于1
            if (buyCount < 1)
            {
                return(AjaxResult("buycountmin", "请填写购买数量"));
            }

            //商品库存
            int stockNumber = Products.GetProductStockNumberByPid(pid);

            if (stockNumber < buyCount)
            {
                return(AjaxResult("stockout", "商品库存不足"));
            }

            //购物车中已经存在的商品列表
            List <OrderProductInfo> orderProductList = Carts.GetCartProductList(WorkContext.Uid, WorkContext.Sid);
            OrderProductInfo        orderProductInfo = Carts.GetCommonOrderProductByPid(pid, orderProductList);

            if (orderProductInfo == null)
            {
                if ((WorkContext.Uid > 0 && orderProductList.Count >= WorkContext.ShopConfig.MemberSCCount) || (WorkContext.Uid < 1 && orderProductList.Count >= WorkContext.ShopConfig.GuestSCCount))
                {
                    return(AjaxResult("full", "购物车已满"));
                }
            }

            buyCount = orderProductInfo == null ? buyCount : orderProductInfo.BuyCount + buyCount;
            //将商品添加到购物车
            Carts.AddProductToCart(ref orderProductList, buyCount, partProductInfo, WorkContext.Sid, WorkContext.Uid, DateTime.Now);
            //将购物车中商品数量写入cookie
            Carts.SetCartProductCountCookie(Carts.SumOrderProductCount(orderProductList));

            return(AjaxResult("success", "添加成功"));
        }
Пример #3
0
        /// <summary>
        /// 添加商品到购物车
        /// </summary>
        public ActionResult AddProduct()
        {
            int pid          = WebHelper.GetQueryInt("pid");        //商品id
            int buyCount     = WebHelper.GetQueryInt("buyCount");   //购买数量
            int scSubmitType = WorkContext.ShopConfig.SCSubmitType; //购物车的提交方式

            //当商城不允许游客使用购物车时
            if (WorkContext.ShopConfig.IsGuestSC == 0 && WorkContext.Uid < 1)
            {
                switch (scSubmitType)
                {
                case 0:
                    return(Redirect(Url.Action("login", "account", new RouteValueDictionary {
                        { "returnUrl", Url.Action("product", "catalog", new RouteValueDictionary {
                                { "pid", pid }
                            }) }
                    })));

                case 1:
                    return(Redirect(Url.Action("login", "account", new RouteValueDictionary {
                        { "returnUrl", Url.Action("product", "catalog", new RouteValueDictionary {
                                { "pid", pid }
                            }) }
                    })));

                case 2:
                    return(AjaxResult("nologin", "请先登录"));

                default:
                    return(Redirect(Url.Action("login", "account", new RouteValueDictionary {
                        { "returnUrl", Url.Action("product", "catalog", new RouteValueDictionary {
                                { "pid", pid }
                            }) }
                    })));
                }
            }

            //判断商品是否存在
            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                switch (scSubmitType)
                {
                case 0:
                    return(PromptView("/", "商品不存在"));

                case 1:
                    return(PromptView("/", "商品不存在"));

                case 2:
                    return(AjaxResult("noproduct", "请选择商品"));

                default:
                    return(PromptView("/", "商品不存在"));
                }
            }

            //购买数量不能小于1
            if (buyCount < 1)
            {
                switch (scSubmitType)
                {
                case 0:
                    return(PromptView(Url.Action("product", "catalog", new RouteValueDictionary {
                        { "pid", pid }
                    }), "购买数量不能小于1"));

                case 1:
                    return(PromptView(Url.Action("product", "catalog", new RouteValueDictionary {
                        { "pid", pid }
                    }), "购买数量不能小于1"));

                case 2:
                    return(AjaxResult("buycountmin", "请填写购买数量"));

                default:
                    return(PromptView(Url.Action("product", "catalog", new RouteValueDictionary {
                        { "pid", pid }
                    }), "购买数量不能小于1"));
                }
            }

            //商品库存
            int stockNumber = Products.GetProductStockNumberByPid(pid);

            if (stockNumber < buyCount)
            {
                switch (scSubmitType)
                {
                case 0:
                    return(PromptView(Url.Action("product", "catalog", new RouteValueDictionary {
                        { "pid", pid }
                    }), "商品已售空"));

                case 1:
                    return(PromptView(Url.Action("product", "catalog", new RouteValueDictionary {
                        { "pid", pid }
                    }), "商品已售空"));

                case 2:
                    return(AjaxResult("stockout", "商品库存不足"));

                default:
                    return(PromptView(Url.Action("product", "catalog", new RouteValueDictionary {
                        { "pid", pid }
                    }), "商品已售空"));
                }
            }

            //购物车中已经存在的商品列表
            List <OrderProductInfo> orderProductList = Carts.GetCartProductList(WorkContext.Uid, WorkContext.Sid);
            OrderProductInfo        orderProductInfo = Carts.GetCommonOrderProductByPid(pid, orderProductList);

            if (orderProductInfo == null)
            {
                if ((WorkContext.Uid > 0 && orderProductList.Count >= WorkContext.ShopConfig.MemberSCCount) || (WorkContext.Uid < 1 && orderProductList.Count >= WorkContext.ShopConfig.GuestSCCount))
                {
                    switch (scSubmitType)
                    {
                    case 2:
                        return(AjaxResult("full", "购物车已满"));

                    default:
                        return(PromptView(Url.Action("index", "cart"), "购物车已满,请先结账"));
                    }
                }
            }

            buyCount = orderProductInfo == null ? buyCount : orderProductInfo.BuyCount + buyCount;
            //将商品添加到购物车
            Carts.AddProductToCart(ref orderProductList, buyCount, partProductInfo, WorkContext.Sid, WorkContext.Uid, DateTime.Now);
            //将购物车中商品数量写入cookie
            Carts.SetCartProductCountCookie(Carts.SumOrderProductCount(orderProductList));

            switch (scSubmitType)
            {
            case 0:
                return(RedirectToAction("addsuccess", new RouteValueDictionary {
                    { "type", 0 }, { "id", pid }
                }));

            case 1:
                return(RedirectToAction("index"));

            case 2:
                return(AjaxResult("success", "添加成功"));

            default:
                return(RedirectToAction("addsuccess", new RouteValueDictionary {
                    { "type", 0 }, { "id", pid }
                }));
            }
        }