private void CheckStore() { string result = "0"; int id = RequestHelper.GetQueryString <int>("productID"); int buyCount = RequestHelper.GetQueryString <int>("buyCount"); string valueList = StringHelper.AddSafe(RequestHelper.GetQueryString <string>("valueList")); int standardType = RequestHelper.GetQueryString <int>("standardType"); if (standardType == 1) { List <ProductTypeStandardRecordInfo> standRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(id, 1); foreach (var item in standRecordList) { if (item.ValueList.Trim() == valueList.Trim()) { if (item.Storage >= buyCount) { result = "1"; } break; } } } else { ProductInfo product = ProductBLL.Read(id); if (product.TotalStorageCount - product.OrderCount >= buyCount) { result = "1"; } } Response.Write(result); }
public ActionResult CheckStore() { string result = "0"; int id = RequestHelper.GetForm <int>("productID"); int buyCount = RequestHelper.GetForm <int>("buyCount"); string valueList = StringHelper.AddSafe(RequestHelper.GetForm <string>("valueList")); int standardType = RequestHelper.GetForm <int>("standardType"); ProductInfo product = ProductBLL.Read(id); if (standardType == 1) { List <ProductTypeStandardRecordInfo> standRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(id, 1); foreach (var item in standRecordList) { if (item.ValueList.Trim() == valueList.Trim()) { if ((product.UnlimitedStorage != 1 && item.Storage - item.OrderCount >= buyCount) || (product.UnlimitedStorage == 1 && item.Storage - OrderBLL.GetProductOrderCountDaily(product.Id, product.StandardType, DateTime.Now, item.ValueList.Trim()) >= buyCount)) { result = "1"; } break; } } } else { if ((product.UnlimitedStorage != 1 && product.TotalStorageCount - product.OrderCount >= buyCount) || (product.UnlimitedStorage == 1 && product.TotalStorageCount - OrderBLL.GetProductOrderCountDaily(product.Id, product.StandardType, DateTime.Now) >= buyCount)) { result = "1"; } } return(Content(result)); }
/// <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="product"></param> protected void HanderProductStandard(ProductInfo product) { string productIDList = string.Empty; if (product.StandardType == (int)ProductStandardType.Group) { productIDList = "," + RequestHelper.GetForm <string>("Product") + ","; productIDList = productIDList.Replace(",0,", "," + product.Id.ToString() + ","); productIDList = productIDList.Substring(1, productIDList.Length - 2); } ProductBLL.UpdateProductStandardType(productIDList, product.StandardType, product.Id); if (product.Id > 0) { ProductTypeStandardRecordBLL.DeleteByProductID(product.Id.ToString()); } if (RequestHelper.GetForm <string>("isOpenStandard") == "1") { string standardIDList = RequestHelper.GetForm <string>("StandardIDList"); if (standardIDList != string.Empty) { string[] productIDArray = productIDList.Split(','); string[] valueArr = RequestHelper.GetForm <string>("sValueList").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] marketPriceArr = RequestHelper.GetForm <string>("sMarketPrice").Split(','); string[] salePriceArr = RequestHelper.GetForm <string>("sSalePrice").Split(','); string[] storageArr = RequestHelper.GetForm <string>("sStorage").Split(','); string[] productNumberArr = RequestHelper.GetForm <string>("sProductNumber").Split(','); for (int i = 0; i < valueArr.Length; i++) { ProductTypeStandardRecordInfo standardRecord = new ProductTypeStandardRecordInfo(); if (product.StandardType == (int)ProductStandardType.Group) { standardRecord.GroupTag = productIDList; standardRecord.ProductId = Convert.ToInt32(productIDArray[i]); standardRecord.SalePrice = 0; standardRecord.SalePrice = 0; standardRecord.Storage = 0; standardRecord.ProductCode = string.Empty; } else { standardRecord.ProductId = product.Id; standardRecord.MarketPrice = Convert.ToDecimal(marketPriceArr[i]); standardRecord.SalePrice = Convert.ToDecimal(salePriceArr[i]); standardRecord.Storage = Convert.ToInt32(storageArr[i]); standardRecord.ProductCode = productNumberArr[i]; } standardRecord.StandardIdList = standardIDList.Substring(0, standardIDList.Length - 1); standardRecord.ValueList = valueArr[i].Replace("|", ";"); ProductTypeStandardRecordBLL.Add(standardRecord); } } } }
/// <summary> /// 修改商品库存 /// </summary> protected void ModifyStorage() { string result = string.Empty; bool flag = true; int productId = RequestHelper.GetQueryString <int>("productId"); int totalStorage = RequestHelper.GetQueryString <int>("totalStorage"); string valueList = Server.UrlDecode(RequestHelper.GetQueryString <string>("valueList")); string standIdList = RequestHelper.GetQueryString <string>("standIdList"); string storageList = RequestHelper.GetQueryString <string>("storageList"); //无规格或产品组规格 修改一口价 if (totalStorage < 0) { flag = false; result = "总库存填写不规范"; } if (flag) { if (productId > 0) { var product = ProductBLL.Read(productId); if (product.StandardType == (int)ProductStandardType.Single) {//如果是单产品规格 string[] valueArr = valueList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] storageArr = storageList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < valueArr.Length; i++) { ProductTypeStandardRecordInfo standardRecord = new ProductTypeStandardRecordInfo(); standardRecord.ProductId = product.Id; standardRecord.ValueList = valueArr[i]; standardRecord.Storage = Convert.ToInt32(storageArr[i]); ProductTypeStandardRecordBLL.UpdateStorage(standardRecord); } product.TotalStorageCount = ProductTypeStandardRecordBLL.GetSumStorageByProduct(productId); ProductBLL.Update(product); result = product.TotalStorageCount.ToString(); } else { //无规格或产品组规格 修改总库存 product.TotalStorageCount = totalStorage; ProductBLL.Update(product); result = product.TotalStorageCount.ToString(); } } else { flag = false; result = "参数错误"; } } Response.Clear(); ResponseHelper.Write(JsonConvert.SerializeObject(new { flag = flag, msg = result })); Response.End(); }
//计算商品优惠金额 protected void SelectProductFavor() { decimal favorMoney = 0; int favorId = RequestHelper.GetQueryString <int>("favorId"); if (favorId > 0) { var theFavor = FavorableActivityBLL.Read(favorId); 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(); //关联的商品 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); decimal tmoney = 0; foreach (var tmpcart in cartList) { tmpcart.Product = productList.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: favorMoney += theFavor.ReduceMoney; break; case (int)FavorableMoney.Discount: favorMoney += tmoney * (100 - theFavor.ReduceDiscount) / 100; break; default: break; } ResponseHelper.Write("ok|" + Math.Round(favorMoney, 2)); } ResponseHelper.End(); }
private void GetStandardPrice() { int id = RequestHelper.GetQueryString <int>("id"); string valueList = RequestHelper.GetQueryString <string>("value"); var entity = ProductTypeStandardRecordBLL.Read(id, valueList); ResponseHelper.Write(entity.SalePrice.ToString("C") + "|" + (entity.Storage - entity.OrderCount)); ResponseHelper.End(); }
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); } }
private void GetProductPriceAndStore() { string result = "no"; int id = RequestHelper.GetQueryString <int>("productID"); string valueList = StringHelper.AddSafe(RequestHelper.GetQueryString <string>("valueList")); List <ProductTypeStandardRecordInfo> standRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(id, 1); foreach (var item in standRecordList) { if (item.ValueList.Trim() == valueList.Trim()) { result = item.SalePrice + "|" + item.MarketPrice + "|" + item.Storage + "|" + item.Photo; break; } } Response.Write(result); }
protected override void PageLoad() { base.PageLoad(); int id = RequestHelper.GetQueryString <int>("id"); product = ProductBLL.Read(id); if (product.IsSale == (int)BoolType.False) { ScriptHelper.AlertFront("该产品未上市,不能查看"); } //如果为移动端单独设置了内容,则取移动端内容 if (!string.IsNullOrEmpty(product.Introduction1_Mobile)) { product.Introduction1 = product.Introduction1_Mobile; } if (!string.IsNullOrEmpty(product.Introduction2_Mobile)) { product.Introduction2 = product.Introduction2_Mobile; } if (!string.IsNullOrEmpty(product.Introduction3_Mobile)) { product.Introduction3 = product.Introduction3_Mobile; } //更新查看数量 Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("ViewCount", product.ViewCount + 1); ProductBLL.UpdatePart(ProductInfo.TABLENAME, dict, id); if (product.BrandId > 0) { productBrand = ProductBrandBLL.Read(product.BrandId); } productPhotoList = ProductPhotoBLL.ReadList(id, 0); attributeRecords = ProductTypeAttributeRecordBLL.ReadList(id); standardRecords = ProductTypeStandardRecordBLL.ReadList(id); //搜索优化 Title = product.Name; Keywords = string.IsNullOrEmpty(product.Keywords) ? product.Name : product.Keywords; Description = string.IsNullOrEmpty(product.Summary) ? StringHelper.Substring(StringHelper.KillHTML(product.Introduction1), 200) : product.Summary; }
public ActionResult GetProductPriceAndStore() { int userGrade = UserGradeBLL.ReadByMoney(0).Id; int uid = RequestHelper.GetForm <int>("uid"); var user = UserBLL.ReadUserMore(uid); if (user != null && user.Id > 0) { userGrade = UserGradeBLL.ReadByMoney(user.MoneyUsed).Id; } int id = RequestHelper.GetForm <int>("productID"); string valueList = StringHelper.AddSafe(RequestHelper.GetForm <string>("valueList")); var product = ProductBLL.Read(id); List <ProductTypeStandardRecordInfo> standRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(id, product.StandardType); foreach (var item in standRecordList) { if (item.ValueList.Trim() == valueList.Trim()) { return(Json(new { price = ProductBLL.GetCurrentPrice(item.SalePrice, userGrade), markprice = ProductBLL.GetCurrentPrice(item.MarketPrice, userGrade), groupprice = item.GroupPrice, totalstorage = item.Storage, //leftstore = (item.Storage - item.OrderCount), ordercount = product.UnlimitedStorage == 1 ? OrderBLL.GetProductOrderCountDaily(product.Id, product.StandardType, DateTime.Now, item.ValueList.Trim()) : item.OrderCount, //是否启用不限库存,分别计算销量 leftstore = (item.Storage - (product.UnlimitedStorage == 1 ? OrderBLL.GetProductOrderCountDaily(product.Id, product.StandardType, DateTime.Now, item.ValueList.Trim()) : item.OrderCount)), img = item.Photo, unlimitedstorage = product.UnlimitedStorage })); } } return(Content("no")); }
private void SelectShipping() { int shippingId = RequestHelper.GetQueryString <int>("shippingId"); //if (shippingId <= 0) { // ResponseHelper.Write("error|请选择配送方式"); // ResponseHelper.End(); //} string regionId = StringHelper.AddSafe(RequestHelper.GetQueryString <string>("regionId")); int favorId = RequestHelper.GetQueryString <int>("favorId"); string 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.Write("error|请选择需要购买的商品"); ResponseHelper.End(); } //计算配送费用 List <CartInfo> cartList = CartBLL.ReadList(base.UserId).Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Write("error|请选择需要购买的商品"); ResponseHelper.End(); } int count = 0; //购物车结算金额 decimal cartTotalPrice = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var productList = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); cartList.ForEach(k => k.Product = productList.FirstOrDefault(k2 => k2.Id == k.ProductId) ?? new ProductInfo()); foreach (var cart in cartList) { if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); cartTotalPrice += ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID) * cart.BuyCount; } else { cartTotalPrice += ProductBLL.GetCurrentPrice(cart.Product.SalePrice, base.GradeID) * cart.BuyCount; } } //首先根据ShopId分组,根据供应商的不同来分别计算运费 //然后将分拆后的供应商商品,按单个商品独立计算运费(相同商品购买多个则叠加计算) ShippingInfo shipping = ShippingBLL.Read(shippingId); ShippingRegionInfo shippingRegion = ShippingRegionBLL.SearchShippingRegion(shippingId, regionId); decimal shippingMoney = ShippingRegionBLL.ReadShippingMoney(shippingId, regionId, cartList); //var shopIds = cartList.GroupBy(k => k.Product.ShopId).Select(k => k.Key).ToList(); //foreach (var shopId in shopIds) //{ // var shopCartList = cartList.Where(k => k.Product.ShopId == shopId).ToList(); // foreach (var shopCartSplit in shopCartList) // { // shippingMoney += ShippingRegionBLL.ReadShippingMoney(shipping, shippingRegion, shopCartSplit); // } //} decimal favorableMoney = 0; #region 计算优惠费用 if (favorId > 0) { var theFavorable = FavorableActivityBLL.Read(favorId); if (("," + theFavorable.UserGrade + ",").IndexOf("," + base.GradeID.ToString() + ",") > -1 && cartTotalPrice >= theFavorable.OrderProductMoney) { switch (theFavorable.ReduceWay) { case (int)FavorableMoney.Money: favorableMoney += theFavorable.ReduceMoney; break; case (int)FavorableMoney.Discount: favorableMoney += cartTotalPrice * (100 - theFavorable.ReduceDiscount) / 100; break; default: break; } if (theFavorable.ShippingWay == (int)FavorableShipping.Free && ShippingRegionBLL.IsRegionIn(regionId, theFavorable.RegionId)) { favorableMoney += shippingMoney; } } } #endregion ResponseHelper.Write("ok|" + Math.Round(shippingMoney, 2).ToString() + "|" + Math.Round(favorableMoney, 2)); ResponseHelper.End(); }
/// <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); } }
private void Submit() { /*-----------重新验证选择的商品------------------------------------------*/ checkCart = StringHelper.AddSafe(RequestHelper.GetForm <string>("CheckCart")); int[] cartIds = Array.ConvertAll <string, int>(checkCart.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); string checkCartCookies = HttpUtility.UrlDecode(CookiesHelper.ReadCookieValue("CheckCart")); if (checkCart != checkCartCookies) { ResponseHelper.Write("error|购买商品发生了变化,请重新提交|/cart.html"); ResponseHelper.End(); } if (string.IsNullOrEmpty(checkCart) || cartIds.Length < 1) { ResponseHelper.Write("error|请选择需要购买的商品|/cart.html"); ResponseHelper.End(); } /*----------------------------------------------------------------------*/ /*-----------读取购物车清单---------------------------------------------*/ List <CartInfo> cartList = CartBLL.ReadList(base.UserId); cartList = cartList.Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count <= 0) { ResponseHelper.Write("error|请选择需要购买的商品|/cart.html"); ResponseHelper.End(); } /*----------------------------------------------------------------------*/ /*-----------必要性检查:收货地址,配送方式,支付方式-------------------*/ var address = new UserAddressInfo { Id = RequestHelper.GetForm <int>("address_id") }; var shipping = new ShippingInfo { Id = RequestHelper.GetForm <int>("ShippingId") }; var pay = new PayPluginsInfo { Key = StringHelper.AddSafe(RequestHelper.GetForm <string>("pay")) }; //订单优惠活动 var favor = new FavorableActivityInfo { Id = RequestHelper.GetForm <int>("FavorableActivity") }; //商品优惠 var productfavor = new FavorableActivityInfo { Id = RequestHelper.GetForm <int>("ProductFavorableActivity") }; bool reNecessaryCheck = false; doReNecessaryCheck: if (address.Id < 1) { ResponseHelper.Write("error|请选择收货地址|"); ResponseHelper.End(); } if (shipping.Id < 1) { ResponseHelper.Write("error|请选择配送方式|"); ResponseHelper.End(); } if (string.IsNullOrEmpty(pay.Key)) { ResponseHelper.Write("error|请选择支付方式|"); ResponseHelper.End(); } //读取数据库中的数据,进行重复验证 if (!reNecessaryCheck) { address = UserAddressBLL.Read(address.Id, base.UserId); shipping = ShippingBLL.Read(shipping.Id); pay = PayPlugins.ReadPayPlugins(pay.Key); reNecessaryCheck = true; goto doReNecessaryCheck; } /*----------------------------------------------------------------------*/ /*-----------商品清单、商品总价、邮费价格、库存检查---------------------*/ var user = UserBLL.ReadUserMore(base.UserId); decimal productMoney = 0, pointMoney = 0; int count = 0; //输入的兑换积分数 var costPoint = RequestHelper.GetForm <int>("costPoint"); 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; productMoney += ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID) * (cart.BuyCount); } else { cart.LeftStorageCount = cart.Product.TotalStorageCount - cart.Product.OrderCount; productMoney += ProductBLL.GetCurrentPrice(cart.Product.SalePrice, base.GradeID) * (cart.BuyCount); } //检查库存 if (cart.BuyCount > cart.LeftStorageCount) { ResponseHelper.Write("error|商品[" + cart.ProductName + "]库存不足,无法购买|"); ResponseHelper.End(); } } ShippingRegionInfo shippingRegion = ShippingRegionBLL.SearchShippingRegion(shipping.Id, address.RegionId); decimal shippingMoney = ShippingRegionBLL.ReadShippingMoney(shipping.Id, shippingRegion.RegionId, cartList); /*----------------------------------------------------------------------*/ #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 { ResponseHelper.Write("error|结算金额小于该优惠券要求的最低消费的金额|"); ResponseHelper.End(); } } } } #endregion #region 如果开启了:使用积分抵现,计算积分抵现的现金金额 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 productfavorableMoney = 0; var theFavor = FavorableActivityBLL.Read(productfavor.Id); if (theFavor.Id > 0) { decimal tmoney = 0; foreach (var tmpcart in cartList) { tmpcart.Product = productList.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(address.RegionId, favor.RegionId)) { favorableMoney += shippingMoney; } } } #endregion /*-----------应付总价---------------------------------------------------*/ decimal payMoney = productMoney + shippingMoney - couponMoney - pointMoney - favorableMoney - productfavorableMoney; /*----------------------------------------------------------------------*/ /*-----------检查金额---------------------------------------------------*/ if (payMoney <= 0) { ResponseHelper.Write("error|金额有错误,请重新检查|"); ResponseHelper.End(); } /*----------------------------------------------------------------------*/ /*-----------组装基础订单模型,循环生成订单-----------------------------*/ OrderInfo order = new OrderInfo(); order.ProductMoney = productMoney; order.OrderNumber = ShopCommon.CreateOrderNumber(); string payKey = RequestHelper.GetForm <string>("Pay"); PayPluginsInfo payPlugins = PayPlugins.ReadPayPlugins(payKey); if (payMoney == 0 || payPlugins.IsCod == (int)BoolType.True) { order.OrderStatus = (int)OrderStatus.WaitCheck; } else { order.OrderStatus = (int)OrderStatus.WaitPay; } order.Consignee = address.Consignee; order.RegionId = address.RegionId; order.Address = address.Address; order.ZipCode = address.ZipCode; order.Tel = address.Tel; order.Mobile = address.Mobile; order.InvoiceTitle = RequestHelper.GetForm <string>("InvoiceTitle"); order.InvoiceContent = RequestHelper.GetForm <string>("InvoiceContent"); order.GiftMessige = RequestHelper.GetForm <string>("GiftMessige"); order.Email = CookiesHelper.ReadCookieValue("UserEmail"); order.ShippingId = shipping.Id; order.ShippingDate = RequestHelper.DateNow; order.ShippingMoney = shippingMoney; order.CouponMoney = couponMoney; order.Point = costPoint; order.PointMoney = pointMoney; order.FavorableMoney = favorableMoney + productfavorableMoney; order.Balance = 0; order.PayKey = pay.Key; order.PayName = pay.Name; order.PayDate = RequestHelper.DateNow; order.IsRefund = (int)BoolType.False; order.AddDate = RequestHelper.DateNow; order.IP = ClientHelper.IP; order.UserId = base.UserId; order.UserName = base.UserName; order.UserMessage = RequestHelper.GetForm <string>("userMessage"); order.GiftId = RequestHelper.GetForm <int>("GiftID"); order.IsNoticed = 0; int orderId = OrderBLL.Add(order); //添加订单产品 foreach (var cart in cartList) { var orderDetail = new OrderDetailInfo(); orderDetail.OrderId = orderId; orderDetail.ProductId = cart.ProductId; orderDetail.ProductName = cart.ProductName; orderDetail.StandardValueList = cart.StandardValueList; orderDetail.ProductWeight = cart.Product.Weight; if (!string.IsNullOrEmpty(cart.StandardValueList)) { var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); orderDetail.ProductPrice = ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID); } else { orderDetail.ProductPrice = ProductBLL.GetCurrentPrice(cart.Product.SalePrice, base.GradeID); } orderDetail.BidPrice = cart.Product.BidPrice; orderDetail.BuyCount = cart.BuyCount; OrderDetailBLL.Add(orderDetail); } #region 更新优惠券状态--已使用 //使用优惠券 if (couponMoney > 0 && userCouponStr != "0|0") { userCoupon.IsUse = (int)BoolType.True; userCoupon.OrderId = orderId; UserCouponBLL.Update(userCoupon); } #endregion #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 /*-----------更改产品库存订单数量---------------------------------------*/ ProductBLL.ChangeOrderCountByOrder(orderId, ChangeAction.Plus); /*----------------------------------------------------------------------*/ /*-----------删除购物车中已下单的商品-----------------------------------*/ CartBLL.Delete(cartIds, base.UserId); CookiesHelper.DeleteCookie("CheckCart"); /*----------------------------------------------------------------------*/ ResponseHelper.Write("ok||/Finish.html?id=" + orderId); ResponseHelper.End(); }
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); } //检查金额 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"); }
/// <summary> /// 获取当前拼团商品列表 /// 及开团情况:多少人开团,多少人参与 /// 拼团图片:如果传了则显示开团主图,否则显示商品主图 /// </summary> /// <returns></returns> public ActionResult GetGroupList(int pageIndex = 1, int pageSize = 2) { try { int count = 0; var openGroup_Products = ProductBLL.SearchList(pageIndex, pageSize, new ProductSearchInfo { IsSale = 1, IsDelete = 0, OpenGroup = 1 }, ref count); openGroup_Products.ForEach(p => p = ProductBLL.Read(p.Id)); return(Json(new { ok = true, count = openGroup_Products.Count, groupList = openGroup_Products.Select(p => new { product = new { id = p.Id, title = p.Name, img = !string.IsNullOrWhiteSpace(p.GroupPhoto) ? p.GroupPhoto : p.Photo, groupprice = p.GroupPrice, marketprice = p.MarketPrice, totalstore = p.StandardType == (int)ProductStandardType.Single ? ProductTypeStandardRecordBLL.GetSumStorageByProduct(p.Id) : p.TotalStorageCount, ordercount = p.UnlimitedStorage == 1 ? OrderBLL.GetProductOrderCountDaily(p.Id, p.StandardType, DateTime.Now) : p.OrderCount, unlimitedstorage = p.UnlimitedStorage, // 开/参团情况 groups = GroupBuyBLL.SearchList(new GroupBuySearchInfo { ProductId = p.Id }) } } ) })); } catch (Exception ex) { return(Json(new { ok = false, error = ex.Message })); } }
private void Submit() { /*-----------重新验证选择的商品------------------------------------------*/ checkCart = StringHelper.AddSafe(RequestHelper.GetForm <string>("CheckCart")); int[] cartIds = Array.ConvertAll <string, int>(checkCart.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), k => Convert.ToInt32(k)); string checkCartCookies = HttpUtility.UrlDecode(CookiesHelper.ReadCookieValue("CheckCart")); if (checkCart != checkCartCookies) { ResponseHelper.Write("error|购买商品发生了变化,请重新提交|" + isMobile + "/cart.html"); ResponseHelper.End(); } if (string.IsNullOrEmpty(checkCart) || cartIds.Length < 1) { ResponseHelper.Write("error|请选择需要购买的商品|" + isMobile + "/cart.html"); ResponseHelper.End(); } /*----------------------------------------------------------------------*/ /*-----------读取购物车清单---------------------------------------------*/ List <CartInfo> cartList = CartBLL.ReadList(base.UserId); cartList = cartList.Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count <= 0) { ResponseHelper.Write("error|请选择需要购买的商品|" + isMobile + "/cart.html"); ResponseHelper.End(); } /*----------------------------------------------------------------------*/ /*-----------必要性检查:收货地址,配送方式,支付方式-------------------*/ var address = new UserAddressInfo { Id = RequestHelper.GetForm <int>("address_id") }; var shipping = new ShippingInfo { Id = RequestHelper.GetForm <int>("ShippingId") }; var pay = new PayPluginsInfo { Key = StringHelper.AddSafe(RequestHelper.GetForm <string>("pay")) }; bool reNecessaryCheck = false; doReNecessaryCheck: if (address.Id < 1) { ResponseHelper.Write("error|请选择收货地址|"); ResponseHelper.End(); } if (shipping.Id < 1) { ResponseHelper.Write("error|请选择配送方式|"); ResponseHelper.End(); } if (string.IsNullOrEmpty(pay.Key)) { ResponseHelper.Write("error|请选择支付方式|"); ResponseHelper.End(); } //读取数据库中的数据,进行重复验证 if (!reNecessaryCheck) { address = UserAddressBLL.Read(address.Id, base.UserId); shipping = ShippingBLL.Read(shipping.Id); pay = PayPlugins.ReadPayPlugins(pay.Key); reNecessaryCheck = true; goto doReNecessaryCheck; } /*----------------------------------------------------------------------*/ /*-----------商品清单、商品总价、邮费价格、库存检查---------------------*/ decimal productMoney = 0; 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; } else { cart.Price = cart.Product.SalePrice; cart.LeftStorageCount = cart.Product.TotalStorageCount - cart.Product.OrderCount; } //不需要检查库存,所有商品均可购买 ////检查库存 //if (cart.BuyCount > cart.LeftStorageCount) //{ // ResponseHelper.Write("error|商品[" + cart.ProductName + "]库存不足,无法购买|"); // ResponseHelper.End(); //} productMoney += cart.BuyCount * cart.Price; } decimal shippingMoney = 0; //首先根据ShopId分组,根据供应商的不同来分别计算运费 //然后将分拆后的供应商商品,按单个商品独立计算运费(相同商品购买多个则叠加计算) ShippingRegionInfo shippingRegion = ShippingRegionBLL.SearchShippingRegion(shipping.Id, address.RegionId); var shopIds = cartList.GroupBy(k => k.Product.ShopId).Select(k => k.Key).ToList(); foreach (var shopId in shopIds) { var shopCartList = cartList.Where(k => k.Product.ShopId == shopId).ToList(); foreach (var shopCartSplit in shopCartList) { shippingMoney += ShippingRegionBLL.ReadShippingMoney(shipping, shippingRegion, shopCartSplit); } } /*----------------------------------------------------------------------*/ int point = 0; decimal pointMoney = 0; /*-----------计算积分金额(不可使用积分)----------------------------------- * decimal totalRate = (decimal)ShopConfig.ReadConfigInfo().BuyPointTotalRate; * decimal pointRate = (decimal)ShopConfig.ReadConfigInfo().BuyPointMoneyRate; * int point = RequestHelper.GetForm<int>("point"); * decimal pointMoney = 0; * if (totalRate > 0 && pointRate > 0 && point > 0) * { * var member = WebService.Member.GetMember(); * decimal leftPoint = member.Point; * if (point > leftPoint) * { * ResponseHelper.Write("error|您的积分不足|"); * ResponseHelper.End(); * } * else * { * pointMoney = Math.Round(point / pointRate, 2); * * if (pointMoney > productMoney * totalRate) * { * ResponseHelper.Write("error|" + "您最多可以使用 " + (productMoney * totalRate * pointRate) + " 积分|"); * ResponseHelper.End(); * } * } * } * ------------------------------------------------------------------------*/ /*-----------应付总价---------------------------------------------------*/ //decimal payMoney = productMoney + shippingMoney - pointMoney; decimal payMoney = productMoney + shippingMoney; /*----------------------------------------------------------------------*/ var user = UserBLL.Read(base.UserId); /*-----------计算图楼卡余额---------------------------------------------*/ decimal balance = RequestHelper.GetForm <decimal>("money"); if (balance > 0) { bool isSuccess; string msg; isSuccess = true; msg = ""; //var account = WebService.Account.GetAccount(user.CardNo, user.CardPwd, out isSuccess, out msg); if (!isSuccess) { ResponseHelper.Write("error|" + msg + "|"); ResponseHelper.End(); } if (balance > 0 /*(account.Zacc + account.Sacc)*/) { ResponseHelper.Write("error|您的图楼卡余额不足|"); ResponseHelper.End(); } else { if (balance > payMoney) { ResponseHelper.Write("error|" + "您只需使用 " + payMoney + " 元即可支付订单|"); ResponseHelper.End(); } } } payMoney -= balance; /*----------------------------------------------------------------------*/ /*-----------检查金额---------------------------------------------------*/ if (payMoney < 0) { ResponseHelper.Write("error|金额有错误,请重新检查|"); ResponseHelper.End(); } /*----------------------------------------------------------------------*/ /*-----------组装基础订单模型,循环生成订单-----------------------------*/ OrderInfo order = new OrderInfo(); order.ProductMoney = productMoney; order.Consignee = address.Consignee; order.RegionId = address.RegionId; order.Address = address.Address; order.ZipCode = address.ZipCode; order.Tel = address.Tel; order.Mobile = address.Mobile; order.Email = CookiesHelper.ReadCookieValue("UserEmail"); order.ShippingId = shipping.Id; order.ShippingDate = RequestHelper.DateNow; order.ShippingMoney = shippingMoney; order.Point = point; order.PointMoney = pointMoney; order.Balance = balance; order.PayKey = pay.Key; order.PayName = pay.Name; order.PayDate = RequestHelper.DateNow; order.IsRefund = (int)BoolType.False; order.UserMessage = StringHelper.AddSafe(RequestHelper.GetForm <string>("msg")); order.AddDate = RequestHelper.DateNow; order.IP = ClientHelper.IP; order.UserId = base.UserId; order.UserName = base.UserName; //循环生成订单 var orderIds = SplitShopProduct(cartList, order); /*----------------------------------------------------------------------*/ var orders = OrderBLL.ReadList(orderIds.ToArray(), base.UserId); /*-----------如果使用了图楼卡支付,需同步到会员管理系统中---------------*/ /*第二步,在订单付款操作(用户端)中,同步图楼卡余额*/ if (balance > 0) { List <string[]> paras = new List <string[]>(); foreach (var oo in orders) { if (oo.Balance > 0 && oo.OrderStatus == (int)OrderStatus.WaitCheck) { string[] para = new string[2]; para[0] = oo.OrderNumber; para[1] = oo.Balance.ToString(); paras.Add(para); } } //如果有全额使用了图楼卡余额支付的订单,需同步到会员管理系统中 if (paras.Count > 0) { bool isSuccess; string msg; isSuccess = true; msg = ""; //WebService.Account.Purchase(user.CardNo, user.CardPwd, paras, out isSuccess, out msg); //同步失败,删除订单及相关信息 if (!isSuccess) { //删除订单、订单详细、订单状态相关数据 OrderBLL.Delete(orderIds.ToArray(), base.UserId); //更改产品库存订单数量 foreach (var orderId in orderIds) { ProductBLL.ChangeOrderCountByOrder(orderId, ChangeAction.Minus); } ResponseHelper.Write("error|" + msg + "|"); ResponseHelper.End(); } else { //记录用户余额消费记录 foreach (var par in paras) { var accountRecord = new UserAccountRecordInfo { RecordType = (int)AccountRecordType.Money, Money = -decimal.Parse(par[1]), Point = 0, Date = DateTime.Now, IP = ClientHelper.IP, Note = "支付订单:" + par[0], UserId = base.UserId, UserName = base.UserName }; UserAccountRecordBLL.Add(accountRecord); } } } } /*----------------------------------------------------------------------*/ /*-----------删除购物车中已下单的商品-----------------------------------*/ CartBLL.Delete(cartIds, base.UserId); CookiesHelper.DeleteCookie("CheckCart"); /*----------------------------------------------------------------------*/ /*如果所有订单均由图楼卡支付完成,则跳转到会员中心,否则跳转到支付提示页面*/ if (orders.Count(k => k.OrderStatus == (int)OrderStatus.WaitPay) > 0) { ResponseHelper.Write("ok||/finish.html?id=" + string.Join(",", orders.Select(k => k.Id).ToArray())); } else { ResponseHelper.Write("ok||/user/index.html"); } ResponseHelper.End(); /*----------------------------------------------------------------------*/ }
protected override void PageLoad() { base.PageLoad(); string action = RequestHelper.GetQueryString <string>("Action"); switch (action) { case "GetStandardPrice": GetStandardPrice(); break; case "Like": Like(); break; case "Collect": Collect(); break; } int id = RequestHelper.GetQueryString <int>("id"); product = ProductBLL.Read(id); if (product.IsSale == (int)BoolType.False) { ScriptHelper.AlertFront("该产品未上市,不能查看"); } //更新查看数量 Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("ViewCount", product.ViewCount + 1); ProductBLL.UpdatePart(ProductInfo.TABLENAME, dict, id); if (product.BrandId > 0) { productBrand = ProductBrandBLL.Read(product.BrandId); } if (product.ShopId > 0) { shop = UserBLL.Read(product.ShopId); } productPhotoList = ProductPhotoBLL.ReadList(id, 0); attributeRecords = ProductTypeAttributeRecordBLL.ReadList(id); standardRecords = ProductTypeStandardRecordBLL.ReadList(id); //导航路径 listPaths = ProductClassBLL.ReadNavigationPath(product.ClassId); listPaths.ForEach(k => paths += string.Format(k[0], k[1], k[2])); //排行榜 //按销量倒序 int count = 0; topProductList = ProductBLL.SearchList(1, 6, new ProductSearchInfo { ClassId = product.ClassId, IsSale = (int)BoolType.True, ProductOrderType = "SendCount", OrderType = OrderType.Desc }, ref count); //同类推荐 classProductList = ProductBLL.SearchList(1, 3, new ProductSearchInfo { ClassId = product.ClassId, IsSale = (int)BoolType.True, IsTop = (int)BoolType.True }, ref count); //搜索优化 Title = product.Name; Keywords = string.IsNullOrEmpty(product.Keywords) ? product.Name : product.Keywords; Description = string.IsNullOrEmpty(product.Summary) ? StringHelper.Substring(StringHelper.KillHTML(product.Introduction1), 200) : product.Summary; }
private string GetProductCSV() { StringBuilder builder = new StringBuilder(); string format = "\"{0}\"\t{1}\t\"{2}\"\t{3}\t\"{4}\"\t\"{5}\"\t{6}\t{7}\t{8}\t{9}\t{10}\t{11}\t{12}\t{13}\t{14}\t{15}\t{16}\t{17}\t{18}\t\"{19}\"\t\"{20}\"\t\"{21}\"\t{22}\t{23}\t\"{24}\"\t{25}\t\"{26}\"\t{27}\t\"{28}\"\t\"{29}\"\t\"{30}\"\t\"{31}\"\t\"{32}\"\t\"{33}\"\t\"{34}\"\t{35}\t{36}\t{37}\t{38}\t\"{39}\"\t{40}\t{41}\t\"{42}\"\r\n"; builder.Append("version 1.00\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n"); builder.Append("title\tcid\tseller_cids\tstuff_status\tlocation_state\tlocation_city\titem_type\tprice\tauction_increment\tnum\tvalid_thru\tfreight_payer\tpost_fee\tems_fee"); builder.Append("\texpress_fee\thas_invoice\thas_warranty\tapprove_status\thas_showcase\tlist_time\tdescription\tcateProps\tpostage_id\thas_discount\tmodified\tupload_fail_msg"); builder.Append("\tpicture_status\tauction_point\tpicture\tvideo\tskuProps\tinputPids\tinputValues\touter_id\tpropAlias\tauto_fill\tnum_id\tlocal_cid\tnavigation_type\tuser_name\tsyncStatus\tsubtitle\twireless_desc\r\n"); builder.Append("宝贝名称\t宝贝类目\t店铺类目\t新旧程度\t省\t城市\t出售方式\t宝贝价格\t加价幅度\t宝贝数量\t有效期\t运费承担\t平邮\tEMS\t快递\t发票\t保修\t放入仓库\t橱窗推荐\t开始时间\t宝贝描述"); builder.Append("\t宝贝属性\t邮费模版ID\t会员打折\t修改时间\t上传状态\t图片状态\t返点比例\t新图片\t视频\t销售属性组合\t用户输入ID串\t用户输入名-值对\t商家编码\t销售属性别名\t代充类型\t数字ID\t本地ID"); builder.Append("\t宝贝分类\t账户名称\t宝贝状态\t宝贝卖点(摘要)\t无线详情(手机详情描述)\r\n"); foreach (var item in ExportList) { string str2 = string.Empty;; //pc端详情描述,最少5字符,最多25000字符 if (item.Introduction1.Length >= 5) { str2 = this.Trim(StringHelper.Substring(item.Introduction1, 24900, false)).Replace(string.Format("src=\"{0}/upload/attached/image", this.ApplicationPath), string.Format("src=\"{0}/upload/attached/image", this._url)); } //手机端详情描述----不能直接调用本站的 //string mobileContent = string.IsNullOrEmpty(item.Introduction1_Mobile) ? item.Introduction1 : item.Introduction1_Mobile; string mobileContent = string.Empty; mobileContent = this.Trim(mobileContent).Replace(string.Format("src=\"{0}/upload/attached/image", this.ApplicationPath), string.Format("src=\"{0}/upload/attached/image", this._url)); string str3 = string.Empty; //摘要 if (!string.IsNullOrEmpty(item.Summary)) { str3 = this.Trim(Convert.ToString(item.Summary).Trim()); //if (!string.IsNullOrEmpty(str3) && (str3.Length > 0)) //{ // str2 = str3 + "<br/>" + str2; //} } str2 = str2.Replace("\r\n", "").Replace("\r", "").Replace("\n", "").Replace("\"", "\"\""); mobileContent = mobileContent.Replace("\r\n", "").Replace("\r", "").Replace("\n", "").Replace("\"", "\"\""); string str4 = string.Empty; if (!string.IsNullOrEmpty(item.Photo)) { str4 = str4 + this.CopyImage(item.Photo, 1); } int phi = 2; foreach (var productPhoto in ProductPhotoBLL.ReadList(item.Id, 0).Take(4)) { if (!string.IsNullOrEmpty(productPhoto.ImageUrl)) { str4 = str4 + this.CopyImage(productPhoto.ImageUrl.Replace("75-75", "Original"), phi); phi++; } } //if (row["ImageUrl2"] != DBNull.Value) //{ // str4 = str4 + this.CopyImage((string)row["ImageUrl2"], 2); //} //if (row["ImageUrl3"] != DBNull.Value) //{ // str4 = str4 + this.CopyImage((string)row["ImageUrl3"], 3); //} //if (row["ImageUrl4"] != DBNull.Value) //{ // str4 = str4 + this.CopyImage((string)row["ImageUrl4"], 4); //} //if (row["ImageUrl5"] != DBNull.Value) //{ // str4 = str4 + this.CopyImage((string)row["ImageUrl5"], 5); //} //DataRow[] rowArray = this._exportData.Tables["skus"].Select("ProductId=" + row["ProductId"].ToString(), "SalePrice desc"); string str5 = "0"; int num = 0; string str6 = "1"; string str7 = "0"; string str8 = "0"; string str9 = "0"; string str10 = ""; string str11 = "";//分类ID string str12 = ""; string str13 = item.ProductCode; string str14 = ""; string str15 = ""; string str16 = ""; string str17 = ""; string str18 = ""; string str19 = ""; string str20 = ""; string str21 = ""; string str22 = ""; string str23 = ""; string str24 = ""; string str25 = ""; //DataRow[] rowArray2 = this._exportData.Tables["TaobaoSku"].Select("ProductId=" + row["Productid"].ToString()); //if (rowArray2.Length > 0) //{ // if (this._includeStock) // { // if ((rowArray2[0]["SkuQuantities"] != null) && (rowArray2[0]["SkuQuantities"].ToString() != "")) // { // string[] strArray = null; // if (rowArray2[0]["SkuQuantities"].ToString().Contains(",")) // { // strArray = rowArray2[0]["SkuQuantities"].ToString().Split(new char[] { ',' }); // } // else // { // strArray = new string[] { rowArray2[0]["SkuQuantities"].ToString() }; // } // foreach (string str26 in strArray) // { // num += Convert.ToInt32(str26); // } // } // else // { // num += Convert.ToInt32(rowArray2[0]["Num"]); // } // } //str20 = Convert.ToString(rowArray2[0]["LocationState"]); //str21 = Convert.ToString(rowArray2[0]["LocationCity"]); //str22 = (Convert.ToString(rowArray2[0]["HasInvoice"]).ToLower() == "true") ? "1" : "0"; //str23 = (Convert.ToString(rowArray2[0]["HasWarranty"]).ToLower() == "true") ? "1" : "0"; //str24 = (Convert.ToString(rowArray2[0]["HasDiscount"]).ToLower() == "true") ? "1" : "0"; //str25 = (rowArray2[0]["StuffStatus"].ToString() == "new") ? "1" : "0"; str20 = _province; str21 = _city; str22 = "0"; str23 = "0"; str24 = "0"; str25 = "1"; //if (Convert.ToString(rowArray2[0]["FreightPayer"]) == "buyer") //{ // str6 = "2"; // str7 = Convert.ToString(rowArray2[0]["PostFee"]); // str8 = Convert.ToString(rowArray2[0]["ExpressFee"]); // str9 = Convert.ToString(rowArray2[0]["EMSFee"]); //} //str11 = Convert.ToString(rowArray2[0]["Cid"]); //str14 = Convert.ToString(rowArray2[0]["PropertyAlias"]); //str10 = Convert.ToString(rowArray2[0]["inputpids"]); //str12 = Convert.ToString(rowArray2[0]["inputstr"]); //str17 = Convert.ToString(rowArray2[0]["SkuQuantities"]); //str18 = Convert.ToString(rowArray2[0]["skuPrices"]); //str16 = Convert.ToString(rowArray2[0]["SkuProperties"]); //str19 = Convert.ToString(rowArray2[0]["SkuOuterIds"]); //if (!string.IsNullOrEmpty(str17)) //{ // string[] strArray2 = str17.Split(new char[] { ',' }); // string[] strArray3 = str18.Split(new char[] { ',' }); // string[] strArray4 = str19.Split(new char[] { ',' }); // string[] strArray5 = str16.Split(new char[] { ',' }); // for (int i = 0; i < strArray2.Length; i++) // { // string str27 = str15; // str15 = str27 + strArray3[i] + ":" + strArray2[i] + ":" + strArray4[i] + ":" + strArray5[i] + ";"; // } //} //} //else if (this._includeStock && (rowArray.Length > 0)) //{ // foreach (DataRow row2 in rowArray) // { // num += (int)row2["Stock"]; // } //} //计算剩余库存量 int leftStorageCount = 0; if (item.StandardType != 1) { if (ShopConfig.ReadConfigInfo().ProductStorageType == (int)ProductStorageType.SelfStorageSystem) { leftStorageCount = item.TotalStorageCount - item.OrderCount; } else { leftStorageCount = item.ImportVirtualStorageCount; } } else { List <ProductTypeStandardRecordInfo> standRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(item.Id, 1); if (standRecordList.Count > 0) { leftStorageCount = standRecordList[0].Storage; //取第一种规格的库存 } } str5 = leftStorageCount.ToString(); //库存数量 string spostage_id = "0"; //邮费模板ID //if (rowArray.Length > 0) //{ builder.AppendFormat(format, new object[] { this.Trim(item.Name), str11, "", str25, str20, str21, "1", item.SalePrice, "", str5, "14", str6, str7, str9, str8, str22, str23, "0", "0", "", str2, str14, spostage_id, str24, DateTime.Now, "100", "", "0", str4, string.Empty, str15, str10, str12, str13, string.Empty, "0", "0", "0", "1", "", "1", str3, mobileContent }); //} } return(builder.Remove(builder.Length - 2, 2).ToString()); }
private void SelectShipping() { int shippingId = RequestHelper.GetQueryString <int>("shippingId"); int addressId = RequestHelper.GetQueryString <int>("addressId"); int favorId = RequestHelper.GetQueryString <int>("favorId"); string 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.Write("error|请选择需要购买的商品"); ResponseHelper.End(); } var address = UserAddressBLL.Read(addressId, base.UserId); //计算配送费用 List <CartInfo> cartList = CartBLL.ReadList(base.UserId).Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Write("error|请选择需要购买的商品"); ResponseHelper.End(); } int count = 0; //购物车结算金额 decimal cartTotalPrice = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var productList = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); cartList.ForEach(k => k.Product = productList.FirstOrDefault(k2 => k2.Id == k.ProductId) ?? new ProductInfo()); foreach (var cart in cartList) { if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); cartTotalPrice += ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID) * cart.BuyCount; } else { cartTotalPrice += ProductBLL.GetCurrentPrice(cart.Product.SalePrice, base.GradeID) * cart.BuyCount; } } ShippingInfo shipping = ShippingBLL.Read(shippingId); ShippingRegionInfo shippingRegion = ShippingRegionBLL.SearchShippingRegion(shippingId, address.RegionId); decimal shippingMoney = ShippingRegionBLL.ReadShippingMoney(shippingId, address.RegionId, cartList); decimal favorableMoney = 0; #region 计算优惠费用--原始方式 //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 * (100 - favorableActivity.ReduceDiscount) / 100; // break; // default: // break; // } // if (favorableActivity.ShippingWay == (int)FavorableShipping.Free && ShippingRegionBLL.IsRegionIn(address.RegionId, favorableActivity.RegionId)) // { // favorableMoney += shippingMoney; // } // } //} #endregion #region 计算优惠费用 if (favorId > 0) { var theFavorable = FavorableActivityBLL.Read(favorId); if (("," + theFavorable.UserGrade + ",").IndexOf("," + base.GradeID.ToString() + ",") > -1 && cartTotalPrice >= theFavorable.OrderProductMoney) { switch (theFavorable.ReduceWay) { case (int)FavorableMoney.Money: favorableMoney += theFavorable.ReduceMoney; break; case (int)FavorableMoney.Discount: favorableMoney += cartTotalPrice * (100 - theFavorable.ReduceDiscount) / 100; break; default: break; } if (theFavorable.ShippingWay == (int)FavorableShipping.Free && ShippingRegionBLL.IsRegionIn(address.RegionId, theFavorable.RegionId)) { favorableMoney += shippingMoney; } } } #endregion ResponseHelper.Write("ok|" + Math.Round(shippingMoney, 2).ToString() + "|" + Math.Round(favorableMoney, 2)); ResponseHelper.End(); }
protected override void PageLoad() { base.PageLoad(); string action = RequestHelper.GetQueryString <string>("Action"); if (action == "SelectShipping") { this.SelectShipping(); } int id = RequestHelper.GetQueryString <int>("id"); address = UserAddressBLL.Read(id, base.UserId); if (string.IsNullOrEmpty(address.RegionId)) { return; } //取出所有配送方式Id List <ShippingInfo> tempShippingList = ShippingBLL.ReadList(); tempShippingList = tempShippingList.Where(k => k.IsEnabled == (int)BoolType.True).ToList(); var shippingIds = new List <int>(); tempShippingList.ForEach(k => shippingIds.Add(k.Id)); //读取配送区域列表 List <ShippingRegionInfo> shippingRegionList = ShippingRegionBLL.ReadList(shippingIds.ToArray()); #region 读取购物车结算金额 string 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.Write("error|请选择需要购买的商品"); ResponseHelper.End(); } //计算配送费用 List <CartInfo> cartList = CartBLL.ReadList(base.UserId).Where(k => cartIds.Contains(k.Id)).ToList(); if (cartList.Count < 1) { ResponseHelper.Write("error|请选择需要购买的商品"); ResponseHelper.End(); } int count = 0; //购物车结算金额 decimal cartTotalPrice = 0; int[] ids = cartList.Select(k => k.ProductId).ToArray(); var productList = ProductBLL.SearchList(1, ids.Length, new ProductSearchInfo { InProductId = string.Join(",", ids) }, ref count); cartList.ForEach(k => k.Product = productList.FirstOrDefault(k2 => k2.Id == k.ProductId) ?? new ProductInfo()); foreach (var cart in cartList) { if (!string.IsNullOrEmpty(cart.StandardValueList)) { //使用规格的价格和库存 var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); cartTotalPrice += ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID) * cart.BuyCount; } else { cartTotalPrice += ProductBLL.GetCurrentPrice(cart.Product.SalePrice, base.GradeID) * cart.BuyCount; } } #endregion #region 获取符合条件(时间段,用户等级,金额限制)的整站订单优惠活动列表,默认使用第一个 favorableActivityList = FavorableActivityBLL.ReadList(DateTime.Now, DateTime.Now).Where <FavorableActivityInfo>(f => f.Type == (int)FavorableType.AllOrders && ("," + f.UserGrade + ",").IndexOf("," + base.GradeID.ToString() + ",") > -1 && cartTotalPrice >= f.OrderProductMoney).ToList(); #endregion //查找符合条件的配送方式 foreach (ShippingInfo shipping in tempShippingList) { string tempRegionId = address.RegionId; while (tempRegionId.Length >= 1) { bool isFind = false; foreach (ShippingRegionInfo temp in shippingRegionList) { if (("|" + temp.RegionId + "|").IndexOf("|" + tempRegionId + "|") > -1 && temp.ShippingId == shipping.Id) { isFind = true; shippingList.Add(shipping); break; } } if (isFind) { break; } else { tempRegionId = tempRegionId.Substring(0, tempRegionId.Length - 1); tempRegionId = tempRegionId.Substring(0, tempRegionId.LastIndexOf('|') + 1); } } } }
public ActionResult Detail(int id) { int userGrade = UserGradeBLL.ReadByMoney(0).Id; int uid = RequestHelper.GetForm <int>("uid"); var user = UserBLL.ReadUserMore(uid); if (user.Id > 0) { userGrade = UserGradeBLL.ReadByMoney(user.MoneyUsed).Id; user.UserName = HttpUtility.UrlDecode(user.UserName, System.Text.Encoding.UTF8); } if (id <= 0) { return(Json(new { ok = false, error = "该产品未上市" })); } string fromwhere = RequestHelper.GetQueryString <string>("fw"); ProductInfo product = ProductBLL.Read(id); if (product.IsSale == (int)BoolType.False || product.IsDelete == 1) { return(Json(new { ok = false, error = "该产品未上市" })); } #region 如果商品没有小程序码 则生成并保存 if (string.IsNullOrWhiteSpace(product.Qrcode)) { string product_miniProramCode = string.Empty; CreateMiniProgramCode(product.Id, ref product_miniProramCode, product.Qrcode); if (!string.IsNullOrWhiteSpace(product_miniProramCode)) {//如果调用接口成功生成小程序码(因为只有发布后才能使用此微信接口) Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("[Qrcode]", product_miniProramCode); ProductBLL.UpdatePart("[Product]", dict, product.Id); product.Qrcode = product_miniProramCode; } } #endregion //更新查看数量 if (CookiesHelper.ReadCookie("productview" + product.Id + "") == null) { ProductBLL.ChangeViewCount(id, 1); CookiesHelper.AddCookie("productview" + product.Id + "", product.Id.ToString()); } ProductCommentSearchInfo proCommSear = new ProductCommentSearchInfo(); var proComm = ProductCommentBLL.SearchProductCommentList(proCommSear = new ProductCommentSearchInfo { ProductId = product.Id, Status = (int)CommentStatus.Show }); var procomlist = new List <VirtualProductCommend>(); foreach (var item in proComm) { VirtualProductCommend vpc = new VirtualProductCommend() { id = item.Id, name = HttpUtility.UrlDecode(item.UserName, Encoding.UTF8), avator = ShopCommon.ShowImage(UserBLL.Read(item.UserId).Photo), lv = item.Rank, date = item.PostDate, content = item.Content, imglist = ProductPhotoBLL.ReadList(item.Id, 3), adminreply = item.AdminReplyContent, replydate = item.AdminReplyDate }; procomlist.Add(vpc); } //产品价格 int hotCount = 0; var currentMemberPrice = ProductBLL.GetCurrentPrice(product.SalePrice, userGrade); var prorecommend = ProductBLL.SearchList(1, 8, new ProductSearchInfo { IsSale = (int)BoolType.True, IsTop = (int)BoolType.True, IsDelete = (int)BoolType.False, NotInProductId = product.Id.ToString() }, ref hotCount); var prorelist = new List <ProductVirtualModel>(); foreach (var item in prorecommend) { var vp = new ProductVirtualModel() { id = item.Id, name = item.Name, img = ShopCommon.ShowImage(item.Photo.Replace("Original", "150-150")), imgbig = ShopCommon.ShowImage(item.Photo.Replace("Original", "350-350")), imgorg = ShopCommon.ShowImage(item.Photo), price = ProductBLL.GetCurrentPrice(item.SalePrice, userGrade), marketprice = item.MarketPrice, click = item.ViewCount, like = item.LikeNum, totalstore = item.StandardType == (int)ProductStandardType.Single ? ProductTypeStandardRecordBLL.GetSumStorageByProduct(item.Id) : item.TotalStorageCount, //ordercount = item.OrderCount //是否启用不限库存,分别计算销量 ordercount = item.UnlimitedStorage == 1 ? OrderBLL.GetProductOrderCountDaily(item.Id, item.StandardType, DateTime.Now) : item.OrderCount }; prorelist.Add(vp); } //产品图片 List <ProductPhotoInfo> productPhotoList = new List <ProductPhotoInfo>(); ProductPhotoInfo productPhoto = new ProductPhotoInfo(); productPhoto.Name = product.Name; productPhoto.ImageUrl = product.Photo; productPhotoList.Add(productPhoto); productPhotoList.AddRange(ProductPhotoBLL.ReadList(id, 0)); productPhotoList.ForEach(k => k.ImageUrl = k.ImageUrl.Replace("75-75", "Original")); //属性 var attributeRecordList = ProductTypeAttributeRecordBLL.ReadList(id); #region 产品规格 List <ProductTypeStandardInfo> standardList = new List <ProductTypeStandardInfo>(); string standardRecordValueList = "|"; var standardRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(product.Id, product.StandardType); decimal maxPrice = product.SalePrice; if (standardRecordList.Count > 0) { string[] standardIDArray = standardRecordList[0].StandardIdList.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < standardIDArray.Length; i++) { int standardID = Convert.ToInt32(standardIDArray[i]); ProductTypeStandardInfo standard = ProductTypeStandardBLL.Read(standardID); string[] valueArray = standard.ValueList.Split(';'); string valueList = string.Empty; for (int k = 0; k < valueArray.Length; k++) { foreach (ProductTypeStandardRecordInfo standardRecord in standardRecordList) { if (standardRecord.MarketPrice > maxPrice) { maxPrice = standardRecord.MarketPrice; } string[] tempValueArray = standardRecord.ValueList.Split(';'); if (valueArray[k] == tempValueArray[i]) { valueList += valueArray[k] + ";"; break; } } } if (valueList != string.Empty) { valueList = valueList.Substring(0, valueList.Length - 1); } standard.ValueList = valueList; standardList.Add(standard); } //规格值 foreach (ProductTypeStandardRecordInfo standardRecord in standardRecordList) { standardRecordValueList += standardRecord.ProductId + ";" + standardRecord.ValueList + "|"; } } #endregion #region 正在开的团(进行中,排除本人开的团) GroupBuySearchInfo gpsearch = new GroupBuySearchInfo { ProductId = product.Id, //NotLeader = user.Id, Status = (int)GroupBuyStatus.Going }; List <GroupBuyInfo> gpList = GroupBuyBLL.SearchList(gpsearch); gpList.ForEach(k => k.groupSignList = GroupSignBLL.ReadListByGroupId(k.Id)); gpList.ForEach(k => k.GroupUserName = System.Web.HttpUtility.UrlDecode(k.GroupUserName, Encoding.UTF8)); #endregion return(Json(new { ok = true, product = new { id = product.Id, img = ShopCommon.ShowImage(product.Photo.Replace("Original", "350-350")), imgorg = ShopCommon.ShowImage(product.Photo), title = product.Name, summary = product.Summary, price = currentMemberPrice, marketprice = product.MarketPrice, intro = string.IsNullOrEmpty(product.Introduction1_Mobile) ? product.Introduction1 : product.Introduction1_Mobile, remark = product.Remark, totalstore = product.StandardType == (int)ProductStandardType.Single ? ProductTypeStandardRecordBLL.GetSumStorageByProduct(product.Id) : product.TotalStorageCount, ordercount = product.UnlimitedStorage == 1 ? OrderBLL.GetProductOrderCountDaily(product.Id, product.StandardType, DateTime.Now) : product.OrderCount, unlimitedstorage = product.UnlimitedStorage, virtualordercount = product.VirtualOrderCount, usevirtualorder = product.UseVirtualOrder, opengroup = product.OpenGroup, groupprice = product.GroupPrice, groupquantity = product.GroupQuantity, qrcode = product.Qrcode, groupphoto = string.IsNullOrWhiteSpace(product.GroupPhoto) ? product.Photo : product.GroupPhoto }, standardList = standardList, standardRecordValueList = standardRecordValueList, attributeRecordList = attributeRecordList, productPhotoList = productPhotoList, prorecommend = prorelist, proComm = procomlist, maxPrice = maxPrice, groupList = gpList }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 页面加载 /// </summary> protected override void PageLoad() { base.PageLoad(); int count = int.MinValue; int id = RequestHelper.GetQueryString <int>("ID"); if (id <= 0) { ScriptHelper.AlertFront("该产品未上市,不能查看"); } string fromwhere = RequestHelper.GetQueryString <string>("fw"); product = ProductBLL.Read(id); if (product.IsSale == (int)BoolType.False || product.IsDelete == 1) { if (fromwhere.ToLower() != "admin") { ScriptHelper.Alert("该产品未上市,不能查看"); } else { if (Cookies.Admin.GetAdminID(true) == 0)//用户未登录 { ScriptHelper.Alert("该产品未上市,不能查看"); } } } navList = ProductClassBLL.ProductClassNameList(product.ClassId); //更新查看数量 ProductBLL.ChangeViewCount(id, 1); //会员等级 userGradeList = UserGradeBLL.ReadList(); //产品图片 ProductPhotoInfo productPhoto = new ProductPhotoInfo(); productPhoto.Name = product.Name; productPhoto.ImageUrl = product.Photo.Replace("Original", "75-75"); productPhotoList.Add(productPhoto); productPhotoList.AddRange(ProductPhotoBLL.ReadList(id, 0)); // 关联产品,配件,浏览过的商品 strHistoryProduct = Server.UrlDecode(CookiesHelper.ReadCookieValue("HistoryProduct")); string tempStrProductID = product.RelationProduct + "," + product.Accessory + "," + strHistoryProduct; tempStrProductID = tempStrProductID.Replace(",,", ","); if (tempStrProductID.StartsWith(",")) { tempStrProductID = tempStrProductID.Substring(1); } if (tempStrProductID.EndsWith(",")) { tempStrProductID = tempStrProductID.Substring(0, tempStrProductID.Length - 1); } ProductSearchInfo productSearch = new ProductSearchInfo(); productSearch.InProductId = tempStrProductID; productSearch.IsDelete = (int)BoolType.False; tempProductList = ProductBLL.SearchList(productSearch); //产品规格 standardRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(product.Id, product.StandardType); if (standardRecordList.Count > 0) { string[] standardIDArray = standardRecordList[0].StandardIdList.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < standardIDArray.Length; i++) { int standardID = Convert.ToInt32(standardIDArray[i]); ProductTypeStandardInfo standard = ProductTypeStandardBLL.Read(standardID); string[] valueArray = standard.ValueList.Split(';'); string valueList = string.Empty; for (int k = 0; k < valueArray.Length; k++) { foreach (ProductTypeStandardRecordInfo standardRecord in standardRecordList) { string[] tempValueArray = standardRecord.ValueList.Split(';'); if (valueArray[k] == tempValueArray[i]) { valueList += valueArray[k] + ";"; break; } } } if (valueList != string.Empty) { valueList = valueList.Substring(0, valueList.Length - 1); } standard.ValueList = valueList; standardList.Add(standard); } //规格值 foreach (ProductTypeStandardRecordInfo standardRecord in standardRecordList) { standardRecordValueList += standardRecord.ProductId + ";" + standardRecord.ValueList + "|"; } } //计算剩余库存量 if (ShopConfig.ReadConfigInfo().ProductStorageType == (int)ProductStorageType.SelfStorageSystem) { leftStorageCount = product.TotalStorageCount - product.OrderCount; } else { leftStorageCount = product.ImportVirtualStorageCount; } //搜索优化 Title = product.Name; Keywords = (product.Keywords == string.Empty) ? product.Name : product.Keywords; Description = (product.Summary == string.Empty) ? StringHelper.Substring(StringHelper.KillHTML(product.Introduction1), 200) : product.Summary; }
/// <summary> /// 页面加载 /// </summary> protected override void PageLoad() { base.PageLoad(); int count = int.MinValue; topNav = 2; int id = RequestHelper.GetQueryString <int>("ID"); if (id <= 0) { ScriptHelper.AlertFront("该产品未上市,不能查看"); } string fromwhere = RequestHelper.GetQueryString <string>("fw"); product = ProductBLL.Read(id); if (product.IsSale == (int)BoolType.False || product.IsDelete == 1) { if (fromwhere.ToLower() != "admin") { ScriptHelper.AlertFront("该产品未上市,不能查看"); } else { if (Cookies.Admin.GetAdminID(true) == 0)//用户未登录 { ScriptHelper.AlertFront("该产品未上市,不能查看"); } } } navList = ProductClassBLL.ProductClassNameList(product.ClassId); //更新查看数量 if (CookiesHelper.ReadCookie("productview" + product.Id + "") == null) { ProductBLL.ChangeViewCount(id, 1); CookiesHelper.AddCookie("productview" + product.Id + "", product.Id.ToString()); } ProductCommentSearchInfo proCommSear = new ProductCommentSearchInfo(); proComm = ProductCommentBLL.SearchProductCommentList(proCommSear = new ProductCommentSearchInfo { ProductId = product.Id }); //会员等级 userGradeList = UserGradeBLL.ReadList(); //产品价格 int hotCount = 0; currentMemberPrice = ProductBLL.GetCurrentPrice(product.SalePrice, base.GradeID); hotProductList = ProductBLL.SearchList(1, 7, new ProductSearchInfo { IsHot = (int)BoolType.True, IsSale = (int)BoolType.True, IsDelete = (int)BoolType.False, NotInProductId = product.Id.ToString() }, ref hotCount); ishot = ProductBLL.SearchList(1, 7, new ProductSearchInfo { IsHot = (int)BoolType.True, IsSale = (int)BoolType.True, IsTop = (int)BoolType.True, IsDelete = (int)BoolType.False, NotInProductId = product.Id.ToString() }, ref hotCount); proishot = ProductBLL.SearchList(1, 3, new ProductSearchInfo { IsSale = (int)BoolType.True, IsTop = (int)BoolType.True, IsDelete = (int)BoolType.False, NotInProductId = product.Id.ToString() }, ref hotCount); //产品图片 ProductPhotoInfo productPhoto = new ProductPhotoInfo(); productPhoto.Name = product.Name; productPhoto.ImageUrl = product.Photo; productPhotoList.Add(productPhoto); productPhotoList.AddRange(ProductPhotoBLL.ReadList(id, 0)); // 关联产品,配件,浏览过的商品 strHistoryProduct = Server.UrlDecode(CookiesHelper.ReadCookieValue("HistoryProduct")); string tempStrProductID = product.RelationProduct + "," + product.Accessory + "," + strHistoryProduct; tempStrProductID = tempStrProductID.Replace(",,", ","); if (tempStrProductID.StartsWith(",")) { tempStrProductID = tempStrProductID.Substring(1); } if (tempStrProductID.EndsWith(",")) { tempStrProductID = tempStrProductID.Substring(0, tempStrProductID.Length - 1); } ProductSearchInfo productSearch = new ProductSearchInfo(); productSearch.InProductId = tempStrProductID; tempProductList = ProductBLL.SearchList(productSearch); //属性 attributeRecordList = ProductTypeAttributeRecordBLL.ReadList(id); //产品文章 if (product.RelationArticle != string.Empty) { ArticleSearchInfo articleSearch = new ArticleSearchInfo(); articleSearch.InArticleId = product.RelationArticle; productArticleList = ArticleBLL.SearchList(articleSearch); } //产品规格 standardRecordList = ProductTypeStandardRecordBLL.ReadListByProduct(product.Id, product.StandardType); if (standardRecordList.Count > 0) { string[] standardIDArray = standardRecordList[0].StandardIdList.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < standardIDArray.Length; i++) { int standardID = Convert.ToInt32(standardIDArray[i]); ProductTypeStandardInfo standard = ProductTypeStandardBLL.Read(standardID); string[] valueArray = standard.ValueList.Split(';'); string valueList = string.Empty; for (int k = 0; k < valueArray.Length; k++) { foreach (ProductTypeStandardRecordInfo standardRecord in standardRecordList) { string[] tempValueArray = standardRecord.ValueList.Split(';'); if (valueArray[k] == tempValueArray[i]) { valueList += valueArray[k] + ";"; break; } } } if (valueList != string.Empty) { valueList = valueList.Substring(0, valueList.Length - 1); } standard.ValueList = valueList; standardList.Add(standard); } //规格值 foreach (ProductTypeStandardRecordInfo standardRecord in standardRecordList) { standardRecordValueList += standardRecord.ProductId + ";" + standardRecord.ValueList + "|"; } } //计算剩余库存量 leftStorageCount = product.TotalStorageCount - product.OrderCount; //搜索优化 Title = (product.SubTitle == string.Empty) ? product.Name : product.SubTitle; Keywords = (product.Keywords == string.Empty) ? product.Name : product.Keywords; Description = (product.Summary == string.Empty) ? StringHelper.Substring(StringHelper.KillHTML(product.Introduction1), 200) : product.Summary; }
/// <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"); }
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="orderID"></param> protected void AddOrderProduct(int orderID) { List <CartInfo> cartList = CartBLL.ReadList(base.UserId); //读取产品 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(); string strProductID = string.Empty; foreach (CartInfo cart in cartList) { if (strProductID == string.Empty) { strProductID = cart.ProductId.ToString(); } else { strProductID += "," + cart.ProductId.ToString(); } } List <ProductInfo> productList = new List <ProductInfo>(); if (strProductID != string.Empty) { ProductSearchInfo productSearch = new ProductSearchInfo(); productSearch.InProductId = strProductID; productList = ProductBLL.SearchList(productSearch); } //会员价格 //List<MemberPriceInfo> memberPriceList = MemberPriceBLL.ReadMemberPriceByProductGrade(strProductID, base.GradeID); //添加订单产品 Dictionary <string, bool> cartDic = new Dictionary <string, bool>(); Dictionary <int, int> cartOrderDetailDic = new Dictionary <int, int>(); foreach (CartInfo cart in cartList) { ProductInfo product = ProductBLL.ReadProductByProductList(productList, cart.ProductId); OrderDetailInfo orderDetail = new OrderDetailInfo(); orderDetail.OrderId = orderID; orderDetail.ProductId = cart.ProductId; orderDetail.ProductName = cart.ProductName; orderDetail.StandardValueList = cart.StandardValueList; orderDetail.ProductWeight = product.Weight; orderDetail.SendPoint = product.SendPoint; if (!string.IsNullOrEmpty(cart.StandardValueList)) { var standardRecord = ProductTypeStandardRecordBLL.Read(cart.ProductId, cart.StandardValueList); orderDetail.ProductPrice = ProductBLL.GetCurrentPrice(standardRecord.SalePrice, base.GradeID); } else { orderDetail.ProductPrice = ProductBLL.GetCurrentPrice(cart.Product.SalePrice, base.GradeID); } orderDetail.BuyCount = cart.BuyCount; orderDetail.RandNumber = cart.RandNumber; int orderDetailID = OrderDetailBLL.Add(orderDetail); cartOrderDetailDic.Add(cart.Id, orderDetailID); } /*-----------删除购物车中已下单的商品-----------------------------------*/ CartBLL.Delete(cartIds, base.UserId); CookiesHelper.DeleteCookie("CheckCart"); /*----------------------------------------------------------------------*/ }
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> /// <returns></returns> public ActionResult GroupBuyDetail() { int id = RequestHelper.GetForm <int>("id"); GroupBuyInfo entity = GroupBuyBLL.Read(id); if (entity.Id <= 0) { return(Json(new { ok = false, msg = "拼团商品不存在" })); } var product = ProductBLL.Read(entity.ProductId); if (product.Id <= 0) { return(Json(new { ok = false, msg = "拼团商品不存在" })); } if (product.OpenGroup != 1) { return(Json(new { ok = false, msg = "此商品暂不支持拼团" })); } //拼团状态 entity.VirtualStatus = (entity.EndTime <DateTime.Now && entity.Quantity> entity.SignCount) ? -1 : (entity.StartTime <= DateTime.Now && entity.EndTime >= DateTime.Now && entity.Quantity > entity.SignCount) ? 0 : (entity.StartTime <= DateTime.Now && entity.EndTime >= DateTime.Now && entity.Quantity <= entity.SignCount) ? 1 : -1; //除团长以外其他参与者 List <GroupSignInfo> signList = GroupSignBLL.ReadListByGroupId(id).Where(k => k.UserId != entity.Leader).ToList(); #region 推荐商品 int userGrade = UserGradeBLL.ReadByMoney(0).Id; int uid = RequestHelper.GetForm <int>("uid"); var user = UserBLL.ReadUserMore(uid); if (user != null && user.Id > 0) { userGrade = UserGradeBLL.ReadByMoney(user.MoneyUsed).Id; } int hotCount = 0; var prorecommend = ProductBLL.SearchList(1, 4, new ProductSearchInfo { IsSale = (int)BoolType.True, IsTop = (int)BoolType.True, IsDelete = (int)BoolType.False, NotInProductId = product.Id.ToString() }, ref hotCount); var prorelist = new List <ProductVirtualModel>(); foreach (var item in prorecommend) { var vp = new ProductVirtualModel() { id = item.Id, name = item.Name, img = ShopCommon.ShowImage(item.Photo.Replace("Original", "150-150")), imgbig = ShopCommon.ShowImage(item.Photo.Replace("Original", "350-350")), imgorg = ShopCommon.ShowImage(item.Photo), price = ProductBLL.GetCurrentPrice(item.SalePrice, userGrade), click = item.ViewCount, like = item.LikeNum, totalstore = item.StandardType == (int)ProductStandardType.Single ? ProductTypeStandardRecordBLL.GetSumStorageByProduct(item.Id) : item.TotalStorageCount, //ordercount = item.OrderCount //是否启用不限库存,分别计算销量 ordercount = item.UnlimitedStorage == 1 ? OrderBLL.GetProductOrderCountDaily(item.Id, item.StandardType, DateTime.Now) : item.OrderCount }; prorelist.Add(vp); } #endregion return(Json(new { ok = true, entity = entity, product = product, signlist = signList, topproductlist = prorelist })); }