//========================================================== //========================================================== // GET: Order public ActionResult Index() { string currentUserId = HttpContext.User.Identity.GetUserId(); ApplicationUserManager userManager = new ApplicationUserManager(new UserStore <ApplicationUser>(db)); ApplicationUser currentUser = userManager.FindById(currentUserId); if (!currentUser.EmailConfirmed) { return(RedirectToAction("Index", "Profile")); } ShoppingCart cart = db.ShoppingCarts .Include(c => c.ShoppingCartsProducts) .Where(c => c.UserId == currentUser.Id).SingleOrDefault(); if (cart != null && cart.ShoppingCartsProducts != null && cart.ShoppingCartsProducts.Count > 0) { ShopOrder order = new ShopOrder { DateCreate = DateTime.Now, ApplicationUser = currentUser }; foreach (ShoppingCartsProduct cartProduct in cart.ShoppingCartsProducts) { ShopOrderProduct orderProduct = new ShopOrderProduct { Quantity = cartProduct.Quantity, ShopProduct = cartProduct.ShopProduct }; ShopProductsPrice price = db.ShopProductsPrices.Where(p => p.ShopProduct.Id == cartProduct.ShopProduct.Id && p.CurrentPrice).SingleOrDefault(); //cartProduct.ShopProduct.ShopProductsPrices.Where(p => p.CurrentPrice).SingleOrDefault(); if (price != null) { orderProduct.Price = price.Price; } order.ShopOrderProducts.Add(orderProduct); } db.ShopOrders.Add(order); db.ShoppingCartsProducts.RemoveRange(cart.ShoppingCartsProducts); db.SaveChanges(); return(View("Index")); } return(View("Error")); }
public static string GetProductShopping(ShopOrderProduct model, ShopProduct product) { return($"<span class='price' id='prodCash'>{model.MoneyShopping}</span>积分; 运费:<span class='price' id='prodCash'>{product.Postage}</span>积分"); }
public static string GetProductXianJin1(ShopOrderProduct model, ShopProduct product) { return($"<span class='price' id='prodCash'>{model.MoneyScore}</span>元; 运费:<span class='price' id='prodCash'>{product.Postage}</span>元"); }
public ActionResult Save(ShopOneBuy entity) { var json = new JsonHelp(); try { if (entity.ID == 0) { json.IsSuccess = DB.ShopOneBuy.Insert(entity); json.Msg = "添加"; } else { var model = DB.ShopOneBuy.FindEntity(entity.ID); #region 赋值 model.TotalCount = entity.TotalCount; model.PayWay = entity.PayWay; model.CreateTime = entity.CreateTime; model.IsEnable = entity.IsEnable; model.MemberCode = entity.MemberCode; #endregion #region 检验 if (model.TotalCount < model.Count) { json.Msg = "总需人次不能小于已参与人次!"; return(Json(json)); } if (model.IsEnable == false && model.Count > 0) { json.Msg = "一元购正在进行中,不能停用"; return(Json(json)); } if (model.State == ShopEnum.OneBuyState.End.GetHashCode()) { json.Msg = "一元购已结束,不能修改"; return(Json(json)); } #endregion using (var tran = DB.ShopOneBuy.BeginTransaction) { if (model.Count > 0) { if (model.State == ShopEnum.OneBuyState.Start.GetHashCode()) { //当总需人次与已参与人次相同时 if (model.Count >= model.TotalCount) { model.IsFinish = true; model.FinishTime = DateTime.Now; model.State = ShopEnum.OneBuyState.Finish.GetHashCode(); } } else { var member = DB.Member_Info.FindEntity(a => a.Code == entity.MemberCode); if (member != null) { //设置获奖人 model.NickName = member.NickName; model.Winner = member.MemberId; model.WinTime = DateTime.Now; model.State = ShopEnum.OneBuyState.End.GetHashCode(); #region 添加中奖订单 var product = DB.ShopProduct.FindEntity(a => a.ID == model.ProductID); var order = new ShopOrder() { GUID = Guid.NewGuid().ToString().Replace("-", ""), MemberCode = member.Code, NickName = member.NickName, MemberID = member.MemberId, OrderCode = model.Code + DB.Random.Next(100, 999), OrderType = "一元购", PayState = ShopEnum.OrderPayState.Pay.GetHashCode(), PayTime = DateTime.Now, SubmitTime = DateTime.Now, RealAmount = model.TotalCount, ShopID = product.ShopID, State = ShopEnum.OrderState.Pay.GetHashCode(), TotalAmount = model.TotalCount }; if (model.PayWay != null) { order.PayWay = DB.ShopPayWay.FindEntity(model.PayWay).PayWay; } else { order.PayWay = "电子币"; } //默认的我的地址 var myaddress = DB.ShopMyAddress.Where(a => a.MemberID == member.MemberId).OrderByDescending(a => a.IsDefault).FirstOrDefault(); if (myaddress != null) { order.Receiver = myaddress.Name; order.PostAddress = myaddress.Address; order.Tel = myaddress.Tel; } model.OrderID = order.GUID; json.IsSuccess = DB.ShopOrder.Insert(order); if (json.IsSuccess == false) { json.Msg = "生成订单失败,请重试"; return(Json(json)); } #region 添加 商品订单对应 var orderproduct = new ShopOrderProduct() { Count = 1, MemberID = member.MemberId, Money = model.TotalCount, Name = product.Title, ProductID = model.ProductID, Price = model.TotalCount, OrderID = order.GUID }; json.IsSuccess = DB.ShopOrderProduct.Insert(orderproduct); if (json.IsSuccess == false) { json.Msg = "生成订单失败,请重试"; return(Json(json)); } #endregion #endregion } } } json.IsSuccess = DB.ShopOneBuy.Update(model); json.Msg = "修改"; tran.Complete(); } } if (json.IsSuccess) { json.ReUrl = ControllerPath + "/Index"; json.Msg += "成功"; } else { json.Msg += "失败"; } } catch (Exception e) { json.IsSuccess = false; json.Msg = "操作失败"; LogHelper.Error("保存一元购失败:" + WebTools.getFinalException(e)); } return(Json(json)); }
/// <summary> /// 生成订单,进入代付款状态 /// </summary> /// <returns></returns> public bool GenerateOrder(Member_Info curUser, int AddressID, string remark) { //1.获取购物车 List <ShopCat> catList = DB.ShopCat.Where(q => q.MemberID == curUser.MemberId).ToList(); var member = DB.Member_Info.Where(p => p.MemberId == curUser.MemberId).FirstOrDefault(); var Level = DB.Sys_Level.Where(p => p.LevelId == member.MemberLevelId).FirstOrDefault(); using (var tran = BeginTransaction) { try { //获取地址 ShopMyAddress address = DB.ShopMyAddress.FindEntity(q => q.ID == AddressID); //2. 生成订单 ShopOrder order = new ShopOrder(); string orderID = Guid.NewGuid().ToString().Replace("-", ""); order.GUID = orderID; order.ShopID = 1; order.TraceNo = orderID; order.OrderCode = generateCode(); order.MemberID = curUser.MemberId; order.MemberCode = curUser.Code; order.NickName = curUser.NickName; order.PayState = ShopEnum.OrderPayState.WaitPay.GetHashCode(); order.State = ShopEnum.OrderState.Submit.GetHashCode(); order.SubmitTime = DateTime.Now; order.Remark = remark; if (address != null) { order.Receiver = address.Name; order.PostAddress = address.ShowAddressName; order.Tel = address.Tel; order.Type = address.ShowAddressId; } foreach (var item in catList) { //if (member.MemberLevelId < 1) //{ // if (item.ShopProduct.CategoryID1 != 8) // throw new Exception("您不是会员无法去购买其他专区"); //} int shopID = item.ShopProduct.ShopID; order.PayWay = ""; //if (catList.Count > 1 && item.ShopProduct.IsDingDan()) // throw new Exception("订单产品必须单独结算,请移除后提交"); //decimal totalPrice = 0; decimal totalShopping = 0; decimal totalScore = 0; decimal totalCongXiao = 0; //3.统计价格 var catItem = item; totalShopping += DB.ShopProduct.GetSPrice(catItem.ShopProduct, catItem.GuiGe).LingShou.Value *catItem.Count; //零售价 totalScore += DB.ShopProduct.GetSPrice(catItem.ShopProduct, catItem.GuiGe).YouHui.Value *catItem.Count; //优惠价 totalCongXiao += DB.ShopProduct.GetSPrice(catItem.ShopProduct, catItem.GuiGe).PeiHuo.Value *catItem.Count; //配货价 order.ShopID = shopID; order.Postage = 0; order.RealAmount += totalScore;//优惠价 if (catItem.ShopProduct.CategoryID1 == DB.XmlConfig.XmlSite.Scores) { order.OrderType = "团购订单"; } else { order.OrderType = "报单订单"; } order.StoreCode = "未发放"; order.RealShopping += totalScore; //零售价 order.RealScore += totalScore; //优惠价 order.Postage += catItem.ShopProduct.Postage; order.RealCongXiao += totalCongXiao; //pv order.ZongDay = catItem.Count; //挂卖总数量 order.YiDay = catItem.Count; //剩余数量 order.Count += catItem.Count; } if (order.RealAmount >= DB.XmlConfig.XmlSite.MinAmountHuZ) { order.Postage = 0; } if (DB.ShopOrder.Insert(order) == false) { throw new Exception("添加订单失败"); } //生成订单关联 foreach (var item in catList) { var catItem = item; var gg = DB.ShopProduct.GetSPrice(catItem.ShopProduct, catItem.GuiGe); ShopOrderProduct orderProduct = new ShopOrderProduct(); orderProduct.OrderID = orderID; orderProduct.ProductID = catItem.ProductID; orderProduct.Name = catItem.ShopProduct.Title; orderProduct.Count = catItem.Count; orderProduct.PriceShopping = gg.LingShou.Value; //零售 orderProduct.PriceScore = gg.YouHui.Value; //优惠 orderProduct.PriceCongXiao = gg.PeiHuo.Value; //pv orderProduct.MoneyShopping = orderProduct.PriceShopping * catItem.Count; orderProduct.MoneyScore = orderProduct.PriceScore * catItem.Count; orderProduct.MoneyCongXiao = orderProduct.PriceCongXiao * catItem.Count; orderProduct.Price = gg.YouHui.Value; orderProduct.Money += orderProduct.MoneyScore;//配货价 orderProduct.GuiGe = catItem.GuiGe; DB.ShopOrderProduct.Insert(orderProduct); ////扣除订单的销售量 //catItem.ShopProduct.Sales += orderProduct.Count; //catItem.ShopProduct.Inventory -= orderProduct.Count; //if (catItem.ShopProduct.Inventory < 0) // throw new Exception("库存不足"); //DB.ShopProduct.Update(catItem.ShopProduct); gg.KuCun -= orderProduct.Count; gg.YiShou += orderProduct.Count; DB.GuiGeProduct_Info.Update(gg); } //4.清空购物车 DB.ShopCat.Delete(catList); tran.Complete(); return(true); } catch (Exception ex) { DB.Rollback(); throw ex; } } }