/// <summary> /// 是否可领取优惠券 /// </summary> /// <param name="vshopId"></param> /// <param name="couponId"></param> /// <returns></returns> //private int Receive(long vshopId, long couponId) //{ // if (CurrentUser != null && CurrentUser.Id > 0)//未登录不可领取 // { // var couponService = ServiceProvider.Instance<ICouponService>.Create; // var couponInfo = couponService.GetCouponInfo(couponId); // if (couponInfo.EndTime < DateTime.Now) return 2;//已经失效 // CouponRecordQuery crQuery = new CouponRecordQuery(); // crQuery.CouponId = couponId; // crQuery.UserId = CurrentUser.Id; // ObsoletePageModel<CouponRecordInfo> pageModel = couponService.GetCouponRecordList(crQuery); // if (couponInfo.PerMax != 0 && pageModel.Total >= couponInfo.PerMax) return 3;//达到个人领取最大张数 // crQuery = new CouponRecordQuery() // { // CouponId = couponId // }; // pageModel = couponService.GetCouponRecordList(crQuery); // if (pageModel.Total >= couponInfo.Num) return 4;//达到领取最大张数 // if (couponInfo.ReceiveType == Himall.Model.CouponInfo.CouponReceiveType.IntegralExchange) // { // var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUserId); // if (userInte.AvailableIntegrals < couponInfo.NeedIntegral) return 5;//积分不足 // } // return 1;//可正常领取 // } // return 0; //} /// <summary> /// 将商品关联版式组合商品描述 /// </summary> /// <param name="pid"></param> /// <returns></returns> private string GetProductDescription(ProductDescriptionInfo productDescription) { if (productDescription == null) { throw new Himall.Core.HimallException("错误的商品信息"); } string descriptionPrefix = "", descriptiondSuffix = ""; //顶部底部版式 string description = productDescription.ShowMobileDescription.Replace("src=\"/Storage/", "src=\"" + Core.HimallIO.GetRomoteImagePath("/Storage/")); //商品描述 var iprodestempser = ServiceHelper.Create <IProductDescriptionTemplateService>(); if (productDescription.DescriptionPrefixId != 0) { var desc = iprodestempser.GetTemplate(productDescription.DescriptionPrefixId, productDescription.ProductInfo.ShopId); descriptionPrefix = desc == null ? "" : desc.MobileContent.Replace("src=\"/Storage/", "src=\"" + Core.HimallIO.GetRomoteImagePath("/Storage/")); } if (productDescription.DescriptiondSuffixId != 0) { var desc = iprodestempser.GetTemplate(productDescription.DescriptiondSuffixId, productDescription.ProductInfo.ShopId); descriptiondSuffix = desc == null ? "" : desc.MobileContent.Replace("src=\"/Storage/", "src=\"" + Core.HimallIO.GetRomoteImagePath("/Storage/")); } return(string.Format("{0}{1}{2}", descriptionPrefix, description, descriptiondSuffix)); }
/*根据产品ID获取产品描述*/ public ProductDescriptionInfo Get_ProductDescriptionInfo_Id(long id) { ProductDescriptionInfo _ProductDescriptionInfo = new ProductDescriptionInfo(); _ProductDescriptionInfo = context.ProductDescriptionInfo.FindById(id); return(_ProductDescriptionInfo); }
/// <summary> /// 更新诊疗项目 /// </summary> /// <param name="product">修改后的诊疗项目</param> /// <param name="pics">需要转移的诊疗项目图片地址</param> /// <param name="skus">skus,至少要有一项</param> /// <param name="description">描述</param> /// <param name="attributes">诊疗项目属性</param> /// <param name="goodsCategory">诊所分类</param> /// <param name="sellerSpecifications">诊所自定义规格</param> public static void UpdateProduct(Product product, string[] pics, SKU[] skus, ProductDescription description, ProductAttribute[] attributes, long[] goodsCategory, SellerSpecificationValue[] sellerSpecifications) { Func <string, bool> predicate = null; ProductInfo productInfo = _productService.GetProduct(product.Id); if (productInfo == null) { throw new HimallException("指定id对应的数据不存在"); } ProductInfo.ProductEditStatus editStatus = (ProductInfo.ProductEditStatus)productInfo.EditStatus; if (product.ProductName != productInfo.ProductName) { editStatus = GetEditStatus(editStatus); } if (product.ShortDescription != productInfo.ShortDescription) { editStatus = GetEditStatus(editStatus); } product.AddedDate = productInfo.AddedDate; if (productInfo.SaleStatus != ProductInfo.ProductSaleStatus.InDraft) { product.SaleStatus = productInfo.SaleStatus; } product.AuditStatus = productInfo.AuditStatus; product.DisplaySequence = productInfo.DisplaySequence; product.ShopId = productInfo.ShopId; product.HasSKU = productInfo.HasSKU; product.ImagePath = productInfo.ImagePath; product.SaleCounts = productInfo.SaleCounts; if (pics != null) { if (predicate == null) { predicate = path => string.IsNullOrWhiteSpace(path) || !path.StartsWith(productInfo.ImagePath); } if (pics.Any <string>(predicate)) { editStatus = GetEditStatus(editStatus); } } product.DynamicMap <Himall.DTO.Product.Product, ProductInfo>(productInfo); productInfo.EditStatus = (int)editStatus; SKUInfo[] infoArray = skus.Map <SKUInfo[]>(); ProductDescriptionInfo info = description.Map <ProductDescriptionInfo>(); ProductAttributeInfo[] infoArray2 = attributes.Map <ProductAttributeInfo[]>(); SellerSpecificationValueInfo[] infoArray3 = sellerSpecifications.Map <SellerSpecificationValueInfo[]>(); _productService.UpdateProduct(productInfo, pics, infoArray, info, infoArray2, goodsCategory, infoArray3); CreateHtml(product.Id); }
private int ProcessProduct(long paraCategory, long paraShopCategory, long paraBrand, int paraSaleStatus, long _shopid, long _userid, string mainpath, string imgpath1, string imgpath2) { string str; ProductQuery productQuery; IProductService productService; long nextProductId; long num; decimal num1; decimal num1_min; ProductInfo productInfo; int num2 = 0; string str1 = mainpath; CategoryInfo category = ServiceHelper.Create <ICategoryService>().GetCategory(paraCategory); if (Directory.Exists(str1)) { string[] files = Directory.GetFiles(str1, "*.csv", SearchOption.AllDirectories); string empty = string.Empty; string[] strArrays = new string[0]; for (int i = 0; i < files.Length; i++) { using (StreamReader streamReader = System.IO.File.OpenText(files[i])) { int num3 = 0; List <string> strs = new List <string>(); while (true) { string str2 = streamReader.ReadLine(); empty = str2; if (str2 == null || string.IsNullOrEmpty(empty)) { break; } num3++; if (num3 >= 4) { strs.Add(empty); } } Cache.Insert(CacheKeyCollection.UserImportProductTotal(_userid), strs.Count); int rowId = 0; foreach (string str3 in strs) { string[] strArrays1 = new string[] { "\t" }; strArrays = str3.Split(strArrays1, StringSplitOptions.None); int length = strArrays.Length; if (length == 58) //淘宝5.6版本 { str = strArrays[0].Replace("\"", ""); productQuery = new ProductQuery() { CategoryId = new long?(category.Id), ShopId = new long?(_shopid), KeyWords = str }; productService = ServiceHelper.Create <IProductService>(); if (productService.GetProducts(productQuery).Total <= 0) { nextProductId = productService.GetNextProductId(); num = 0; num1 = decimal.Parse((strArrays[7] == string.Empty ? "0" : strArrays[7])); ProductInfo productInfo1 = new ProductInfo() { Id = nextProductId, TypeId = category.TypeId, AddedDate = DateTime.Now, BrandId = paraBrand, CategoryId = category.Id, CategoryPath = category.Path, MarketPrice = num1, ShortDescription = string.Empty, ProductCode = strArrays[33].Replace("\"", ""), ImagePath = "", DisplaySequence = 1, ProductName = strArrays[0].Replace("\"", ""), MinSalePrice = num1, ShopId = _shopid, HasSKU = true, ProductAttributeInfo = new List <ProductAttributeInfo>() }; List <ProductShopCategoryInfo> productShopCategoryInfos = new List <ProductShopCategoryInfo>(); ProductShopCategoryInfo productShopCategoryInfo = new ProductShopCategoryInfo() { ProductId = nextProductId, ShopCategoryId = paraShopCategory }; productShopCategoryInfos.Add(productShopCategoryInfo); productInfo1.Himall_ProductShopCategories = productShopCategoryInfos; ProductDescriptionInfo productDescriptionInfo = new ProductDescriptionInfo() { AuditReason = "", Description = strArrays[20].Replace("\"", ""), DescriptiondSuffixId = 0, DescriptionPrefixId = 0, Meta_Description = string.Empty, Meta_Keywords = string.Empty, Meta_Title = string.Empty, ProductId = nextProductId }; productInfo1.ProductDescriptionInfo = productDescriptionInfo; ProductInfo productInfo2 = productInfo1; List <SKUInfo> sKUInfos = new List <SKUInfo>(); List <SKUInfo> sKUInfos1 = sKUInfos; SKUInfo sKUInfo = new SKUInfo(); object[] objArray = new object[] { nextProductId, "0", "0", "0" }; sKUInfo.Id = string.Format("{0}_{1}_{2}_{3}", objArray); sKUInfo.Stock = (long.TryParse(strArrays[9], out num) ? num : 0); sKUInfo.SalePrice = num1; sKUInfo.CostPrice = num1; sKUInfos1.Add(sKUInfo); productInfo2.SKUInfo = sKUInfos; productInfo1.SaleStatus = (paraSaleStatus == 1 ? ProductInfo.ProductSaleStatus.OnSale : ProductInfo.ProductSaleStatus.InStock); productInfo1.AuditStatus = ProductInfo.ProductAuditStatus.WaitForAuditing; productInfo = productInfo1; long id = productInfo.Id; productInfo.ImagePath = string.Concat(imgpath1, "//", id.ToString()); if (strArrays[28] != string.Empty) { ImportProductImg(productInfo.Id, _shopid, files[i], strArrays[28]); } productService.AddProduct(productInfo); num2++; Log.Debug(strArrays[0].Replace("\"", "")); Cache.Insert(CacheKeyCollection.UserImportProductCount(_userid), num2); } else { num2++; Log.Debug(string.Concat(strArrays[0].Replace("\"", ""), " : 商品不能重复导入")); Cache.Insert(CacheKeyCollection.UserImportProductCount(_userid), num2); } } else if (length == 63) //淘宝5.7版本 { str = strArrays[0].Replace("\"", ""); productQuery = new ProductQuery() { CategoryId = new long?(category.Id), ShopId = new long?(_shopid), KeyWords = str }; productService = ServiceHelper.Create <IProductService>(); if (productService.GetProducts(productQuery).Total <= 0) { nextProductId = productService.GetNextProductId(); num1 = decimal.Parse((strArrays[7] == string.Empty ? "0" : strArrays[7])); ProductInfo productInfo3 = new ProductInfo() { Id = nextProductId, TypeId = category.TypeId, AddedDate = DateTime.Now, BrandId = paraBrand, CategoryId = category.Id, CategoryPath = category.Path, MarketPrice = num1, ShortDescription = string.Empty, ProductCode = strArrays[33].Replace("\"", ""), ImagePath = "", DisplaySequence = 1, ProductName = strArrays[0].Replace("\"", ""), MinSalePrice = num1, ShopId = _shopid, HasSKU = true, ProductAttributeInfo = new List <ProductAttributeInfo>() }; List <ProductShopCategoryInfo> productShopCategoryInfos1 = new List <ProductShopCategoryInfo>(); ProductShopCategoryInfo productShopCategoryInfo1 = new ProductShopCategoryInfo() { ProductId = nextProductId, ShopCategoryId = paraShopCategory }; productShopCategoryInfos1.Add(productShopCategoryInfo1); productInfo3.Himall_ProductShopCategories = productShopCategoryInfos1; ProductDescriptionInfo productDescriptionInfo1 = new ProductDescriptionInfo() { AuditReason = "", Description = strArrays[20].Replace("\"", ""), DescriptiondSuffixId = 0, DescriptionPrefixId = 0, Meta_Description = string.Empty, Meta_Keywords = string.Empty, Meta_Title = string.Empty, ProductId = nextProductId }; productInfo3.ProductDescriptionInfo = productDescriptionInfo1; ProductInfo productInfo4 = productInfo3; List <SKUInfo> sKUInfos2 = new List <SKUInfo>(); List <SKUInfo> sKUInfos3 = sKUInfos2; SKUInfo sKUInfo1 = new SKUInfo(); object[] objArray1 = new object[] { nextProductId, "0", "0", "0" }; sKUInfo1.Id = string.Format("{0}_{1}_{2}_{3}", objArray1); sKUInfo1.Stock = (long.TryParse(strArrays[9], out num) ? num : 0); sKUInfo1.SalePrice = num1; sKUInfo1.CostPrice = num1; sKUInfos3.Add(sKUInfo1); productInfo4.SKUInfo = sKUInfos2; productInfo3.SaleStatus = (paraSaleStatus == 1 ? ProductInfo.ProductSaleStatus.OnSale : ProductInfo.ProductSaleStatus.InStock); productInfo3.AuditStatus = ProductInfo.ProductAuditStatus.WaitForAuditing; productInfo = productInfo3; long id1 = productInfo.Id; //productInfo.ImagePath = string.Concat(imgpath1, "//", rowId.ToString()); productInfo.ImagePath = string.Concat(imgpath1, "/", id1.ToString()); if (strArrays[28] != string.Empty) { ImportProductImg(productInfo.Id, _shopid, files[i], strArrays[28]); } productInfo.MeasureUnit = "件"; // productInfo.Weight = 0; // productInfo.Volume = 0; // productInfo.EditStatus = 3; productInfo.FreightTemplateId = 139; productService.AddProduct(productInfo); num2++; Log.Debug(strArrays[0].Replace("\"", "")); Cache.Insert(CacheKeyCollection.UserImportProductCount(_userid), num2); } else { num2++; Log.Debug(string.Concat(strArrays[0].Replace("\"", ""), " : 商品不能重复导入")); Cache.Insert(CacheKeyCollection.UserImportProductCount(_userid), num2); } } else if (length == 19) // { str = strArrays[0].Replace("\"", ""); productQuery = new ProductQuery() { CategoryId = new long?(category.Id), ShopId = new long?(_shopid), KeyWords = str }; productService = ServiceHelper.Create <IProductService>(); if (productService.GetProducts(productQuery).Total <= 0) { nextProductId = productService.GetNextProductId(); num1 = decimal.Parse((strArrays[1] == string.Empty ? "0" : strArrays[1])); num1_min = decimal.Parse((strArrays[2] == string.Empty ? "0" : strArrays[2])); ProductInfo productInfo3 = new ProductInfo() { Id = nextProductId, TypeId = category.TypeId, AddedDate = DateTime.Now, BrandId = paraBrand, CategoryId = category.Id, CategoryPath = category.Path, MarketPrice = num1, ShortDescription = string.Empty, ProductCode = strArrays[15].Replace("\"", ""), ImagePath = "", DisplaySequence = 1, ProductName = strArrays[0].Replace("\"", ""), MinSalePrice = num1_min, ShopId = _shopid, HasSKU = true, ProductAttributeInfo = new List <ProductAttributeInfo>() }; List <ProductShopCategoryInfo> productShopCategoryInfos1 = new List <ProductShopCategoryInfo>(); ProductShopCategoryInfo productShopCategoryInfo1 = new ProductShopCategoryInfo() { ProductId = nextProductId, ShopCategoryId = paraShopCategory }; productShopCategoryInfos1.Add(productShopCategoryInfo1); productInfo3.Himall_ProductShopCategories = productShopCategoryInfos1; ProductDescriptionInfo productDescriptionInfo1 = new ProductDescriptionInfo() { AuditReason = "", Description = strArrays[11].Replace("\"", ""), DescriptiondSuffixId = 0, DescriptionPrefixId = 0, Meta_Description = string.Empty, Meta_Keywords = string.Empty, Meta_Title = string.Empty, ProductId = nextProductId }; productInfo3.ProductDescriptionInfo = productDescriptionInfo1; ProductInfo productInfo4 = productInfo3; List <SKUInfo> sKUInfos2 = new List <SKUInfo>(); List <SKUInfo> sKUInfos3 = sKUInfos2; SKUInfo sKUInfo1 = new SKUInfo(); object[] objArray1 = new object[] { nextProductId, "0", "0", "0" }; sKUInfo1.Id = string.Format("{0}_{1}_{2}_{3}", objArray1); sKUInfo1.Stock = (long.TryParse(strArrays[9], out num) ? num : 0); sKUInfo1.SalePrice = num1; sKUInfo1.CostPrice = num1; sKUInfos3.Add(sKUInfo1); productInfo4.SKUInfo = sKUInfos2; productInfo3.SaleStatus = (paraSaleStatus == 1 ? ProductInfo.ProductSaleStatus.OnSale : ProductInfo.ProductSaleStatus.InStock); productInfo3.AuditStatus = ProductInfo.ProductAuditStatus.WaitForAuditing; productInfo = productInfo3; long id1 = productInfo.Id; productInfo.ImagePath = string.Concat(imgpath1, "/", rowId.ToString()); if (strArrays[14] != string.Empty) { ImportProductImg(productInfo.Id, _shopid, files[i], strArrays[14]); } productInfo.MeasureUnit = strArrays[5].Replace("\"", ""); // productInfo.Volume = null; // productInfo.Weight = null; // productInfo.EditStatus = 3; productInfo.FreightTemplateId = 139; productService.AddProduct(productInfo); num2++; Log.Debug(strArrays[0].Replace("\"", "")); Cache.Insert(CacheKeyCollection.UserImportProductCount(_userid), num2); } else { num2++; Log.Debug(string.Concat(strArrays[0].Replace("\"", ""), " : 商品不能重复导入")); Cache.Insert(CacheKeyCollection.UserImportProductCount(_userid), num2); } } rowId++; } } } } return(num2); }
public static ProductInfo GetProductInfo(ProductDetailModel m, long productId) { CategoryInfo category = ServiceHelper.Create <ICategoryService>().GetCategory(m.categoryId); decimal num = new decimal(0); if (m.specificationsValue.Count <= 0) { num = decimal.Parse(m.mallPrce); } else { List <decimal> list = ( from p in m.specificationsValue select decimal.Parse(p.mallPrice)).ToList(); num = list.Min(); } ProductInfo productInfo = new ProductInfo() { Id = productId, TypeId = category.TypeId, AddedDate = DateTime.Now, BrandId = m.brandId, CategoryId = m.categoryId, CategoryPath = category.Path, MarketPrice = decimal.Parse(m.marketPrice), ShortDescription = m.adWord, ProductCode = m.productCode, ImagePath = "", DisplaySequence = 1, ProductName = m.goodsName, MinSalePrice = num, ShopId = 1, HasSKU = true, DisableBuy = m.DisableBuy, Quantity = Convert.ToInt32(m.stock),//¿â´æ ProductAttributeInfo = new List <ProductAttributeInfo>(), Himall_ProductShopCategories = new List <ProductShopCategoryInfo>() }; ProductDescriptionInfo productDescriptionInfo = new ProductDescriptionInfo() { AuditReason = "", Description = m.des, MobileDescription = m.mdes, DescriptionPrefixId = m.styleTemplateId[0], DescriptiondSuffixId = m.styleTemplateId[1], Meta_Description = m.seoDes, Meta_Keywords = m.seoKey, Meta_Title = m.seoTitle, ProductId = productId }; productInfo.ProductDescriptionInfo = productDescriptionInfo; productInfo.SKUInfo = new List <SKUInfo>(); productInfo.SaleStatus = (ProductInfo.ProductSaleStatus)m.saleStatus; productInfo.AuditStatus = ProductInfo.ProductAuditStatus.WaitForAuditing; productInfo.FreightTemplateId = m.FreightTemplateId; productInfo.MeasureUnit = m.MeasureUnit; productInfo.Volume = new decimal?(m.Volume); productInfo.Weight = new decimal?(m.Weight); ProductInfo productInfo1 = productInfo; foreach (AttrSelectData attrSelectDatum in m.attrSelectData) { string[] strArrays = attrSelectDatum.valueId.Split(new char[] { ',' }); for (int i = 0; i < strArrays.Length; i++) { string str = strArrays[i]; if (!string.IsNullOrWhiteSpace(str)) { ICollection <ProductAttributeInfo> productAttributeInfo = productInfo1.ProductAttributeInfo; ProductAttributeInfo productAttributeInfo1 = new ProductAttributeInfo() { AttributeId = attrSelectDatum.attrId, ProductId = productId, ValueId = long.Parse(str) }; productAttributeInfo.Add(productAttributeInfo1); } } } foreach (long num1 in m.goodsCategory) { if (num1.Equals(0)) { continue; } ICollection <ProductShopCategoryInfo> himallProductShopCategories = productInfo1.Himall_ProductShopCategories; ProductShopCategoryInfo productShopCategoryInfo = new ProductShopCategoryInfo() { ProductId = productId, ShopCategoryId = num1 }; himallProductShopCategories.Add(productShopCategoryInfo); } return(productInfo1); }
public static ProductInfo GetProductInfo(ProductDetailModel m, long productId) { CategoryInfo category = ServiceHelper.Create <ICategoryService>().GetCategory(m.categoryId); ProductInfo productInfo = new ProductInfo() { Id = productId, TypeId = category.TypeId, AddedDate = DateTime.Now, BrandId = 0, CategoryId = m.categoryId, CategoryPath = category.Path, MarketPrice = decimal.Parse(m.marketPrice), ShortDescription = m.adWord, ProductCode = m.productCode, ImagePath = "", DisplaySequence = 1, ProductName = m.goodsName, MinSalePrice = 0, ShopId = 1, HasSKU = true, EProductName = m.EProductName, CASNo = m.CASNo, Purity = m.Purity, HSCODE = m.HSCODE, DangerLevel = m.DangerLevel, MolecularFormula = m.MolecularFormula, ISCASNo = m.ISCASNo, Alias = m.Alias, Ealias = m.Ealias, MolecularWeight = m.MolecularWeight, PASNo = m.PASNo, LogP = m.LogP, Shape = m.Shape, Density = m.Density, FusingPoint = m.FusingPoint, BoilingPoint = m.BoilingPoint, FlashPoint = m.FlashPoint, RefractiveIndex = m.RefractiveIndex, StorageConditions = m.StorageConditions, VapourPressure = m.VapourPressure, PackagingLevel = m.PackagingLevel, SafetyInstructions = m.SafetyInstructions, DangerousMark = m.DangerousMark, RiskCategoryCode = m.RiskCategoryCode, TransportationNmber = m.TransportationNmber, RETCS = m.RETCS, WGKGermany = m.WGKGermany, SyntheticRoute = m.SyntheticRoute, RelatedProducts = m.RelatedProducts, MSDS = m.MSDS, NMRSpectrum = m.NMRSpectrum, STRUCTURE_2D = m.STRUCTURE_2D, Plat_Code = m.Plat_Code, ProductAttributeInfo = new List <ProductAttributeInfo>(), ChemCloud_ProductShopCategories = new List <ProductShopCategoryInfo>() }; ProductDescriptionInfo productDescriptionInfo = new ProductDescriptionInfo() { Id = 0, AuditReason = "", Description = m.des, MobileDescription = m.mdes, DescriptionPrefixId = 0, DescriptiondSuffixId = 0, Meta_Description = m.seoDes, Meta_Keywords = m.seoKey, Meta_Title = m.seoTitle, ProductId = productId }; productInfo.ProductDescriptionInfo = productDescriptionInfo; productInfo.SKUInfo = new List <SKUInfo>(); productInfo.SaleStatus = (ProductInfo.ProductSaleStatus)m.saleStatus; productInfo.FreightTemplateId = 138; productInfo.MeasureUnit = m.MeasureUnit; productInfo.Volume = new decimal?(m.Volume); productInfo.Weight = new decimal?(m.Weight); ProductInfo productInfo1 = productInfo; return(productInfo1); }