/// <summary> /// 结算页面 /// </summary> /// <returns></returns> public ActionResult Checkout() { ShoppingCart shoppingCart = ShoppingStorageManager.GetShoppingCartFromCookieOrCreateNew(); if (ShoppingCartIsEmpty(shoppingCart)) { return(Redirect(PageHelper.BuildUrl("ShoppingCart"))); } var checkOutResult = ShoppingFacade.BuildCheckOut(null, shoppingCart, CurrUser.UserSysNo); //重新保存一次购物车cookie,在购物流程中会对购物车中库存数量不足的赠品进行剔除 ShoppingCart pipelineShoppingCart = (checkOutResult.OrderProcessResult != null && checkOutResult.OrderProcessResult.ReturnData != null && checkOutResult.OrderProcessResult.ReturnData["ShoppingCart"] != null) ? checkOutResult.OrderProcessResult.ReturnData["ShoppingCart"] as ShoppingCart : ShoppingStorageManager.GetShoppingCartFromCookie(); //Key添加CustomerSysNo LoginUser userInfo = UserManager.ReadUserInfo(); shoppingCart.CustomerSysNo = userInfo == null ? 0 : userInfo.UserSysNo; ShoppingStorageManager.SaveShoppingCart(pipelineShoppingCart); return(View(checkOutResult)); }
/// <summary> /// 根据CheckOutResult获取ShoppingCart /// </summary> /// <param name="checkOutResult"></param> /// <returns></returns> private static ShoppingCart GetShoppingCart(CheckOutResult checkOutResult) { ShoppingCart pipelineShoppingCart = (checkOutResult != null && checkOutResult.OrderProcessResult != null && checkOutResult.OrderProcessResult.ReturnData != null && checkOutResult.OrderProcessResult.ReturnData["pipelineShoppingCart"] != null) ? checkOutResult.OrderProcessResult.ReturnData["pipelineShoppingCart"] as ShoppingCart : ShoppingStorageManager.GetShoppingCartFromCookie(); return(pipelineShoppingCart); }
private CheckOutResult BuildCheckout(CheckOutContext context) { if (context == null) { throw new BusinessException("无效的请求"); } ShoppingCart shoppingCart = ShoppingStorageManager.GetShoppingCartFromCreateNew(); //优先从购买商品参数来构建购物车对象 if (!String.IsNullOrWhiteSpace(context.ShoppingItemParam)) { String[] shoppingItemParams = context.ShoppingItemParam.Split(new char[] { '|' }); if (shoppingItemParams.Length == 2) { shoppingCart = ShoppingStorageManager.GetShoppingCartFromParam(shoppingItemParams[0], shoppingItemParams[1]); } } //其次从cookie中来构建购物车对象 if (ShoppingCartIsEmpty(shoppingCart)) { shoppingCart = ShoppingStorageManager.GetShoppingCartFromCookieOrCreateNew(); } var checkOutResult = ShoppingFacade.BuildCheckOut(context, shoppingCart, CurrUser.UserSysNo); //重新保存一次购物车cookie,在购物流程中会对购物车中库存数量不足的赠品进行剔除 //fixbug: 直接购物车下单不应该影响购物车Cookie if (String.IsNullOrWhiteSpace(context.ShoppingItemParam)) { ShoppingCart pipelineShoppingCart = (checkOutResult.OrderProcessResult != null && checkOutResult.OrderProcessResult.ReturnData != null && checkOutResult.OrderProcessResult.ReturnData["ShoppingCart"] != null) ? checkOutResult.OrderProcessResult.ReturnData["ShoppingCart"] as ShoppingCart : ShoppingStorageManager.GetShoppingCartFromCookie(); //Key添加CustomerSysNo LoginUser userInfo = UserManager.ReadUserInfo(); shoppingCart.CustomerSysNo = userInfo == null ? 0 : userInfo.UserSysNo; ShoppingStorageManager.SaveShoppingCart(pipelineShoppingCart); } return(checkOutResult); }
/// <summary> /// 普通商品checkout /// </summary> /// <returns></returns> public ActionResult Checkout() { ShoppingCart shoppingCart = ShoppingStorageManager.GetShoppingCartFromCookieOrCreateNew(); #region 得到新的shoppingCart ShoppingCart shoppingCartNew = ShoppingStorageManager.GetShoppingCartFromCreateNew(); string PackageTypeSingleList = Request.QueryString["PackageTypeSingle"]; string PackageTypeGroupList = Request.QueryString["PackageTypeGroup"]; ShoppingItemGroup ShoppingItem = new ShoppingItemGroup(); if (!string.IsNullOrEmpty(PackageTypeGroupList)) { string[] array = PackageTypeGroupList.Split(','); foreach (var item in array) { int sysNo = 0; if (int.TryParse(item, out sysNo)) { ShoppingItem = shoppingCart.ShoppingItemGroupList.FindAll(m => (m.PackageType.Equals(1) && m.PackageNo.Equals(sysNo)))[0]; shoppingCartNew.ShoppingItemGroupList.Add(ShoppingItem); } } } if (!string.IsNullOrEmpty(PackageTypeSingleList)) { string[] array = PackageTypeSingleList.Split(','); foreach (var item in array) { int sysNo = 0; if (int.TryParse(item, out sysNo)) { ShoppingItem = shoppingCart.ShoppingItemGroupList.FindAll(m => (m.PackageType.Equals(0) && m.ShoppingItemList[0].ProductSysNo.Equals(sysNo)))[0]; shoppingCartNew.ShoppingItemGroupList.Add(ShoppingItem); } } } #endregion if (ShoppingCartIsEmpty(shoppingCartNew)) { return(Redirect(PageHelper.BuildUrl("ShoppingCartRoute"))); } shoppingCartNew.OrderDeleteGiftSysNo = shoppingCart.OrderDeleteGiftSysNo; shoppingCartNew.OrderSelectGiftSysNo = shoppingCart.OrderSelectGiftSysNo; LoginUser userInfo = UserMgr.ReadUserInfo(); shoppingCartNew.CustomerSysNo = userInfo == null ? 0 : userInfo.UserSysNo; var checkOutResult = ShoppingFacade.BuildCheckOut(null, shoppingCartNew, CurrUser.UserSysNo); checkOutResult.PackageTypeGroupList = PackageTypeGroupList; checkOutResult.PackageTypeSingleList = PackageTypeSingleList; int bankAccountPoint = 0; bankAccountPoint = CookieHelper.GetCookie <int>("BankAccountPoint"); //获取网银用户积分 checkOutResult.Customer.BankAccountPoint = bankAccountPoint; ViewBag.IsBankingAccount = bankAccountPoint > 0; //仅当网银积分>0方才显示该区域 //重新保存一次购物车cookie,在购物流程中会对购物车中库存数量不足的赠品进行剔除 ShoppingCart pipelineShoppingCart = (checkOutResult.OrderProcessResult != null && checkOutResult.OrderProcessResult.ReturnData != null && checkOutResult.OrderProcessResult.ReturnData["shoppingCartNew"] != null) ? checkOutResult.OrderProcessResult.ReturnData["shoppingCartNew"] as ShoppingCart : ShoppingStorageManager.GetShoppingCartFromCookie(); ShoppingStorageManager.SaveShoppingCart(pipelineShoppingCart); checkOutResult = CalcGroupBuyTag(checkOutResult); return(View(checkOutResult)); }
public ActionResult AjaxBuildCheckOut(CheckOutContext context) { if (context == null) { throw new BusinessException("无效的请求"); } ShoppingCart shoppingCart = ShoppingStorageManager.GetShoppingCartFromCreateNew(); ShoppingCart shoppingCartNew = ShoppingStorageManager.GetShoppingCartFromCreateNew(); //优先从购买商品参数来构建购物车对象 if (!String.IsNullOrWhiteSpace(context.ShoppingItemParam)) { String[] shoppingItemParams = context.ShoppingItemParam.Split(new char[] { '|' }); if (shoppingItemParams.Length == 2) { shoppingCartNew = ShoppingStorageManager.GetShoppingCartFromParam(shoppingItemParams[0], shoppingItemParams[1]); } } //其次从cookie中来构建购物车对象 if (ShoppingCartIsEmpty(shoppingCartNew)) { shoppingCart = ShoppingStorageManager.GetShoppingCartFromCookieOrCreateNew(); ShoppingItemGroup ShoppingItem = new ShoppingItemGroup(); if (!string.IsNullOrEmpty(context.PackageTypeGroupList)) { string[] array = context.PackageTypeGroupList.Split(','); foreach (var item in array) { int sysNo = 0; if (int.TryParse(item, out sysNo)) { ShoppingItem = shoppingCart.ShoppingItemGroupList.FindAll(m => (m.PackageType.Equals(1) && m.PackageNo.Equals(sysNo)))[0]; shoppingCartNew.ShoppingItemGroupList.Add(ShoppingItem); } } } if (!string.IsNullOrEmpty(context.PackageTypeSingleList)) { string[] array = context.PackageTypeSingleList.Split(','); foreach (var item in array) { int sysNo = 0; if (int.TryParse(item, out sysNo)) { ShoppingItem = shoppingCart.ShoppingItemGroupList.FindAll(m => (m.PackageType.Equals(0) && m.ShoppingItemList[0].ProductSysNo.Equals(sysNo)))[0]; shoppingCartNew.ShoppingItemGroupList.Add(ShoppingItem); } } } } shoppingCartNew.OrderDeleteGiftSysNo = shoppingCart.OrderDeleteGiftSysNo; shoppingCartNew.OrderSelectGiftSysNo = shoppingCart.OrderSelectGiftSysNo; var checkOutResult = ShoppingFacade.BuildCheckOut(context, shoppingCartNew, CurrUser.UserSysNo); //重新保存一次购物车cookie,在购物流程中会对购物车中库存数量不足的赠品进行剔除 //fixbug: 直接购物车下单不应该影响购物车Cookie if (String.IsNullOrWhiteSpace(context.ShoppingItemParam)) { ShoppingCart pipelineShoppingCart = (checkOutResult.OrderProcessResult != null && checkOutResult.OrderProcessResult.ReturnData != null && checkOutResult.OrderProcessResult.ReturnData["shoppingCartNew"] != null) ? checkOutResult.OrderProcessResult.ReturnData["shoppingCartNew"] as ShoppingCart : ShoppingStorageManager.GetShoppingCartFromCookie(); //Key添加CustomerSysNo LoginUser userInfo = UserMgr.ReadUserInfo(); pipelineShoppingCart.CustomerSysNo = userInfo == null ? 0 : userInfo.UserSysNo; ShoppingStorageManager.SaveShoppingCart(pipelineShoppingCart); } checkOutResult = CalcGroupBuyTag(checkOutResult); return(PartialView("_CheckOutEditPanel", checkOutResult)); }