public void MapToOrderItem(SK_WM_OrderItem bo) { bo.SortCode = SortCode; bo.GoodsName = GoodsName; bo.Description = Description; bo.GoodsID = GoodsID; bo.ShopName = ShopName; bo.Count = Count; bo.Price = Price; bo.TotalPrice = TotalPrice; bo.DeliveryAdderss = DeliveryAdderss; bo.DeliveryFee = DeliveryFee; bo.State = State; bo.CreateOrderTime = CreateOrderTime; bo.ItemForOrder = ItemForOrder; bo.ImgPath = ImgPath; }
public SK_WM_OrderItemVM(SK_WM_OrderItem bo) { ID = bo.ID; Name = bo.Name; SortCode = bo.SortCode.Substring(16); GoodsName = bo.GoodsName; Description = bo.Description; GoodsID = bo.GoodsID; ShopName = bo.ShopName; Count = bo.Count; Price = bo.Price; TotalPrice = bo.TotalPrice; DeliveryAdderss = bo.DeliveryAdderss; DeliveryFee = bo.DeliveryFee; State = bo.State; CreateOrderTime = bo.CreateOrderTime; ItemForOrder = bo.ItemForOrder; ImgPath = bo.ImgPath; HasGoods = true; }
/// <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 })); } }