예제 #1
0
        /// <summary>
        /// 订单确认页面
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> OrderSure(List <SK_WM_OrderItem> orderItems, string orders)
        {
            //获取用户的姓名
            ViewBag.UserLogonInformation = GetUserName();
            if (GetUserName() == null)
            {
                return(View("../../Views/Home/Logon"));
            }
            //var username = User.Identity.Name;
            //var user = await _UserManager.FindByNameAsync(username);
            //if (user == null)
            //{
            //    return View("../../Views/Home/Logon");
            //}

            if (orders != null)
            {
                orderItems = Newtonsoft.Json.JsonConvert.DeserializeObject <List <SK_WM_OrderItem> >(orders);
            }
            else
            {
                orderItems = null;
                return(View());
            }
            //if (order != null)
            //{
            //    orderItems.Add(order);
            //}
            ViewBag.GoodsShop = orderItems;

            var orderItemVM = new List <SK_WM_OrderItemVM>();

            foreach (var item in orderItems)
            {
                var goods = _GoodsRepository.GetSingleBy(x => x.ID == Guid.Parse(item.GoodsID));
                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));


                item.GoodsID     = goods.ID.ToString();
                item.GoodsName   = goods.Name;
                item.Description = goods.Description;
                item.ShopName    = shop.Name;
                item.ImgPath     = img.UploadPath;
                item.Price       = goods.Price;
                item.TotalPrice  = (Convert.ToDecimal(goods.Price) * item.Count).ToString();

                var orderItem = new SK_WM_OrderItemVM(item);
                orderItemVM.Add(orderItem);
            }

            return(View("../Home/OrderSure", orderItemVM));
            //return Json(new { isOK = true, Orderitem = orderItemVM });
        }
예제 #2
0
        public async Task <IActionResult> MyOrder()
        {
            var userName = User.Identity.Name;

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

            //查询订单详细所关联的商品列表
            var ordersItem = await _OrderItemRepository.GetAllIncludingAsyn(x => x.ItemForOrder, x => x.ItemForOrder.OrderForUser);

            var orders = new List <SK_WM_OrderItem>();

            foreach (var order in ordersItem)
            {
                //var OrderForUser = await _OrderRepository.GetAllIncludingAsyn(x => x.OrderForUser);
                //order.ItemForOrder = OrderForUser.Where(x => x.ID == order.ItemForOrder.ID).FirstOrDefault();
                orders.Add(order);
            }
            var BelongToUserOrders = orders.Where(x => x.ItemForOrder.OrderForUser.Id == user.Id);

            ViewBag.OrderItem = BelongToUserOrders;

            var orderItemVM = new List <SK_WM_OrderItemVM>();

            foreach (var item in BelongToUserOrders)
            {
                var sitem = new SK_WM_OrderItemVM(item);

                var goods = await _GoodsRepository.FindByAsyn(x => x.Name == item.GoodsName);

                var fGoods = goods.FirstOrDefault();
                if (fGoods == null)
                {
                    sitem.HasGoods = false;
                }

                orderItemVM.Add(sitem);
            }

            ViewBag.UserLogonInformation = GetUserName();

            return(View("../Home/MyOrder", orderItemVM));
        }
예제 #3
0
        public async Task <IActionResult> OrderList(string selectNnm)
        {
            ViewBag.UserLogonInformation = GetUserName();
            var listPagePara = new ListPageParameter()
            {
                ObjectTypeID     = "Order",    // 对应的归属类型ID
                PageIndex        = 1,          // 当前页码
                PageSize         = 4,          // 每页数据条数 为"0"时显示所有
                PageAmount       = 0,          // 相关对象列表分页处理分页数量
                ObjectAmount     = 0,          // 相关的对象的总数
                Keyword          = "",         // 当前的关键词
                SortProperty     = "SortCode", // 排序属性
                SortDesc         = "default",  // 排序方向,缺省值正向 Default,前端用开关方式转为逆向:Descend
                SelectedObjectID = "",         // 当前页面处理中处理的焦点对象 ID
                IsSearch         = false,      // 当前是否为检索
            };

            listPagePara.PageIndex = selectNnm != null?Convert.ToInt32(selectNnm) : 1;

            var user = User.Claims.FirstOrDefault();

            if (user.Value == new Guid().ToString())
            {
                return(View("../../Views/Home/Logon"));
            }
            var shop = _ShopRepository.GetSingleBy(x => x.ShopForUser.Id == user.Value);
            //查询订单详细所关联的商品列表
            var orderItems     = _OrderItemRepository.FindBy(x => x.ShopName == shop.Name); //获取订单和订单对应的用户和商品
            var orVMCollection = new List <SK_WM_OrderItemVM>();                            //存放用户所有订单

            var OrderAll = orderItems.AsQueryable <SK_WM_OrderItem>();
            var OrderCollectionPageList = IQueryableExtensions.ToPaginatedList(OrderAll, listPagePara.PageIndex, listPagePara.PageSize);

            foreach (var order in OrderCollectionPageList)
            {
                var omVM = new SK_WM_OrderItemVM(order);
                orVMCollection.Add(omVM);
            }

            var pageGroup = PagenateGroupRepository.GetItem <SK_WM_OrderItem>(OrderCollectionPageList, 3, listPagePara.PageIndex);

            ViewBag.PageGroup     = pageGroup;
            ViewBag.PageParameter = listPagePara;

            return(View("../../Views/BusinessOrganization/BusinessBG/OrderList", orVMCollection));
        }
예제 #4
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 }));
            }
        }