//添加购物车 public bool addToCart(string buyerid, string commodityid, int number) { AddShoppingCart cart = _context.AddShoppingCarts.Where(x => x.BuyerId == buyerid && x.CommodityId == commodityid).FirstOrDefault(); if (cart == null) { cart = new AddShoppingCart { BuyerId = buyerid, CommodityId = commodityid, Quantity = number, DateCreated = DateTime.Now }; _context.AddShoppingCarts.Add(cart); } else { cart.Quantity += number; _context.AddShoppingCarts.Update(cart); } if (_context.SaveChanges() > 0) { return(true); } else { return(false); } }
// 从购物车中删除 public bool RemoveFromCart(string buyerid, string commodityid) { AddShoppingCart cart = _context.AddShoppingCarts.Where(x => x.BuyerId == buyerid && x.CommodityId == commodityid).FirstOrDefault(); if (cart != null) { _context.AddShoppingCarts.Remove(cart); if (_context.SaveChanges() > 0) { return(true); } else { return(false); } } else { return(true); } }
// 从购物车页面创建订单 public bool CreateOrderFromChart(string buyerId, List <Good> cartCommodityList, string receivedId, decimal price) { if (buyerId == "" || cartCommodityList.Count == 0 || receivedId == "" || price == 0) { return(false); } else { List <Commodity> commodityList = new List <Commodity>(); List <Shop> shopList = new List <Shop>(); Global.GOrderID.Clear(); CreateIdCount create = new CreateIdCount(_context); decimal oldPrice = 0; foreach (Good cartCommodity in cartCommodityList) { Commodity newCommodity = _context.Commodities.FirstOrDefault(c => c.CommodityId == cartCommodity.ID); Shop newShop = _context.Shops.FirstOrDefault(s => s.Name == cartCommodity.shop); oldPrice = oldPrice + ((int)newCommodity.Price) * cartCommodity.Soldnum; commodityList.Add(newCommodity); if (shopList.Any(s => s.ShopId == newShop.ShopId) == false) { shopList.Add(_context.Shops.FirstOrDefault(s => s.ShopId == newShop.ShopId)); } AddShoppingCart scCommodity = _context.AddShoppingCarts.FirstOrDefault(a => a.CommodityId == cartCommodity.ID && a.BuyerId == buyerId); _context.AddShoppingCarts.Remove(scCommodity); } List <BuyerCoupon> couponList = _context.BuyerCoupons.Where(c => c.BuyerId == buyerId).ToList(); foreach (BuyerCoupon newBuyerCoupon in couponList) { Coupon newCoupon = _context.Coupons.FirstOrDefault(c => c.CouponId == newBuyerCoupon.CouponId); if (newCoupon.Threshold <= oldPrice && newCoupon.Discount1 == (oldPrice - price)) { newBuyerCoupon.Amount--; if (newBuyerCoupon.Amount == 0) { _context.BuyerCoupons.Remove(newBuyerCoupon); } else { _context.BuyerCoupons.Update(newBuyerCoupon); } } } decimal discountNumber = price / shopList.Count; foreach (Shop newShop in shopList) { Order newOrder = new Order(); string newOrderId = create.GetOrderCount(); newOrder.OrdersId = newOrderId; Global.GOrderID.Add(newOrderId); newOrder.BuyerId = buyerId; newOrder.ShopId = newShop.ShopId; newOrder.OrdersDate = DateTime.Now; newOrder.Status = COrders.ToBePay; newOrder.ReceivedId = receivedId; decimal amount = 0; foreach (Commodity newCommodity in commodityList) { Good newcart = cartCommodityList.FirstOrDefault(c => c.ID == newCommodity.CommodityId); OrdersCommodity newOrdersCommodity = new OrdersCommodity(); newOrdersCommodity.OrdersId = newOrder.OrdersId; newOrdersCommodity.CommodityId = newCommodity.CommodityId; newOrdersCommodity.Status = COrders.ToBePay; newOrdersCommodity.Amount = newcart.Soldnum; _context.OrdersCommodities.Add(newOrdersCommodity); if (newCommodity.ShopId == newShop.ShopId) { amount = amount + ((int)newCommodity.Price) * newcart.Soldnum; } } amount = amount - (oldPrice - price) / discountNumber; newOrder.Orderamount = amount; _context.Orders.Add(newOrder); } if (_context.SaveChanges() > 0) { return(true); } else { return(false); } } }