Пример #1
0
        // 删除订单
        public bool removeOrder(string buyerid, string commodityid)
        {
            OrdersCommodity ordersCommodity = _context.OrdersCommodities.Where(x => x.CommodityId == commodityid).FirstOrDefault();

            if (ordersCommodity != null)
            {
                Order orders = _context.Orders.Where(x => x.OrdersId == ordersCommodity.OrdersId).FirstOrDefault();
                if (orders != null)
                {
                    _context.Orders.Remove(orders);
                }

                _context.OrdersCommodities.Remove(ordersCommodity);

                if (_context.SaveChanges() > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #2
0
        // 查看订单详情
        public OrderDetailView getOrderByStatus(string orderid)
        {
            Order              order           = _context.Orders.Where(x => x.OrdersId == orderid).FirstOrDefault();
            OrdersCommodity    ordersCommodity = _context.OrdersCommodities.Where(x => x.OrdersId == orderid).FirstOrDefault();
            Commodity          commodity       = _context.Commodities.Where(x => x.CommodityId == ordersCommodity.CommodityId).FirstOrDefault();
            Shop               shop            = _context.Shops.Where(x => x.ShopId == order.ShopId).FirstOrDefault();
            ReceiveInformation receive         = _context.ReceiveInformations.Where(x => x.ReceivedId == order.ReceivedId).FirstOrDefault();

            OrderDetailView orderDetail = new OrderDetailView
            {
                OrdersId   = order.OrdersId,         // 订单ID
                BuyerId    = order.BuyerId,          // 买家ID
                ReceivedId = order.ReceivedId,       // 收货详情ID
                ShopId     = order.ShopId,           // 店铺ID
                Status     = order.Status,           // 订单的状态
                OrdersDate = order.OrdersDate,       // 下单时间

                // Orderamount // 订单包含物品数量
                Price         = commodity.Price,      // 商品价格
                Category      = commodity.Category,   // 商品类别
                CommodityName = commodity.Name,       // 商品名称
                CommodityUrl  = commodity.Url,        // 商品图片
                ShopName      = shop.Name,            // 店铺名称
                ReceiverPhone = receive.Phone,        // 收货人电话号码
                ReceiverName  = receive.ReceiverName, // 收货人姓名
                Country       = receive.Country,      // 国家
                Province      = receive.Province,     // 省份
                City          = receive.City,         // 城市
                District      = receive.District,     // 街区
                DetailAddr    = receive.DetailAddr    // 地址详情
            };

            return(orderDetail);
        }
Пример #3
0
        // 根据状态查看买家订单
        public List <OrderView> getOrderByStatus(string buyerid, int status)
        {
            List <OrderView> ordersView = new List <OrderView>();

            List <Order> orders = _context.Orders.Where(x => x.BuyerId == buyerid && x.Status == status).ToList();

            foreach (Order order in orders)
            {
                OrdersCommodity ordersCommodity = _context.OrdersCommodities.Where(x => x.OrdersId == order.OrdersId).FirstOrDefault();

                Commodity commodity = _context.Commodities.Where(x => x.CommodityId == ordersCommodity.CommodityId).FirstOrDefault();

                Shop shop = _context.Shops.Where(x => x.ShopId == order.ShopId).FirstOrDefault();

                OrderView orderView = new OrderView
                {
                    OrdersId      = order.OrdersId,
                    BuyerId       = order.BuyerId,
                    ReceivedId    = order.ReceivedId,
                    CommodityId   = commodity.CommodityId,
                    ShopId        = order.ShopId,
                    CommodityName = commodity.Name,
                    Name          = shop.Name,
                    OrdersDate    = order.OrdersDate,
                    Status        = order.Status,
                    Price         = commodity.Price,
                    Url           = commodity.Url,
                };

                ordersView.Add(orderView);
            }

            return(ordersView);
        }
Пример #4
0
        // 更新订单中商品的状态
        public bool updateCommodityStatus(string commodityid, int newStatus)
        {
            OrdersCommodity ordersCommodity = _context.OrdersCommodities.Where(x => x.OrdersId == commodityid).FirstOrDefault();

            ordersCommodity.Status = newStatus;
            _context.OrdersCommodities.Update(ordersCommodity);
            if (_context.SaveChanges() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #5
0
        // 从商品详情页面创建订单
        public bool CreateOrderFromDetail(string buyerid, string commodityid, string receivedId, int amount, decimal price)
        {
            // OrderId生成
            CreateIdCount orderCount = new CreateIdCount(_context);
            string        orderId    = orderCount.GetOrderCount();

            Global.GOrderID.Clear();
            Global.GOrderID.Add(orderId);
            Commodity commodity = _context.Commodities.Where(x => x.CommodityId == commodityid).FirstOrDefault();

            // 创建联系集 - 初始时商品状态为待付款
            OrdersCommodity ordersCommodity = new OrdersCommodity {
                OrdersId = orderId, CommodityId = commodityid, Status = COrders.ToBePay, Amount = amount
            };

            _context.OrdersCommodities.Add(ordersCommodity);

            // 创建Order —— 初始状态为待付款
            Order order = new Order
            {
                OrdersId    = orderId,
                BuyerId     = buyerid,
                OrdersDate  = DateTime.Now,
                Status      = COrders.ToBePay,
                ShopId      = commodity.ShopId,
                ReceivedId  = receivedId,
                Orderamount = price
            };

            _context.Orders.Add(order);
            if (_context.SaveChanges() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #6
0
        // 删除所有订单
        public bool removeAllOrder(string buyerid)
        {
            List <Order> orders = _context.Orders.Where(x => x.BuyerId == buyerid).ToList();

            foreach (Order order in orders)
            {
                OrdersCommodity ordersCommodity = _context.OrdersCommodities.Where(x => x.OrdersId == order.OrdersId).FirstOrDefault();
                if (ordersCommodity != null)
                {
                    _context.OrdersCommodities.Remove(ordersCommodity);
                }
            }
            _context.Orders.RemoveRange(orders);

            if (_context.SaveChanges() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #7
0
 // 从购物车页面创建订单
 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);
         }
     }
 }