/// <summary> /// 读取购物车 /// </summary> private void ReadCart() { cartList = CartBLL.ReadList(base.UserId); //关联的商品 int count = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var products = ProductBLL.SearchList(1, ids.Count(), new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); //规格 foreach (var cart in cartList) { cart.Product = products.FirstOrDefault(k => k.Id == cart.ProductId) ?? new ProductInfo(); if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); cart.Price = standardRecord.SalePrice; cart.LeftStorageCount = standardRecord.Storage - standardRecord.OrderCount; //规格集合 cart.Standards = ProductTypeStandardBLL.ReadList(Array.ConvertAll <string, int>(standardRecord.StandardIdList.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k))); } else { cart.Price = cart.Product.SalePrice; cart.LeftStorageCount = cart.Product.TotalStorageCount - cart.Product.OrderCount; } } }
/// <summary> /// 页面加载方法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { int attributeClassID = RequestHelper.GetQueryString <int>("ID"); pageAttr = ProductTypeBLL.Read(attributeClassID); if (attributeClassID != int.MinValue) { CheckAdminPower("ReadProductType", PowerCheckType.Single); ProductTypeInfo productType = ProductTypeBLL.Read(attributeClassID); Name.Text = productType.Name; Repeater1.DataSource = ProductTypeAttributeBLL.ReadList(attributeClassID); Repeater1.DataBind(); Repeater2.DataSource = ProductTypeStandardBLL.ReadList(attributeClassID); Repeater2.DataBind(); } if (RequestHelper.GetQueryString <string>("Action") == "GetBrandsByFirstLetter") { GetBrandsByFirstLetter(); } } }
protected void Page_Load(object sender, EventArgs e) { ClearCache(); int attributeClassID = RequestHelper.GetQueryString <int>("AttributeClassID"); productID = RequestHelper.GetQueryString <int>("ProductID"); if (productID > 0) { product = ProductBLL.Read(productID); } int proTypeID = ProductClassBLL.GetProductClassType(attributeClassID); standardList = ProductTypeStandardBLL.ReadList(proTypeID); }
protected void Page_Load(object sender, EventArgs e) { int classId = RequestHelper.GetQueryString <int>("classId"); int productId = RequestHelper.GetQueryString <int>("productId"); var cls = ProductClassBLL.Read(classId); standardList = ProductTypeStandardBLL.ReadList(cls.ProductTypeId); if (productId > 0) { standardRecordList = ProductTypeStandardRecordBLL.ReadList(productId); } }
protected override void PageLoad() { base.PageLoad(); //登录验证 if (base.UserId <= 0) { string redirectUrl = "/Mobile/login.html?RedirectUrl=/mobile/CheckOut.html"; ResponseHelper.Redirect(redirectUrl); ResponseHelper.End(); } //购物车验证 checkCart = HttpUtility.UrlDecode(CookiesHelper.ReadCookieValue("CheckCart")); int[] cartIds = Array.ConvertAll <string, int>(checkCart.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); if (string.IsNullOrEmpty(checkCart) || cartIds.Length < 1) { ResponseHelper.Redirect("/Mobile/cart.html"); ResponseHelper.End(); } //cart list #region cart list //商品清单 cartList = CartBLL.ReadList(base.UserId); cartList = cartList.Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Redirect("/Mobile/cart.html"); ResponseHelper.End(); } //关联的商品 int count = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var products = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); //规格 foreach (var cart in cartList) { cart.Product = products.FirstOrDefault(k => k.Id == cart.ProductId) ?? new ProductInfo(); if (cart.Product.StandardType == 1) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); cart.Price = standardRecord.SalePrice; cart.LeftStorageCount = standardRecord.Storage - OrderDetailBLL.GetOrderCount(cart.ProductId, cart.StandardValueList); //规格集合 cart.Standards = ProductTypeStandardBLL.ReadList(Array.ConvertAll <string, int>(standardRecord.StandardIdList.Split(';'), k => Convert.ToInt32(k))); } else { cart.Price = cart.Product.SalePrice; cart.LeftStorageCount = cart.Product.TotalStorageCount - OrderDetailBLL.GetOrderCount(cart.ProductId, cart.StandardValueList); } if (cart.LeftStorageCount <= 0) { ScriptHelper.AlertFront("您购物车中 " + cart.Product.Name + " 库存不足,请重新选择", "/Mobile/Cart.html"); } } #endregion //收货地址 addressList = UserAddressBLL.ReadList(base.UserId); addressList = addressList.OrderByDescending(k => k.IsDefault).ToList(); singleUnlimitClass.DataSource = RegionBLL.ReadRegionUnlimitClass(); totalProductMoney = cartList.Sum(k => k.BuyCount * k.Price); //用户信息 var user = UserBLL.Read(base.UserId); if (user.Id > 0) { //读取优惠券 List <UserCouponInfo> tempUserCouponList = UserCouponBLL.ReadCanUse(base.UserId); foreach (UserCouponInfo userCoupon in tempUserCouponList) { CouponInfo tempCoupon = CouponBLL.Read(userCoupon.CouponId); if (tempCoupon.UseMinAmount <= totalProductMoney) { userCouponList.Add(userCoupon); } } moneyLeft = UserBLL.ReadUserMore(base.UserId).MoneyLeft; } //读取优惠活动 favorableActivity = FavorableActivityBLL.Read(DateTime.Now, DateTime.Now, 0); if (favorableActivity.Id > 0) { if (("," + favorableActivity.UserGrade + ",").IndexOf("," + base.GradeID.ToString() + ",") > -1 && Sessions.ProductTotalPrice >= favorableActivity.OrderProductMoney) { if (favorableActivity.GiftId != string.Empty) { FavorableActivityGiftSearchInfo giftSearch = new FavorableActivityGiftSearchInfo(); giftSearch.InGiftIds = Array.ConvertAll <string, int>(favorableActivity.GiftId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); giftList = FavorableActivityGiftBLL.SearchList(giftSearch); } } else { favorableActivity = new FavorableActivityInfo(); } } //支付方式列表 payPluginsList = PayPlugins.ReadProductBuyPayPluginsList(); Title = "结算中心"; }
/// <summary> /// 提交数据 /// </summary> protected override void PostBack() { string url = "/Mobile/CheckOut.html"; //检查地址 string consignee = StringHelper.AddSafe(RequestHelper.GetForm <string>("Consignee")); if (consignee == string.Empty) { ScriptHelper.AlertFront("收货人姓名不能为空", url); } string tel = StringHelper.AddSafe(RequestHelper.GetForm <string>("Tel")); string mobile = StringHelper.AddSafe(RequestHelper.GetForm <string>("Mobile")); if (tel == string.Empty && mobile == string.Empty) { ScriptHelper.AlertFront("固定电话,手机必须得填写一个", url); } string zipCode = StringHelper.AddSafe(RequestHelper.GetForm <string>("ZipCode")); string address = StringHelper.AddSafe(RequestHelper.GetForm <string>("Address")); if (address == string.Empty) { ScriptHelper.AlertFront("地址不能为空", url); } //验证配送方式 int shippingID = RequestHelper.GetForm <int>("ShippingID"); if (shippingID == int.MinValue) { ScriptHelper.AlertFront("请选择配送方式", url); } //检查金额 decimal productMoney = 0; #region 计算订单金额 checkCart = HttpUtility.UrlDecode(CookiesHelper.ReadCookieValue("CheckCart")); int[] cartIds = Array.ConvertAll <string, int>(checkCart.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); cartList = CartBLL.ReadList(base.UserId); cartList = cartList.Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Redirect("/Mobile/cart.html"); ResponseHelper.End(); } //关联的商品 int count = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var products = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); //规格与库存判断 foreach (var cart in cartList) { cart.Product = products.FirstOrDefault(k => k.Id == cart.ProductId) ?? new ProductInfo(); if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); int leftStorageCount = standardRecord.Storage - OrderDetailBLL.GetOrderCount(cart.ProductId, cart.StandardValueList); if (leftStorageCount >= cart.BuyCount) { cart.Price = standardRecord.SalePrice; cart.LeftStorageCount = leftStorageCount; //规格集合 cart.Standards = ProductTypeStandardBLL.ReadList(Array.ConvertAll <string, int>(standardRecord.StandardIdList.Split(';'), k => Convert.ToInt32(k))); } else { ScriptHelper.AlertFront("您购物车中 " + cart.Product.Name + " 库存不足,请重新选择", "/Mobile/Cart.html"); } } else { int leftStorageCount = cart.Product.TotalStorageCount - OrderDetailBLL.GetOrderCount(cart.ProductId, cart.StandardValueList); if (leftStorageCount >= cart.BuyCount) { cart.Price = cart.Product.SalePrice; cart.LeftStorageCount = leftStorageCount; } else { ScriptHelper.AlertFront("您购物车中 " + cart.Product.Name + " 库存不足,请重新选择", "/Mobile/Cart.html"); } } } #endregion productMoney = cartList.Sum(k => k.BuyCount * k.Price); decimal favorableMoney = 0; decimal shippingMoney = 0; #region 计算运费与优惠金额 string regionID = RequestHelper.GetForm <string>("RegionID"); //计算配送费用 ShippingInfo shipping = ShippingBLL.Read(shippingID); ShippingRegionInfo shippingRegion = ShippingRegionBLL.SearchShippingRegion(shippingID, regionID); switch (shipping.ShippingType) { case (int)ShippingType.Fixed: shippingMoney = shippingRegion.FixedMoeny; break; case (int)ShippingType.Weight: decimal cartProductWeight = Sessions.ProductTotalWeight; if (cartProductWeight <= shipping.FirstWeight) { shippingMoney = shippingRegion.FirstMoney; } else { shippingMoney = shippingRegion.FirstMoney + Math.Ceiling((cartProductWeight - shipping.FirstWeight) / shipping.AgainWeight) * shippingRegion.AgainMoney; } break; case (int)ShippingType.ProductCount: int cartProductCount = Sessions.ProductBuyCount; shippingMoney = shippingRegion.OneMoeny + (cartProductCount - 1) * shippingRegion.AnotherMoeny; break; default: break; } //计算优惠费用 FavorableActivityInfo favorableActivity = FavorableActivityBLL.Read(DateTime.Now, DateTime.Now, 0); if (favorableActivity.Id > 0) { if (("," + favorableActivity.UserGrade + ",").IndexOf("," + base.GradeID.ToString() + ",") > -1 && Sessions.ProductTotalPrice >= favorableActivity.OrderProductMoney) { switch (favorableActivity.ReduceWay) { case (int)FavorableMoney.Money: favorableMoney += favorableActivity.ReduceMoney; break; case (int)FavorableMoney.Discount: favorableMoney += Sessions.ProductTotalPrice * (10 - favorableActivity.ReduceDiscount) / 10; break; default: break; } if (favorableActivity.ShippingWay == (int)FavorableShipping.Free && ShippingRegionBLL.IsRegionIn(regionID, favorableActivity.RegionId)) { favorableMoney += shippingMoney; } } } #endregion decimal balance = RequestHelper.GetForm <decimal>("Balance"); moneyLeft = UserBLL.ReadUserMore(base.UserId).MoneyLeft; if (balance > moneyLeft) { balance = 0; ScriptHelper.AlertFront("金额有错误,请重新检查", url); } decimal couponMoney = 0; string userCouponStr = RequestHelper.GetForm <string>("UserCoupon"); UserCouponInfo userCoupon = new UserCouponInfo(); if (userCouponStr != string.Empty) { int couponID = 0; if (int.TryParse(userCouponStr.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)[0], out couponID)) { userCoupon = UserCouponBLL.Read(couponID, base.UserId); if (userCoupon.UserId == base.UserId && userCoupon.IsUse == 0) { couponMoney = CouponBLL.Read(userCoupon.CouponId).Money; } } } if (productMoney - favorableMoney + shippingMoney - balance - couponMoney < 0) { ScriptHelper.AlertFront("金额有错误,请重新检查", url); } //支付方式 string payKey = RequestHelper.GetForm <string>("Pay"); PayPluginsInfo payPlugins = PayPlugins.ReadPayPlugins(payKey); //添加订单 OrderInfo order = new OrderInfo(); order.OrderNumber = ShopCommon.CreateOrderNumber(); order.IsActivity = (int)BoolType.False; if (productMoney - favorableMoney + shippingMoney - balance - couponMoney == 0 || payPlugins.IsCod == (int)BoolType.True) { order.OrderStatus = (int)OrderStatus.WaitCheck; } else { order.OrderStatus = (int)OrderStatus.WaitPay; } order.OrderNote = string.Empty; order.ProductMoney = productMoney; order.Balance = balance; order.FavorableMoney = favorableMoney; order.OtherMoney = 0; order.CouponMoney = couponMoney; order.Consignee = consignee; SingleUnlimitClass singleUnlimitClass = new SingleUnlimitClass(); order.RegionId = singleUnlimitClass.ClassID; order.Address = address; order.ZipCode = zipCode; order.Tel = tel; if (base.UserId == 0) { order.Email = StringHelper.AddSafe(RequestHelper.GetForm <string>("Email")); } else { order.Email = CookiesHelper.ReadCookieValue("UserEmail"); } order.Mobile = mobile; order.ShippingId = shippingID; order.ShippingDate = RequestHelper.DateNow; order.ShippingNumber = string.Empty; order.ShippingMoney = shippingMoney; order.PayKey = payKey; order.PayName = payPlugins.Name; order.PayDate = RequestHelper.DateNow;; order.IsRefund = (int)BoolType.False; order.FavorableActivityId = RequestHelper.GetForm <int>("FavorableActivityID"); order.GiftId = RequestHelper.GetForm <int>("GiftID"); order.InvoiceTitle = StringHelper.AddSafe(RequestHelper.GetForm <string>("InvoiceTitle")); order.InvoiceContent = StringHelper.AddSafe(RequestHelper.GetForm <string>("InvoiceContent")); order.UserMessage = StringHelper.AddSafe(RequestHelper.GetForm <string>("UserMessage")); order.AddDate = RequestHelper.DateNow; order.IP = ClientHelper.IP; order.UserId = base.UserId; order.UserName = base.UserName; int orderID = OrderBLL.Add(order); //使用余额 if (balance > 0) { UserAccountRecordInfo userAccountRecord = new UserAccountRecordInfo(); userAccountRecord.Money = -balance; userAccountRecord.Point = 0; userAccountRecord.Date = RequestHelper.DateNow; userAccountRecord.IP = ClientHelper.IP; userAccountRecord.Note = "支付订单:"; userAccountRecord.UserId = base.UserId; userAccountRecord.UserName = base.UserName; UserAccountRecordBLL.Add(userAccountRecord); } //使用优惠券 string strUserCoupon = RequestHelper.GetForm <string>("UserCoupon"); if (couponMoney > 0 && strUserCoupon != "0|0") { userCoupon.IsUse = (int)BoolType.True; userCoupon.OrderId = orderID; UserCouponBLL.Update(userCoupon); } AddOrderProduct(orderID); //更改产品库存订单数量 ProductBLL.ChangeOrderCountByOrder(orderID, ChangeAction.Plus); ResponseHelper.Redirect("/Mobile/Finish-I" + orderID.ToString() + ".html"); }
protected override void PageLoad() { base.PageLoad(); string action = RequestHelper.GetQueryString <string>("Action"); switch (action) { case "Submit": this.Submit(); break; } //登录验证 if (base.UserId <= 0) { string redirectUrl = string.IsNullOrEmpty(isMobile) ? "/user/login.html?RedirectUrl=/checkout.html" : isMobile + "/login.aspx?RedirectUrl=/mobile/CheckOut.aspx"; ResponseHelper.Redirect(redirectUrl); ResponseHelper.End(); } //购物车验证 checkCart = HttpUtility.UrlDecode(CookiesHelper.ReadCookieValue("CheckCart")); int[] cartIds = Array.ConvertAll <string, int>(checkCart.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); if (string.IsNullOrEmpty(checkCart) || cartIds.Length < 1) { ResponseHelper.Redirect("/cart.html"); ResponseHelper.End(); } //用户信息 var user = UserBLL.Read(base.UserId); //cart list #region cart list //商品清单 cartList = CartBLL.ReadList(base.UserId); cartList = cartList.Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Redirect("/cart.html"); ResponseHelper.End(); } //关联的商品 int count = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var products = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); //规格 foreach (var cart in cartList) { cart.Product = products.FirstOrDefault(k => k.Id == cart.ProductId) ?? new ProductInfo(); if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); cart.Price = standardRecord.SalePrice; cart.LeftStorageCount = standardRecord.Storage - standardRecord.OrderCount; //规格集合 cart.Standards = ProductTypeStandardBLL.ReadList(Array.ConvertAll <string, int>(standardRecord.StandardIdList.Split(';'), k => Convert.ToInt32(k))); } else { cart.Price = cart.Product.SalePrice; cart.LeftStorageCount = cart.Product.TotalStorageCount - cart.Product.OrderCount; } } #endregion //收货地址 addressList = UserAddressBLL.ReadList(base.UserId); addressList = addressList.OrderByDescending(k => k.IsDefault).ToList(); singleUnlimitClass.DataSource = RegionBLL.ReadRegionUnlimitClass(); var totalProductMoney = cartList.Sum(k => k.BuyCount * k.Price); //取得图楼卡余额的webservice if (!string.IsNullOrEmpty(user.CardNo) && !string.IsNullOrEmpty(user.CardPwd)) { bool isSuccess; string msg; isSuccess = true; msg = ""; //var account = WebService.Account.GetAccount(user.CardNo, user.CardPwd, out isSuccess, out msg); moneyLeft = 0;// account.Zacc + account.Sacc; if (moneyLeft > 0) { moneyCanUse = moneyLeft > totalProductMoney ? totalProductMoney : moneyLeft; } } /*----------------不可使用积分------------------------------------------------------------------------- * decimal totalRate = (decimal)ShopConfig.ReadConfigInfo().BuyPointTotalRate; * decimal pointRate = (decimal)ShopConfig.ReadConfigInfo().BuyPointMoneyRate; * if (totalRate > 0 && pointRate > 0 && pointLeft > 0) * { * var pointPayMoney = Math.Round(totalProductMoney * totalRate, 2, MidpointRounding.AwayFromZero); * pointCanUse = pointPayMoney * pointRate; * if (pointCanUse > pointLeft) * { * pointCanUse = pointLeft; * } * } * ----------------不可使用积分-------------------------------------------------------------------------*/ //支付方式列表 payPluginsList = PayPlugins.ReadProductBuyPayPluginsList(); Title = "结算中心"; }
/// <summary> /// 提交按钮点击方法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void SubmitButton_Click(object sender, EventArgs e) { #region //添加属性组,即产品类型 int productTypeID = 0; ProductTypeInfo productType = new ProductTypeInfo(); productType.Id = RequestHelper.GetQueryString <int>("ID"); productType.Name = Name.Text; //productType.BrandIds = RequestHelper.GetForm<string>("proBrand").Replace(",",";"); productType.BrandIds = RequestHelper.GetForm <string>("choosedBrnadIds").Replace(";;", ";"); string alertMessage = ShopLanguage.ReadLanguage("AddOK"); if (productType.Id == int.MinValue) { CheckAdminPower("AddProductType", PowerCheckType.Single); productTypeID = ProductTypeBLL.Add(productType); AdminLogBLL.Add(ShopLanguage.ReadLanguage("AddRecord"), ShopLanguage.ReadLanguage("ProductType"), productTypeID); #region //添加相关属性 string[] namelist = RequestHelper.GetForm <string>("NameList").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] valuelist = RequestHelper.GetForm <string>("ValueList").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] typelist = RequestHelper.GetForm <string>("TypeList").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (namelist.Length > 0) { for (int t = 0; t < namelist.Length; t++) { ProductTypeAttributeInfo attribute = new ProductTypeAttributeInfo(); attribute.Name = namelist[t]; var _attribute = ProductTypeAttributeBLL.Read(attribute.Name, productTypeID); if (_attribute.Id > 0) { ScriptHelper.Alert("该属性已存在,请重新输入", RequestHelper.RawUrl); } else { attribute.ProductTypeId = productTypeID; int typeNum = 0; int.TryParse(typelist[t], out typeNum); attribute.InputType = typeNum; attribute.InputValue = valuelist[t].Replace('|', ';'); attribute.OrderId = 0; ProductTypeAttributeBLL.Add(attribute); } } } #endregion #region //添加相关规格 string[] snamelist = RequestHelper.GetForm <string>("SNameList").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] svaluelist = RequestHelper.GetForm <string>("SValueList").Split(','); string[] stypelist = RequestHelper.GetForm <string>("STypeList").Split(','); if (snamelist.Length > 0) { for (int t = 0; t < snamelist.Length; t++) { ProductTypeStandardInfo standard = new ProductTypeStandardInfo(); standard.Name = snamelist[t]; var _standard = ProductTypeStandardBLL.Read(standard.Name, productTypeID); if (_standard.Id > 0) { ScriptHelper.Alert("该规格已存在,请重新输入", RequestHelper.RawUrl); } else { standard.ProductTypeId = productTypeID; int typeNum = 0; int.TryParse(stypelist[t], out typeNum); standard.ValueList = svaluelist[t].Replace('|', ';'); ProductTypeStandardBLL.Add(standard); } } } #endregion } else { CheckAdminPower("UpdateProductType", PowerCheckType.Single); ProductTypeBLL.Update(productType); AdminLogBLL.Add(ShopLanguage.ReadLanguage("UpdateRecord"), ShopLanguage.ReadLanguage("ProductType"), productType.Id); alertMessage = ShopLanguage.ReadLanguage("UpdateOK"); #region //删除原有属性 //ProductTypeAttributeBLL.DeleteList(productType.Id); //添加相关属性 string[] namelist = RequestHelper.GetForm <string>("NameList").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] valuelist = RequestHelper.GetForm <string>("ValueList").Split(','); string[] typelist = RequestHelper.GetForm <string>("TypeList").Split(','); string[] idList = RequestHelper.GetForm <string>("IdList").Split(','); if (namelist.Length > 0) { List <ProductTypeAttributeInfo> productTypeAttrList = ProductTypeAttributeBLL.ReadList(productType.Id); for (int t = 0; t < namelist.Length; t++) { if (idList[t] != "0") { ProductTypeAttributeInfo attribute = ProductTypeAttributeBLL.Read(Convert.ToInt32(idList[t])); attribute.Name = namelist[t]; var _attribute = ProductTypeAttributeBLL.Read(attribute.Name, productType.Id); if (_attribute.Id != attribute.Id && _attribute.Id > 0) { ScriptHelper.Alert("该属性已存在,请重新输入", RequestHelper.RawUrl); } else { attribute.ProductTypeId = productType.Id; int typeNum = 0; int.TryParse(typelist[t], out typeNum); attribute.InputType = typeNum; attribute.InputValue = valuelist[t].Replace('|', ';'); attribute.OrderId = 0; ProductTypeAttributeBLL.Update(attribute); } } else { ProductTypeAttributeInfo attribute = new ProductTypeAttributeInfo(); attribute.Name = namelist[t]; var _attribute = ProductTypeAttributeBLL.Read(attribute.Name, productType.Id); if (_attribute.Id > 0) { ScriptHelper.Alert("该属性已存在,请重新输入", RequestHelper.RawUrl); } else { attribute.ProductTypeId = productType.Id; int typeNum = 0; int.TryParse(typelist[t], out typeNum); attribute.InputType = typeNum; attribute.InputValue = valuelist[t].Replace('|', ';'); attribute.OrderId = 0; ProductTypeAttributeBLL.Add(attribute); } } } } #endregion #region //删除原有规格 //ProductTypeStandardBLL.DeleteList(productType.Id); //添加相关规格 string[] snamelist = RequestHelper.GetForm <string>("SNameList").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] svaluelist = RequestHelper.GetForm <string>("SValueList").Split(','); string[] stypelist = RequestHelper.GetForm <string>("STypeList").Split(','); string[] sidList = RequestHelper.GetForm <string>("SIdList").Split(','); if (snamelist.Length > 0) { List <ProductTypeStandardInfo> productTypeStandardList = ProductTypeStandardBLL.ReadList(productType.Id); for (int t = 0; t < snamelist.Length; t++) { if (sidList[t] != "0") { ProductTypeStandardInfo standard = ProductTypeStandardBLL.Read(Convert.ToInt32(sidList[t])); standard.Name = snamelist[t]; var _standard = ProductTypeStandardBLL.Read(standard.Name, productType.Id); if (_standard.Id != standard.Id && _standard.Id > 0) { ScriptHelper.Alert("该规格已存在,请重新输入", RequestHelper.RawUrl); } else { standard.ProductTypeId = productType.Id; standard.ValueList = svaluelist[t].Replace('|', ';'); ProductTypeStandardBLL.Update(standard); } } else { ProductTypeStandardInfo standard = new ProductTypeStandardInfo(); standard.Name = snamelist[t]; var _standard = ProductTypeStandardBLL.Read(standard.Name, productType.Id); if (_standard.Id > 0) { ScriptHelper.Alert("该规格已存在,请重新输入", RequestHelper.RawUrl); } else { standard.ProductTypeId = productType.Id; standard.ValueList = svaluelist[t].Replace('|', ';'); ProductTypeStandardBLL.Add(standard); } } } } #endregion } #endregion ScriptHelper.Alert(alertMessage, RequestHelper.RawUrl); }
/// <summary> /// 页面加载方法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindClassBrandAttributeClassStandardType(); BrandID.Items.Insert(0, new ListItem("请选择", "0")); RelationBrandID.Items.Insert(0, new ListItem("请选择", "0")); AccessoryBrandID.Items.Insert(0, new ListItem("请选择", "0")); string classId = RequestHelper.GetQueryString <string>("classId"); productID = RequestHelper.GetQueryString <int>("ID"); _brandId = RequestHelper.GetQueryString <int>("BrandId"); //ProductClass.DataSource = ProductClassBLL.ReadUnlimitClassList(); if (productID <= 0) //添加商品 { DraftButton.Visible = true; //添加商品可保存草稿 if (string.IsNullOrEmpty(classId)) { Response.Redirect("/admin/productaddinit.aspx"); } else { LastClassID = ProductClassBLL.GetLastClassID(classId); proTypeID = ProductClassBLL.GetProductClassType(LastClassID); ProductTypeInfo aci = ProductTypeBLL.Read(proTypeID); if (aci.Id > 0) { string[] strArray = aci.BrandIds.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); int[] intArray; intArray = Array.ConvertAll <string, int>(strArray, s => int.Parse(s)); productBrandList = ProductBrandBLL.ReadList(intArray); } if (productBrandList.Count > 0) { BrandID.DataSource = productBrandList; BrandID.DataTextField = "Name"; BrandID.DataValueField = "ID"; BrandID.DataBind(); BrandID.Items.Insert(0, new ListItem("请选择", "0")); if (_brandId > 0) { BrandID.Text = _brandId.ToString(); } RelationBrandID.DataSource = productBrandList; RelationBrandID.DataTextField = "Name"; RelationBrandID.DataValueField = "ID"; RelationBrandID.DataBind(); RelationBrandID.Items.Insert(0, new ListItem("请选择", "0")); AccessoryBrandID.DataSource = productBrandList; AccessoryBrandID.DataTextField = "Name"; AccessoryBrandID.DataValueField = "ID"; AccessoryBrandID.DataBind(); AccessoryBrandID.Items.Insert(0, new ListItem("请选择", "0")); } //商品分类对应的属性列表 attributeList = ProductTypeAttributeBLL.ReadList(proTypeID); //商品类型对应的规格列表 standardList = ProductTypeStandardBLL.ReadList(proTypeID); //添加商品时自动查找所属分类的售后服务 Remark.Value = GetProductClassRemark(classId); } } else//修改商品 { CheckAdminPower("ReadProduct", PowerCheckType.Single); DraftButton.Visible = false;//修改商品不可保存草稿 ProductInfo product = ProductBLL.Read(productID); pageProduct = product; //如果修改了分类则标识isupdate if (!string.IsNullOrEmpty(classId) && product.ClassId != classId) { isUpdate = 1; } YejiRatio.Text = product.YejiRatio; Name.Text = product.Name; SellPoint.Text = product.SellPoint; Name.Attributes.Add("style", "color:" + product.Color); color = product.Color; FontStyle.Text = product.FontStyle; ProductNumber.Text = product.ProductNumber; //ProductClass.ClassID = product.ClassId; Keywords.Text = product.Keywords; MarketPrice.Text = product.MarketPrice.ToString(); SendPoint.Text = product.SendPoint.ToString(); Photo.Text = product.Photo; Summary.Text = product.Summary; Introduction.Value = product.Introduction1; Weight.Text = product.Weight.ToString(); GroupPrice.Text = product.GroupPrice.ToString(); GroupQuantity.Text = product.GroupQuantity.ToString(); GroupPhoto.Text = product.GroupPhoto; VirtualOrderCount.Text = product.VirtualOrderCount.ToString(); if (Convert.ToBoolean(product.IsSpecial)) { IsSpecial.Checked = true; } if (Convert.ToBoolean(product.IsNew)) { IsNew.Checked = true; } if (Convert.ToBoolean(product.IsHot)) { IsHot.Checked = true; } if (Convert.ToBoolean(product.IsSale)) { IsSale.Checked = true; } else { IsSale.Checked = false; } if (Convert.ToBoolean(product.IsTop)) { IsTop.Checked = true; } if (Convert.ToBoolean(product.AllowComment)) { AllowComment.Checked = true; } else { AllowComment.Checked = false; } TotalStorageCount.Text = product.TotalStorageCount.ToString(); LastClassID = ProductClassBLL.GetLastClassID(product.ClassId); this.proTypeID = ProductClassBLL.GetProductClassType(LastClassID); //商品分类对应的属性列表 //attributeList = ProductTypeAttributeBLL.JoinAttribute(ProductClassBLL.Read(ProductClassBLL.GetLastClassID(product.ClassId)).ProductTypeId, productID); attributeList = ProductTypeAttributeBLL.JoinAttribute(this.proTypeID, productID); Repeater1.DataSource = attributeList; Repeater1.DataBind(); //商品类型对应的规格列表 standardList = ProductTypeStandardBLL.ReadList(this.proTypeID); standardRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(product.Id, product.StandardType); if (product.StandardType == 1) { if (standardRecordList.Count > 0) { TotalStorageCount.ReadOnly = true; } } if (string.IsNullOrEmpty(classId)) { LastClassID = ProductClassBLL.GetLastClassID(product.ClassId); } else { LastClassID = ProductClassBLL.GetLastClassID(classId); } int proTypeID = ProductClassBLL.GetProductClassType(LastClassID); ProductTypeInfo aci = ProductTypeBLL.Read(proTypeID); if (aci.Id > 0) { string[] strArray = aci.BrandIds.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); int[] intArray; intArray = Array.ConvertAll <string, int>(strArray, s => int.Parse(s)); productBrandList = ProductBrandBLL.ReadList(intArray); } if (productBrandList.Count > 0) { BrandID.DataSource = productBrandList; BrandID.DataTextField = "Name"; BrandID.DataValueField = "ID"; BrandID.DataBind(); BrandID.Items.Insert(0, new ListItem("请选择", "0")); RelationBrandID.DataSource = productBrandList; RelationBrandID.DataTextField = "Name"; RelationBrandID.DataValueField = "ID"; RelationBrandID.DataBind(); RelationBrandID.Items.Insert(0, new ListItem("请选择", "0")); AccessoryBrandID.DataSource = productBrandList; AccessoryBrandID.DataTextField = "Name"; AccessoryBrandID.DataValueField = "ID"; AccessoryBrandID.DataBind(); AccessoryBrandID.Items.Insert(0, new ListItem("请选择", "0")); } if (_brandId > 0) { BrandID.Text = _brandId.ToString(); } else { BrandID.Text = product.BrandId.ToString(); } sendCount = product.SendCount; OrderID.Text = product.OrderId.ToString(); SalePrice.Text = product.SalePrice.ToString(); Units.Text = product.Unit; Introduction_Mobile.Value = product.Introduction1_Mobile; Sub_Title.Text = product.SubTitle; LowerCount.Text = product.LowerCount.ToString(); Remark.Value = product.Remark; BindRelation(product); productPhotoList = ProductPhotoBLL.ReadList(productID, 0); } //userGradeList = UserGradeBLL.JoinUserGrade(productID); } }
protected override void PageLoad() { base.PageLoad(); istop = 1; string action = RequestHelper.GetQueryString <string>("Action"); switch (action) { case "Submit": this.Submit(); break; case "SelectProductFavor": //读取商品优惠 this.SelectProductFavor(); break; case "ReadingGifts": //读取礼品列表 this.ReadingGifts(); break; } //登录验证 if (base.UserId <= 0) { ResponseHelper.Redirect("/user/login.html?RedirectUrl=/checkout.html"); ResponseHelper.End(); } if (base._UserType == (int)UserType.Provider) { ResponseHelper.Redirect("/"); ResponseHelper.End(); } //购物车验证 checkCart = HttpUtility.UrlDecode(CookiesHelper.ReadCookieValue("CheckCart")); int[] cartIds = Array.ConvertAll <string, int>(checkCart.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); if (string.IsNullOrEmpty(checkCart) || cartIds.Length < 1) { ResponseHelper.Redirect("/cart.html"); ResponseHelper.End(); } //用户信息 var user = UserBLL.ReadUserMore(base.UserId); //剩余积分 pointLeft = user.PointLeft; //cart list #region cart list //商品清单 cartList = CartBLL.ReadList(base.UserId); cartList = cartList.Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Redirect("/cart.html"); ResponseHelper.End(); } //关联的商品 int count = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var productList = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); //规格 foreach (var cart in cartList) { cart.Product = productList.FirstOrDefault(k => k.Id == cart.ProductId) ?? new ProductInfo(); if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); cart.LeftStorageCount = standardRecord.Storage - standardRecord.OrderCount; cart.Price = ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID); //规格集合 if (!string.IsNullOrEmpty(standardRecord.StandardIdList)) { cart.Standards = ProductTypeStandardBLL.ReadList(Array.ConvertAll <string, int>(standardRecord.StandardIdList.Split(';'), k => Convert.ToInt32(k))); } } else { cart.Price = ProductBLL.GetCurrentPrice(cart.Product.SalePrice, base.GradeID); cart.LeftStorageCount = cart.Product.TotalStorageCount - cart.Product.OrderCount; } //检查库存 if (cart.BuyCount > cart.LeftStorageCount) { ScriptHelper.AlertFront("商品[" + cart.ProductName + "]库存不足,无法购买"); ResponseHelper.End(); } } #endregion //收货地址 addressList = UserAddressBLL.ReadList(base.UserId); addressList = addressList.OrderByDescending(k => k.IsDefault).ToList(); singleUnlimitClass.DataSource = RegionBLL.ReadRegionUnlimitClass(); var totalProductMoney = cartList.Sum(k => k.BuyCount * k.Price); //支付方式列表 payPluginsList = PayPlugins.ReadProductBuyPayPluginsList(); #region 优惠券 if (user.Id > 0) { //读取优惠券 List <UserCouponInfo> tempUserCouponList = UserCouponBLL.ReadCanUse(base.UserId); foreach (UserCouponInfo userCoupon in tempUserCouponList) { CouponInfo tempCoupon = CouponBLL.Read(userCoupon.CouponId); if (tempCoupon.UseMinAmount <= totalProductMoney) { userCouponList.Add(userCoupon); } } } #endregion #region 获取符合条件(时间段,用户等级,金额限制)的商品分类优惠活动列表,默认使用第一个 var tmpfavorableActivityList = FavorableActivityBLL.ReadList(DateTime.Now, DateTime.Now).Where <FavorableActivityInfo>(f => f.Type == (int)FavorableType.ProductClass && ("," + f.UserGrade + ",").IndexOf("," + base.GradeID.ToString() + ",") > -1).ToList(); foreach (var favorable in tmpfavorableActivityList) { decimal tmoney = 0; //tmoney = cartList.Where(c => c.Product.ClassId.IndexOf(favorable.ClassIds) > -1).Sum(k => k.BuyCount * k.Price); foreach (var tmpcart in cartList) { if (tmpcart.Product.ClassId.IndexOf(favorable.ClassIds) > -1) { if (!string.IsNullOrEmpty(tmpcart.StandardValueList)) { //使用规格的库存 var standardRecord = ProductTypeStandardRecordBLL.Read(tmpcart.ProductId, tmpcart.StandardValueList); tmpcart.LeftStorageCount = standardRecord.Storage - standardRecord.OrderCount; tmpcart.Price = ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID); tmoney += tmpcart.Price * tmpcart.BuyCount; } else { tmpcart.Price = ProductBLL.GetCurrentPrice(tmpcart.Product.SalePrice, base.GradeID); tmoney += tmpcart.Price * tmpcart.BuyCount; } } } if (tmoney >= favorable.OrderProductMoney) { productFavorableActivityList.Add(favorable); } } #endregion Title = "结算中心"; }
/// <summary> /// 提交数据 /// </summary> protected override void PostBack() { string url = "/Mobile/CheckOut.html"; //检查地址 string consignee = StringHelper.AddSafe(RequestHelper.GetForm <string>("Consignee")); if (consignee == string.Empty) { ScriptHelper.AlertFront("收货人姓名不能为空", url); } string tel = StringHelper.AddSafe(RequestHelper.GetForm <string>("Tel")); string mobile = StringHelper.AddSafe(RequestHelper.GetForm <string>("Mobile")); if (tel == string.Empty && mobile == string.Empty) { ScriptHelper.AlertFront("固定电话,手机必须得填写一个", url); } string zipCode = StringHelper.AddSafe(RequestHelper.GetForm <string>("ZipCode")); string address = StringHelper.AddSafe(RequestHelper.GetForm <string>("Address")); if (address == string.Empty) { ScriptHelper.AlertFront("地址不能为空", url); } //验证配送方式 int shippingID = RequestHelper.GetForm <int>("ShippingID"); if (shippingID == int.MinValue) { ScriptHelper.AlertFront("请选择配送方式", url); } //检查支付方式 string payKey = RequestHelper.GetForm <string>("Pay"); if (string.IsNullOrEmpty(payKey)) { ScriptHelper.AlertFront("请选择付款方式", url); } PayPluginsInfo payPlugins = PayPlugins.ReadPayPlugins(payKey); //检查金额 decimal productMoney = 0, pointMoney = 0; var user = UserBLL.ReadUserMore(base.UserId); #region 计算订单金额 checkCart = HttpUtility.UrlDecode(CookiesHelper.ReadCookieValue("CheckCart")); int[] cartIds = Array.ConvertAll <string, int>(checkCart.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); cartList = CartBLL.ReadList(base.UserId); cartList = cartList.Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Redirect("/Mobile/cart.html"); ResponseHelper.End(); } //关联的商品 int count = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var products = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); //规格与库存判断 foreach (var cart in cartList) { cart.Product = products.FirstOrDefault(k => k.Id == cart.ProductId) ?? new ProductInfo(); if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); int leftStorageCount = standardRecord.Storage - OrderDetailBLL.GetOrderCount(cart.ProductId, cart.StandardValueList); if (leftStorageCount >= cart.BuyCount) { cart.Price = standardRecord.SalePrice; cart.LeftStorageCount = leftStorageCount; //规格集合 cart.Standards = ProductTypeStandardBLL.ReadList(Array.ConvertAll <string, int>(standardRecord.StandardIdList.Split(';'), k => Convert.ToInt32(k))); } else { ScriptHelper.AlertFront("您购物车中 " + cart.Product.Name + " 库存不足,请重新选择", "/Mobile/Cart.html"); } } else { int leftStorageCount = cart.Product.TotalStorageCount - OrderDetailBLL.GetOrderCount(cart.ProductId, cart.StandardValueList); if (leftStorageCount >= cart.BuyCount) { cart.Price = cart.Product.SalePrice; cart.LeftStorageCount = leftStorageCount; } else { ScriptHelper.AlertFront("您购物车中 " + cart.Product.Name + " 库存不足,请重新选择", "/Mobile/Cart.html"); } } } #endregion productMoney = cartList.Sum(k => k.BuyCount * k.Price); decimal shippingMoney = 0; //订单优惠活动 var favor = new FavorableActivityInfo { Id = RequestHelper.GetForm <int>("FavorableActivity") }; //商品优惠 var productfavor = new FavorableActivityInfo { Id = RequestHelper.GetForm <int>("ProductFavorableActivity") }; #region 计算运费 string regionID = RequestHelper.GetForm <string>("RegionID"); //计算配送费用 ShippingInfo shipping = ShippingBLL.Read(shippingID); ShippingRegionInfo shippingRegion = ShippingRegionBLL.SearchShippingRegion(shippingID, regionID); switch (shipping.ShippingType) { case (int)ShippingType.Fixed: shippingMoney = shippingRegion.FixedMoeny; break; case (int)ShippingType.Weight: decimal cartProductWeight = Sessions.ProductTotalWeight; if (cartProductWeight <= shipping.FirstWeight) { shippingMoney = shippingRegion.FirstMoney; } else { shippingMoney = shippingRegion.FirstMoney + Math.Ceiling((cartProductWeight - shipping.FirstWeight) / shipping.AgainWeight) * shippingRegion.AgainMoney; } break; case (int)ShippingType.ProductCount: int cartProductCount = Sessions.ProductBuyCount; shippingMoney = shippingRegion.OneMoeny + (cartProductCount - 1) * shippingRegion.AnotherMoeny; break; default: break; } #endregion //decimal balance = RequestHelper.GetForm<decimal>("Balance"); //moneyLeft = UserBLL.ReadUserMore(base.UserId).MoneyLeft; //if (balance > moneyLeft) //{ // balance = 0; // ScriptHelper.AlertFront("金额有错误,请重新检查", url); //} #region 如果开启了:使用积分抵现,计算积分抵现的现金金额 //输入的兑换积分数 var costPoint = RequestHelper.GetForm <int>("costPoint"); if (ShopConfig.ReadConfigInfo().EnablePointPay == 1) { if (costPoint > user.PointLeft || costPoint < 0) { ResponseHelper.Write("error|输入的兑换积分数[" + costPoint + "]错误,请检查|"); ResponseHelper.End(); } if (costPoint > 0) { var PointToMoneyRate = ShopConfig.ReadConfigInfo().PointToMoney; pointMoney = costPoint * (decimal)PointToMoneyRate / 100; } } #endregion #region 优惠券 decimal couponMoney = 0; string userCouponStr = RequestHelper.GetForm <string>("UserCoupon"); UserCouponInfo userCoupon = new UserCouponInfo(); if (userCouponStr != string.Empty) { int couponID = 0; if (int.TryParse(userCouponStr.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)[0], out couponID)) { userCoupon = UserCouponBLL.Read(couponID, base.UserId); if (userCoupon.UserId == base.UserId && userCoupon.IsUse == 0) { CouponInfo tempCoupon = CouponBLL.Read(userCoupon.CouponId); if (tempCoupon.UseMinAmount <= productMoney) { couponMoney = CouponBLL.Read(userCoupon.CouponId).Money; } else { ScriptHelper.AlertFront("结算金额小于该优惠券要求的最低消费的金额", url); } } } } #endregion #region 结算商品优惠金额 decimal productfavorableMoney = 0; var theFavor = FavorableActivityBLL.Read(productfavor.Id); if (theFavor.Id > 0) { decimal tmoney = 0; foreach (var tmpcart in cartList) { tmpcart.Product = products.FirstOrDefault(k => k.Id == tmpcart.ProductId) ?? new ProductInfo(); if (tmpcart.Product.ClassId.IndexOf(theFavor.ClassIds) > -1) { if (!string.IsNullOrEmpty(tmpcart.StandardValueList)) { //使用规格的库存 var standardRecord = ProductTypeStandardRecordBLL.Read(tmpcart.ProductId, tmpcart.StandardValueList); tmpcart.LeftStorageCount = standardRecord.Storage - standardRecord.OrderCount; tmpcart.Price = ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID); tmoney += tmpcart.Price * tmpcart.BuyCount; } else { tmpcart.Price = ProductBLL.GetCurrentPrice(tmpcart.Product.SalePrice, base.GradeID); tmoney += tmpcart.Price * tmpcart.BuyCount; } } } switch (theFavor.ReduceWay) { case (int)FavorableMoney.Money: productfavorableMoney += theFavor.ReduceMoney; break; case (int)FavorableMoney.Discount: productfavorableMoney += tmoney * (100 - theFavor.ReduceDiscount) / 100; break; default: break; } } #endregion #region 计算订单优惠活动金额 decimal favorableMoney = 0; favor = FavorableActivityBLL.Read(favor.Id); if (favor.Id > 0) { if (("," + favor.UserGrade + ",").IndexOf("," + base.GradeID.ToString() + ",") > -1 && productMoney >= favor.OrderProductMoney) { switch (favor.ReduceWay) { case (int)FavorableMoney.Money: favorableMoney += favor.ReduceMoney; break; case (int)FavorableMoney.Discount: favorableMoney += productMoney * (100 - favor.ReduceDiscount) / 100; break; default: break; } if (favor.ShippingWay == (int)FavorableShipping.Free && ShippingRegionBLL.IsRegionIn(regionID, favor.RegionId)) { favorableMoney += shippingMoney; } } } #endregion /*-----------应付总价---------------------------------------------------*/ decimal payMoney = productMoney + shippingMoney - couponMoney - pointMoney - favorableMoney - productfavorableMoney; //if (productMoney - favorableMoney + shippingMoney - balance - couponMoney <= 0) if (payMoney < 0) { ScriptHelper.AlertFront("金额有错误,请重新检查", url); } //添加订单 OrderInfo order = new OrderInfo(); order.OrderNumber = ShopCommon.CreateOrderNumber(); order.IsActivity = (int)BoolType.False; if (payMoney == 0 || payPlugins.IsCod == (int)BoolType.True) { order.OrderStatus = (int)OrderStatus.WaitCheck; } else { order.OrderStatus = (int)OrderStatus.WaitPay; } order.OrderNote = string.Empty; order.ProductMoney = productMoney; order.Balance = 0; order.FavorableMoney = favorableMoney + productfavorableMoney; order.OtherMoney = 0; order.CouponMoney = couponMoney; order.Point = costPoint; order.PointMoney = pointMoney; order.Consignee = consignee; SingleUnlimitClass singleUnlimitClass = new SingleUnlimitClass(); order.RegionId = singleUnlimitClass.ClassID; order.Address = address; order.ZipCode = zipCode; order.Tel = tel; if (base.UserId == 0) { order.Email = StringHelper.AddSafe(RequestHelper.GetForm <string>("Email")); } else { order.Email = CookiesHelper.ReadCookieValue("UserEmail"); } order.Mobile = mobile; order.ShippingId = shippingID; order.ShippingDate = RequestHelper.DateNow; order.ShippingNumber = string.Empty; order.ShippingMoney = shippingMoney; order.PayKey = payKey; order.PayName = payPlugins.Name; order.PayDate = RequestHelper.DateNow;; order.IsRefund = (int)BoolType.False; order.FavorableActivityId = RequestHelper.GetForm <int>("FavorableActivityID"); order.GiftId = RequestHelper.GetForm <int>("GiftID"); order.InvoiceTitle = StringHelper.AddSafe(RequestHelper.GetForm <string>("InvoiceTitle")); order.InvoiceContent = StringHelper.AddSafe(RequestHelper.GetForm <string>("InvoiceContent")); order.UserMessage = StringHelper.AddSafe(RequestHelper.GetForm <string>("UserMessage")); order.AddDate = RequestHelper.DateNow; order.IP = ClientHelper.IP; order.UserId = base.UserId; order.UserName = base.UserName; order.GiftMessige = RequestHelper.GetForm <string>("GiftMessige"); order.IsNoticed = 0; int orderID = OrderBLL.Add(order); //使用余额 /*if (balance > 0) * { * UserAccountRecordInfo userAccountRecord = new UserAccountRecordInfo(); * userAccountRecord.Money = -balance; * userAccountRecord.Point = 0; * userAccountRecord.Date = RequestHelper.DateNow; * userAccountRecord.IP = ClientHelper.IP; * userAccountRecord.Note = "支付订单:"; * userAccountRecord.UserId = base.UserId; * userAccountRecord.UserName = base.UserName; * UserAccountRecordBLL.Add(userAccountRecord); * }*/ #region 减少积分 if (ShopConfig.ReadConfigInfo().EnablePointPay == 1 && costPoint > 0) { //减少积分 UserAccountRecordInfo uarInfo = new UserAccountRecordInfo(); uarInfo.RecordType = (int)AccountRecordType.Point; uarInfo.UserId = base.UserId; uarInfo.UserName = base.UserName; uarInfo.Note = "支付订单:" + order.OrderNumber; uarInfo.Point = -costPoint; uarInfo.Money = 0; uarInfo.Date = DateTime.Now; uarInfo.IP = ClientHelper.IP; UserAccountRecordBLL.Add(uarInfo); } #endregion #region 使用优惠券 string strUserCoupon = RequestHelper.GetForm <string>("UserCoupon"); if (couponMoney > 0 && !string.IsNullOrEmpty(strUserCoupon) && strUserCoupon != "0|0") { userCoupon.IsUse = (int)BoolType.True; userCoupon.OrderId = orderID; UserCouponBLL.Update(userCoupon); } #endregion AddOrderProduct(orderID); //更改产品库存订单数量 ProductBLL.ChangeOrderCountByOrder(orderID, ChangeAction.Plus); /*----------------------------------------------------------------------*/ ResponseHelper.Redirect("/Mobile/Finish-I" + orderID.ToString() + ".html"); }