/// <summary> /// 保存数据 /// </summary> private void OnCommit() { #region 获取输入并验证 string sCategoryId = string.Empty; if (ddlCategory.SelectedIndex > 0) { sCategoryId = ddlCategory.SelectedValue; } else { WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, "所属分类为必选项"); return; } string sProductName = txtProductName.Value.Trim(); string sSubtitle = txtSubtitle.Value.Trim(); string sProductPrice = txtPrice.Value.Trim(); decimal productPrice = 0; if (!decimal.TryParse(sProductPrice, out productPrice)) { WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, "价格正确格式为:整数或浮点数"); return; } DateTime dtNow = DateTime.Now; string sPNum = txtPNum.Value.Trim(); string sStockNum = txtStockNum.Value.Trim(); int stockNum = 0; if (!int.TryParse(sStockNum, out stockNum)) { WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, "库存正确格式为:整数"); return; } string sMarketPrice = txtMarketPrice.Value.Trim(); decimal marketPrice = 0; if (!decimal.TryParse(sMarketPrice, out marketPrice)) { WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, "市场价正确格式为:整数或浮点数"); return; } string sPayOptions = txtPayOptions.Value.Trim(); string sCustomAttrs = hCustomAttrs.Value.Trim().Trim('|'); string sDescr = HttpUtility.HtmlDecode(hEditor1.Value); string sHUploadify = hUploadify.Value.Trim().Trim(','); string sImgmain = hPImagMain.Value.Trim(); #endregion if (bll == null) { bll = new BLL.Product(); } Model.Product model = new Model.Product(); string sNewImgmain = sImgmain; string sImagesAppend = string.Empty; //原始图片 string sMainImage = string.Empty; //原始商品主图片 只一个 string sImagesUrl = string.Empty; //产品图片 只一个 string sLImagesUrl = string.Empty; //产品大图 string sMImagesUrl = string.Empty; //产品中图 string sSImagesUrl = string.Empty; //产品小图 string htmlAppend = ""; string errorMsg = string.Empty; if (!string.IsNullOrEmpty(nId)) { #region 修改商品时,对商品图片的操作 if (ViewState["ProductModel"] != null) { WebHelper.UploadFilesHelper ufh = new WebHelper.UploadFilesHelper(); model = (Model.Product)ViewState["ProductModel"]; sMainImage = model.MainImage; sImagesUrl = model.ImagesUrl; sImagesAppend = model.ImagesAppend; sLImagesUrl = model.LImagesUrl; sMImagesUrl = model.MImagesUrl; sSImagesUrl = model.SImagesUrl; List <string> imagesAppends = sImagesAppend.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(); List <string> lImages = sLImagesUrl.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(); List <string> mImages = sMImagesUrl.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(); List <string> sImages = sSImagesUrl.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(); List <string> newImagesAppends = sHUploadify.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(); //取交集 List <string> A = newImagesAppends.Intersect(imagesAppends).ToList <string>(); //取差集 List <string> B = newImagesAppends.Except(imagesAppends).ToList <string>(); //取差集 List <string> C = imagesAppends.Except(newImagesAppends).ToList <string>(); try { if (sImgmain != sMainImage) { if (string.IsNullOrEmpty(sImgmain)) { sMainImage = string.Empty; sImagesUrl = string.Empty; } else if (sImgmain.IndexOf("Product") > -1) { sMainImage = sImgmain; sImagesUrl = ufh.GetProductImgMain(sImgmain); } else { string pItemUrl = ufh.FromTempToProduct("~" + sImgmain); htmlAppend += pItemUrl + ","; sNewImgmain = pItemUrl; imagesAppends.Add(pItemUrl); string[] itemthumbnailImages = ufh.GetProductThumbnailImages(pItemUrl); lImages.Add(itemthumbnailImages[1]); mImages.Add(itemthumbnailImages[2]); sImages.Add(itemthumbnailImages[3]); } } foreach (string item in B) { if (item.Trim() != sImgmain) { string pItemUrl = ufh.FromTempToProduct("~" + item); imagesAppends.Add(pItemUrl); string[] itemthumbnailImages = ufh.GetProductThumbnailImages(pItemUrl); lImages.Add(itemthumbnailImages[1]); mImages.Add(itemthumbnailImages[2]); sImages.Add(itemthumbnailImages[3]); } } foreach (string item in C) { imagesAppends.Remove(item); string fileName = VirtualPathUtility.GetFileName(item); string sExtension = VirtualPathUtility.GetExtension(item); string dirName = VirtualPathUtility.GetDirectory(item); string parentPath = dirName + fileName.Replace(sExtension, "") + "/"; lImages.Remove(lImages.Find(delegate(string m) { return(VirtualPathUtility.GetDirectory(m) == parentPath); })); mImages.Remove(lImages.Find(delegate(string m) { return(VirtualPathUtility.GetDirectory(m) == parentPath); })); sImages.Remove(lImages.Find(delegate(string m) { return(VirtualPathUtility.GetDirectory(m) == parentPath); })); ufh.DeleteProductImage("~" + item); } } catch (Exception ex) { errorMsg = ex.Message; } if (B.Count > 0 || C.Count > 0) { sImagesAppend = ""; sLImagesUrl = ""; sMImagesUrl = ""; sSImagesUrl = ""; foreach (string item in imagesAppends) { sImagesAppend += item + ","; htmlAppend += item + ","; } foreach (string item in lImages) { sLImagesUrl += item + ","; } foreach (string item in mImages) { sMImagesUrl += item + ","; } foreach (string item in sImages) { sSImagesUrl += item + ","; } sImagesAppend = sImagesAppend.Trim(','); sLImagesUrl = sLImagesUrl.Trim(','); sMImagesUrl = sMImagesUrl.Trim(','); sSImagesUrl = sSImagesUrl.Trim(','); } } #endregion } else { #region 新增商品时,对商品图片操作 if (!string.IsNullOrEmpty(sHUploadify)) { WebHelper.UploadFilesHelper ufh = new WebHelper.UploadFilesHelper(); string[] items = sHUploadify.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); try { sNewImgmain = ufh.FromTempToProduct("~" + sNewImgmain); string[] thumbnailImages = ufh.GetProductThumbnailImages(sNewImgmain); sMainImage = sNewImgmain; sImagesUrl = thumbnailImages[0]; sLImagesUrl += thumbnailImages[1] + ","; sMImagesUrl += thumbnailImages[2] + ","; sSImagesUrl += thumbnailImages[3] + ","; htmlAppend += sNewImgmain + ","; sImagesAppend += sNewImgmain + ","; foreach (string item in items) { if (item.Trim() != sImgmain) { string pItemUrl = ufh.FromTempToProduct("~" + item); sImagesAppend += pItemUrl + ","; htmlAppend += pItemUrl + ","; string[] itemthumbnailImages = ufh.GetProductThumbnailImages(pItemUrl); sLImagesUrl += itemthumbnailImages[1] + ","; sMImagesUrl += itemthumbnailImages[2] + ","; sSImagesUrl += itemthumbnailImages[3] + ","; } } sImagesAppend = sImagesAppend.Trim(','); htmlAppend = htmlAppend.Trim(','); sLImagesUrl = sLImagesUrl.Trim(','); sMImagesUrl = sMImagesUrl.Trim(','); sSImagesUrl = sSImagesUrl.Trim(','); } catch (Exception ex) { errorMsg = ex.Message; } } #endregion } if (!string.IsNullOrEmpty(errorMsg)) { WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, errorMsg, "系统异常提醒"); return; } hUploadify.Value = htmlAppend; hPImagMain.Value = sNewImgmain; model.CategoryId = sCategoryId; model.ProductName = sProductName; model.Subtitle = sSubtitle; model.ProductPrice = productPrice; model.ImagesUrl = sImagesUrl; model.CreateDate = dtNow; model.PNum = sPNum; model.StockNum = stockNum; model.ImagesAppend = sImagesAppend; model.MainImage = sMainImage; model.LImagesUrl = sLImagesUrl; model.MImagesUrl = sMImagesUrl; model.SImagesUrl = sSImagesUrl; model.MarketPrice = marketPrice; model.PayOptions = sPayOptions; model.CustomAttrs = sCustomAttrs; model.Descr = sDescr; int result = -1; if (!string.IsNullOrEmpty(nId)) { model.ProductId = nId; result = bll.Update(model); } else { model.UserId = userId; result = bll.Insert(model); } if (result == 110) { WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, "已存在相同记录!"); return; } if (result > 0) { WebHelper.MessageBox.MessagerShow(this.Page, lbtnPostBack, "提交成功!", "ListProduct.aspx"); } else { WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, "提交失败,系统异常!", "系统提示"); } }