/// <summary>产品发布 /// </summary> /// <param name="redisKey"></param> /// <param name="pid"></param> public void PublishProduct(long pid) { string ProductInfoKey = RedisKeyConst.GetProductInfoKey(pid).Key; //商品信息 //获取商品信息 using (WcfTcpClient <IProductService> clint = factory.CreateClient <IProductService>()) { ProductInfoModel productInfo = clint.Channel.GetProductInfo(pid); //保存商品数据 if (productInfo != null) { CN100.Redis.Client.RedisClientUtility.SetData(ProductInfoKey, productInfo); } else { CN100.Redis.Client.RedisClientUtility.DelBySearchKey("Pro_*_" + pid); return; } } //生成SKU价格 ChangeProductSKUDetail(pid); //生成商品统计信息 ChangeProductStatistics(pid); //生成默认运费模板 ChangeProductDefaultFreight(pid); }
/// <summary>变更SKU数据 /// </summary> /// <param name="id">商品ID</param> public void ChangeProductSKU(long id) { string redisKey = RedisKeyConst.GetProductInfoKey(id).Key; ProductInfoModel prodInfo = CN100.Redis.Client.RedisClientUtility.GetData <ProductInfoModel>(redisKey); if (prodInfo == null) { PublishProduct(id); } else { using (WcfTcpClient <IProductService> clint = factory.CreateClient <IProductService>()) { prodInfo.SkuList = clint.Channel.GetProductSKUList(id); } if (prodInfo != null) { CN100.Redis.Client.RedisClientUtility.SetData <ProductInfoModel>(redisKey, prodInfo); ChangeProductSKUDetail(prodInfo.SkuList, prodInfo.ProductActivityList, RedisKeyConst.GetProductSKUKey(id).Key); } else { DeleteByKey(redisKey); } } }
public void ChangeProductQty(long pid) { var proKey = RedisKeyConst.GetProductInfoKey(pid).Key; var item = CN100.Redis.Client.RedisClientUtility.GetData <ProductInfoModel>(proKey); if (item == null) { return; } using (WcfTcpClient <IProductService> clint = factory.CreateClient <IProductService>()) { item.ProductStoreQty = clint.Channel.GetProductQty(pid); CN100.Redis.Client.RedisClientUtility.SetData <ProductInfoModel>(proKey, item); } }
/// <summary> /// 商品状态批量变更 /// </summary> /// <param name="Ids"></param> public void ChangeProductStatusList(string Ids) { if (string.IsNullOrWhiteSpace(Ids)) { return; } string[] productIdstrs = Ids.Split(','); if (productIdstrs == null || productIdstrs.Length <= 0) { return; } List <long> productIdList = new List <long>(); foreach (string item in productIdstrs) { productIdList.Add(CN100.ProductDetail.Common.DataTypeConvert.ToLong(item, 0)); } Dictionary <long, int> productIdDir = null; //根据产品ID获取产品状态 using (WcfTcpClient <IProductService> clint = factory.CreateClient <IProductService>()) { productIdDir = clint.Channel.GetProductStatusList(productIdList.ToArray()); } if (productIdDir == null || productIdDir.Count <= 0) { return; } //修改Redis中的产品状态 foreach (KeyValuePair <long, int> item in productIdDir) { //获取商品信息 string ProductInfoKey = RedisKeyConst.GetProductInfoKey(item.Key).Key; ProductInfoModel productObj = CN100.Redis.Client.RedisClientUtility.GetData <ProductInfoModel>(ProductInfoKey); productObj.Status = item.Value; CN100.Redis.Client.RedisClientUtility.SetData(ProductInfoKey, productObj); } }
/// <summary>活动信息变更 /// </summary> /// <param name="redisKey"></param> /// <param name="pid"></param> public void ChangeProductActivity(long pid) { ProductService pservice = new ProductService(); string redisKey = RedisKeyConst.GetProductInfoKey(pid).Key; var prodInfo = CN100.Redis.Client.RedisClientUtility.GetData <ProductInfoModel>(redisKey); if (prodInfo == null) { pservice.PublishProduct(pid); } else { using (WcfTcpClient <IActivityService> clint = factory.CreateClient <IActivityService>()) { prodInfo.ProductActivityList = clint.Channel.GetProductActivitys(pid); } CN100.Redis.Client.RedisClientUtility.SetData <ProductInfoModel>(redisKey, prodInfo); pservice.ChangeProductSKUDetail(prodInfo.SkuList, prodInfo.ProductActivityList, RedisKeyConst.GetProductSKUKey(pid).Key); } }
/// <summary> SKU价格列表变更 /// </summary> /// <param name="pid"></param> public void ChangeProductSKUDetail(long pid) { IList <ProductSKUModel> productSKUList; IList <ProductActivityItem> activityList; try { string productKey = RedisKeyConst.GetProductInfoKey(pid).Key; var productInfo = CN100.Redis.Client.RedisClientUtility.GetData <ProductInfoModel>(productKey); if (productInfo == null) { return; } //获取SKU信息 productSKUList = productInfo.SkuList; activityList = productInfo.ProductActivityList; ChangeProductSKUDetail(productSKUList, activityList, RedisKeyConst.GetProductSKUKey(pid).Key); } catch (Exception ex) { throw; } }