Example #1
0
 public SK_WM_OrderVM(SK_WM_Order bo)
 {
     ID               = bo.ID;
     Count            = bo.Count;
     CountPrice       = bo.TotalPrice;
     State            = bo.State;
     CreateOrderTime  = bo.CreateOrderTime;
     OrderItemForUser = bo.OrderForUser;
     Goods            = bo.Goods;
     Name             = bo.Name;
     SortCode         = bo.SortCode;
 }
Example #2
0
 public void MapToOrder(SK_WM_Order bo)
 {
     bo.SortCode        = SortCode;
     bo.Count           = Count;
     bo.TotalPrice      = CountPrice;
     bo.State           = State;
     bo.CreateOrderTime = CreateOrderTime;
     bo.OrderForUser    = OrderItemForUser;
     bo.Goods           = Goods;
     Name     = bo.Name;
     SortCode = bo.SortCode;
 }
Example #3
0
        /// <summary>
        /// 确认下单
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> AddOrderSure(List <SK_WM_OrderItem> orderItem, string orders, string ordersID)
        {
            //状态 成功与否
            var status = false;
            var order  = await _OrderItemRepository.GetAllIncludingAsyn(x => x.ItemForOrder);

            if (orders != null)
            {
                orderItem = Newtonsoft.Json.JsonConvert.DeserializeObject <List <SK_WM_OrderItem> >(orders);
            }
            if (ordersID != null)
            {
                orderItem = order.Where(x => x.ItemForOrder.ID.ToString() == ordersID).ToList();
            }

            //获取当前登录的用户信息
            var userName = User.Identity.Name;

            if (userName == null)
            {
                return(View("../../Views/Home/Logon"));
            }
            var user = await _UserManager.FindByNameAsync(userName);

            #region 暂时保留不用的代码
            //var order = await _OrderRepository.FindByAsyn(x => x.BelongToUserID == user.Id);
            //if (order.Count() == 0)
            //{
            //    var orderNew = new SK_WM_Order()
            //    {
            //        BelongToUserID = user.Id,
            //        OrderForUser = user,
            //    };
            //    //创建一个订单容器
            //    await _OrderRepository.AddOrEditAndSaveAsyn(orderNew);
            //    order = await _OrderRepository.FindByAsyn(x => x.BelongToUserID == user.Id);
            //}
            //foreach (var item in orderItem)
            //{
            //    //查询加入订单的商品信息
            //    var goods = _GoodsRepository.GetSingleBy(x => x.Name == item.GoodsName);
            //    var imgs = await _ImageRepository.FindByAsyn(x => x.RelevanceObjectID == goods.ID);
            //    var img = imgs.Where(x => x.IsForTitle == true).FirstOrDefault();
            //    var shop = _ShopRepository.GetSingleBy(x => x.ID == Guid.Parse(goods.BelongToShopID));

            //    //查询该用户当前未完成的所有订单
            //    var orderItemNo = await _OrderItemRepository.FindByAsyn(x => x.BelongToOrderID == order.FirstOrDefault().ID.ToString() && x.State == (SK_WM_OrderState.Orderstate.待创建).ToString());
            //    //查询该用户的订单内是否存在当前要添加的商品
            //    var hasGoods = orderItemNo.Where(x => x.GoodsID == item.GoodsID);
            //    if (hasGoods.Count() == 0)
            //    {
            //        hasGoods = null;
            //    }
            //    //创建一个订单项对象并实例化
            //    var oItem = new SK_WM_OrderItem();

            //    if (hasGoods == null)  //未完成的订单中不存在当前正添加的商品
            //    {
            //        oItem = new SK_WM_OrderItem()
            //        {
            //            BelongToOrderID = order.FirstOrDefault().ID.ToString(),
            //            ItemForOrder = order.FirstOrDefault(),
            //            CreateOrderTime = DateTime.Now,
            //            DeliveryAdderss = "", //用户暂时没有给配送地址字段
            //            DeliveryFee = 0.00m, //商品暂时没有给配送费字段
            //            ShopName = shop.Name,
            //            GoodsName = goods.Name,
            //            GoodsID = goods.ID.ToString(),
            //            Description = goods.Description,
            //            Price = goods.Price,
            //            Count = orderItem.Count,
            //            TotalPrice = (orderItem.Count * decimal.Parse(goods.Price)).ToString(),
            //            ImgPath = img.UploadPath,
            //            State = (SK_WM_OrderState.Orderstate.待创建).ToString()
            //        };
            //        //创建订单
            //        status = await _OrderItemRepository.AddOrEditAndSaveAsyn(oItem);
            //    }
            //    else //未完成的订单中存在当前正添加的商品
            //    {
            //        //若商品存在
            //        var orderItemEdit = hasGoods.FirstOrDefault();
            //        orderItemEdit.Count = orderItemEdit.Count + orderItem.Count;
            //        orderItemEdit.TotalPrice = (orderItemEdit.Count * decimal.Parse(goods.Price)).ToString();
            //        status = await _OrderItemRepository.AddOrEditAndSaveAsyn(orderItemEdit);
            //    }
            #endregion


            //创建一个订单容器
            var boVM  = new List <SK_WM_OrderItemVM>();
            var goods = await _BoRepository.GetAllIncludingAsyn(x => x.Shop);

            var orderNew = new SK_WM_Order()
            {
                OrderForUser = user,
                State        = (SK_WM_OrderState.Orderstate.待付款).ToString(),
                Goods        = null,
                Count        = orderItem.FirstOrDefault().Count,
                Name         = ""
            };
            if (ordersID != null)
            {
                orderNew.ID = Guid.Parse(ordersID);
            }
            else
            {
                await _OrderRepository.AddOrEditAndSaveAsyn(orderNew);
            }


            var TotalPriceForOrder = 0.00m;
            var orderItemCount     = 0;

            var goodsNameStr      = "";                // 用于存放 取前3条商品的名称作为订单的名称
            var goodIDFrist       = new SK_WM_Goods(); //商品 用于取第一条订单列表项的商品图片作为封面
            var goodNameCount     = 1;                 //用于判断
            var goodIDFristeCount = 1;                 //用于判断

            foreach (var item in orderItem)
            {
                //查询加入订单的商品信息
                var currGoods = goods.Where(x => x.ID == Guid.Parse(item.GoodsID)).FirstOrDefault();
                if (goodIDFristeCount < 2)
                {
                    goodIDFrist = currGoods;
                    goodIDFristeCount++;
                }
                if (currGoods != null)
                {
                    var shop = _ShopRepository.GetSingleBy(x => x.ID == currGoods.Shop.ID);
                    var imgs = await _ImageRepository.FindByAsyn(x => x.RelevanceObjectID == currGoods.ID);

                    var img   = imgs.Where(x => x.IsForTitle == true).FirstOrDefault();
                    var oItem = new SK_WM_OrderItem();
                    if (ordersID == null)
                    {
                        //订单名称
                        if (goodNameCount < 4)
                        {
                            goodsNameStr += currGoods.Name + "、";
                            goodNameCount++;
                        }

                        //创建一个订单项对象
                        oItem = new SK_WM_OrderItem()
                        {
                            ItemForOrder    = orderNew,
                            CreateOrderTime = DateTime.Now,
                            DeliveryAdderss = "",    //用户暂时没有给配送地址字段
                            DeliveryFee     = 0.00m, //商品暂时没有给配送费字段
                            ShopName        = shop.Name,
                            GoodsName       = currGoods.Name,
                            GoodsID         = currGoods.ID.ToString(),
                            Description     = currGoods.Description,
                            Price           = currGoods.Price,
                            Count           = item.Count,
                            ImgPath         = img.UploadPath,
                            TotalPrice      = (item.Count * decimal.Parse(currGoods.Price)).ToString(),
                            State           = (SK_WM_OrderState.Orderstate.待付款).ToString()
                        };
                    }
                    else
                    {
                        oItem = item;
                    }
                    var oItemVM = new SK_WM_OrderItemVM(oItem);
                    //创建订单
                    if (ordersID != null)
                    {
                        status = true;
                    }
                    else
                    {
                        status = await _OrderItemRepository.AddOrEditAndSaveAsyn(oItem);
                    }
                    //订单的总价格计算
                    TotalPriceForOrder += decimal.Parse(oItem.TotalPrice);
                    orderItemCount++;
                    boVM.Add(oItemVM);
                }
            }
            ViewBag.UserLogonInformation = GetUserName();
            if (status)
            {
                orderNew.Name            = goodsNameStr; //重新修改订单的名称
                orderNew.Goods           = goodIDFrist;  //
                orderNew.CreateOrderTime = DateTime.Now;
                orderNew.Count           = orderItemCount;
                orderNew.TotalPrice      = TotalPriceForOrder;
                orderNew.State           = (SK_WM_OrderState.Orderstate.待付款).ToString();
                if (ordersID == null)
                {
                    await _OrderRepository.AddOrEditAndSaveAsyn(orderNew);
                }
                return(View("../Home/CheckStand", boVM));
            }
            else
            {
                return(Json(new { isOK = false }));
            }
        }