コード例 #1
0
        public JsonResult deleteShoppingCartItem([FromBody] JObject data)
        {
            string sessionUserId   = HttpContext.Session.GetString("userId");
            string sessionPassword = HttpContext.Session.GetString("password");

            UserDAL userDal = new UserDAL();

            // 权限验证
            if (sessionUserId == null || userDal.getUserById(sessionUserId)?.password != sessionPassword)
            {
                return(new JsonResult(Return.Error("用户未登录或无权限访问", HttpStatusCodes.Status401Unauthorized)));
            }

            string itemId = data.Value <string>("item_id");

            ShoppingCartItemDAL shoppingCartItemDal = new ShoppingCartItemDAL();
            ShoppingCartItem    shoppingCartItem    = shoppingCartItemDal.getShoppingCartItemByUserIdAndItemId(sessionUserId, itemId);

            if (shoppingCartItem == null)
            {
                return(new JsonResult(Return.Error("找不到此购物车商品", StatusCodes.ItemNotFound)));
            }

            int result = shoppingCartItemDal.deleteShoppingCartItem(shoppingCartItem);

            return(new JsonResult(Return.Success(result)));
        }
コード例 #2
0
        public JsonResult listShoppingCart()
        {
            // 登录验证
            string  sessionUserId   = HttpContext.Session.GetString("userId");
            string  sessionPassword = HttpContext.Session.GetString("password");
            UserDAL userDal         = new UserDAL();

            if (sessionUserId == null || userDal.getUserById(sessionUserId)?.password != sessionPassword)
            {
                return(new JsonResult(Return.Error("用户未登录或无权限访问", HttpStatusCodes.Status401Unauthorized)));
            }

            ShoppingCartItemDAL     shoppingCartDal = new ShoppingCartItemDAL();
            List <ShoppingCartItem> result          = shoppingCartDal.listShoppingCartItemsByUserId(sessionUserId);

            return(new JsonResult(Return.Success(result)));
        }
コード例 #3
0
        public JsonResult addShoppingCartItem([FromBody] ShoppingCartItem shoppingCartItem)
        {
            // 登录验证
            string  sessionUserId   = HttpContext.Session.GetString("userId");
            string  sessionPassword = HttpContext.Session.GetString("password");
            UserDAL userDal         = new UserDAL();

            if (sessionUserId == null || userDal.getUserById(sessionUserId)?.password != sessionPassword)
            {
                return(new JsonResult(Return.Error("用户未登录或无权限访问", HttpStatusCodes.Status401Unauthorized)));
            }

            shoppingCartItem.userId     = sessionUserId;
            shoppingCartItem.createTime = DateTime.Now;

            // 模型验证
            ModelState.Clear();
            TryValidateModel(shoppingCartItem);
            if (!ModelState.IsValid)
            {
                return(new JsonResult(Return.ModelError(ModelState)));
            }

            ItemDAL itemDal = new ItemDAL();

            if (itemDal.getItemById(shoppingCartItem.itemId)?.open != true)
            {
                return(new JsonResult(Return.Error("找不到此商品或商品已下架", StatusCodes.ItemNotFound)));
            }

            shoppingCartItem.count = Math.Max(Math.Min(shoppingCartItem.count, 99), 1);

            ShoppingCartItemDAL shoppingCartItemDal = new ShoppingCartItemDAL();
            int result = shoppingCartItemDal.addShoppingCartItem(shoppingCartItem);

            return(new JsonResult(Return.Success(result)));
        }
コード例 #4
0
        public JsonResult updateShoppingCartItem([FromBody] JObject data)
        {
            string sessionUserId   = HttpContext.Session.GetString("userId");
            string sessionPassword = HttpContext.Session.GetString("password");

            UserDAL userDal = new UserDAL();

            // 权限验证
            if (sessionUserId == null || userDal.getUserById(sessionUserId)?.password != sessionPassword)
            {
                return(new JsonResult(Return.Error("用户未登录或无权限访问", HttpStatusCodes.Status401Unauthorized)));
            }

            string itemId = data.Value <string>("item_id");

            ShoppingCartItemDAL shoppingCartItemDal = new ShoppingCartItemDAL();
            ShoppingCartItem    shoppingCartItem    = shoppingCartItemDal.getShoppingCartItemByUserIdAndItemId(sessionUserId, itemId);

            if (shoppingCartItem == null)
            {
                return(new JsonResult(Return.Error("找不到此购物车商品", StatusCodes.ItemNotFound)));
            }

            int?count = data.Value <int?>("count");

            if (count == null)
            {
                return(new JsonResult(Return.Error("数量不能为空", HttpStatusCodes.Status400BadRequest)));
            }

            shoppingCartItem.count = Math.Max(Math.Min((int)count, 99), 1);

            int result = shoppingCartItemDal.updateShoppingCartItem(shoppingCartItem);

            return(new JsonResult(Return.Success(new { count = shoppingCartItem.count })));
        }
コード例 #5
0
        public JsonResult createOrder([FromBody] Order order)
        {
            // 登录验证
            string  sessionUserId   = HttpContext.Session.GetString("userId");
            string  sessionPassword = HttpContext.Session.GetString("password");
            UserDAL userDal         = new UserDAL();

            if (sessionUserId == null || userDal.getUserById(sessionUserId)?.password != sessionPassword)
            {
                return(new JsonResult(Return.Error("用户未登录或无权限访问", HttpStatusCodes.Status401Unauthorized)));
            }

            ShoppingCartItemDAL shoppingCartItemDal = new ShoppingCartItemDAL();
            ItemDAL             itemDal             = new ItemDAL();
            OrderDAL            orderDal            = new OrderDAL();

            order.orderId      = Guid.NewGuid().ToString();
            order.userId       = sessionUserId;
            order.createTime   = DateTime.Now;
            order.deliveryTime = order.paymentTime = order.receiptTime = null;
            order.price        = 0;

            // 模型验证
            ModelState.Clear();
            TryValidateModel(order);
            if (!ModelState.IsValid)
            {
                return(new JsonResult(Return.ModelError(ModelState)));
            }

            for (int i = 0; i < order.items.Count; i++)
            {
                order.items[i].item = itemDal.getItemById(order.items[i].itemId); // 获取商品对象
                if (order.items[i].item?.open != true)
                {
                    return(new JsonResult(Return.Error("找不到此商品或此商品已下架", StatusCodes.ItemNotFound)));
                }
                if (order.items[i].count > order.items[i].item.quantity)
                {
                    return(new JsonResult(Return.Error("库存量不足", StatusCodes.NotEnoughItems)));
                }

                order.items[i].orderId = order.orderId;
                order.price           += order.items[i].count * order.items[i].item.price; // 计算价格
            }

            foreach (OrderItem item in order.items)
            {
                // 删除购物车里对应的物品
                shoppingCartItemDal.deleteShoppingCartItem(new ShoppingCartItem
                {
                    itemId = item.itemId,
                    userId = sessionUserId
                });

                // 减少库存量
                item.item.quantity -= item.count;
                itemDal.updateItem(item.item);
            }

            int result = orderDal.addOrder(order);

            return(new JsonResult(Return.Success(order)));
        }