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