/// <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); } } }
/// <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>保存店铺页面背景设置 /// </summary> /// <param name="storeId"></param> public void SaveStorePageBackGround(Int64 storeId) { using (WcfTcpClient <IStoreService> clint = factory.CreateClient <IStoreService>()) { var item = clint.Channel.GetStoreBackGround(storeId, VersionEnum.Published); string key = RedisKeyConst.GetStorePageBGKey(storeId).Key; CN100.Redis.Client.RedisClientUtility.SetData <StoreBackGroundModel>(key, item); } }
/// <summary>保存店铺 /// </summary> /// <param name="storeId"></param> public void SaveStoreInfo(Int64 storeId) { using (WcfTcpClient <IStoreService> clint = factory.CreateClient <IStoreService>()) { string key = RedisKeyConst.GetStoreInfoKey(storeId).Key; var item = clint.Channel.GetStoreInfo(storeId); CN100.Redis.Client.RedisClientUtility.SetData <StoreBaseInfoModel>(key, item); } }
/// <summary>保存店铺排行,推荐及推广 /// </summary> /// <param name="ModuleJson"></param> /// <param name="redisKey"></param> /// <param name="storeId"></param> public void SaveProductList(JsonObject ModuleJson, string redisKey, Int64 storeId) { using (WcfTcpClient <IStoreService> clint = factory.CreateClient <IStoreService>()) { var item = clint.Channel.GetStoreProductList(storeId, EasyJson.ToJsonString(ModuleJson)); if (item != null) { CN100.Redis.Client.RedisClientUtility.SetData <ProductListModel>(redisKey, item); } else { DeleteByKey(redisKey); } } }
/// <summary>保存店铺页头 /// </summary> /// <param name="storeId"></param> public void SaveStoreTopModule(Int64 storeId) { using (WcfTcpClient <IStoreService> clint = factory.CreateClient <IStoreService>()) { var item = clint.Channel.GetStorePageHeader(storeId); string key = RedisKeyConst.GetStorePageHeaderKey(storeId).Key; if (item != null) { CN100.Redis.Client.RedisClientUtility.SetData <StoreTopModel>(key, item); } else { DeleteByKey(key); } } }
/// <summary>保存店铺客服信息 /// </summary> /// <param name="storeId"></param> public void SaveCustomServices(Int64 storeId) { using (WcfTcpClient <IStoreService> clint = factory.CreateClient <IStoreService>()) { var item = clint.Channel.GetCustomServices(storeId); string key = RedisKeyConst.GetStoreCustomServiceKey(storeId).Key; if (item != null && item.Count > 0) { CN100.Redis.Client.RedisClientUtility.SetData <IList <StoreCustomServiceModel> >(key, item); } else { DeleteByKey(key); } } }
/// <summary>保存店铺评价 /// </summary> /// <param name="storeId"></param> public void SaveStoreEvaluat(Int64 storeId) { using (WcfTcpClient <IStoreService> clint = factory.CreateClient <IStoreService>()) { var item = clint.Channel.GetStoreEvaluation(storeId); var key = RedisKeyConst.GetStoreEvaluatKey(storeId).Key; if (item != null) { CN100.Redis.Client.RedisClientUtility.SetData <StoreEvaluationModel>(key, item); } else { DeleteByKey(key); } } }
/// <summary>保存商品默认运费 /// </summary> /// <param name="pid"></param> public void ChangeProductDefaultFreight(Int64 pid) { var proKey = RedisKeyConst.GetProductDefaultFreightKey(pid).Key; using (WcfTcpClient <IFreightTemplateService> clint = factory.CreateClient <IFreightTemplateService>()) { var item = clint.Channel.GetProductDetailFreight(pid); if (item != null && item.Count > 0) { CN100.Redis.Client.RedisClientUtility.SetData <IList <ProductFreightModel> >(proKey, item); } else { DeleteByKey(proKey); } } }
public void ChangeProductStatistics(Int64 pid) { var proKey = RedisKeyConst.GetProductStatisticsKey(pid).Key; using (WcfTcpClient <IProductService> clint = factory.CreateClient <IProductService>()) { var item = clint.Channel.GetProductStatistics(pid); if (item != null) { CN100.Redis.Client.RedisClientUtility.SetData <ProductStatisticsModel>(proKey, item); } else { DeleteByKey(proKey); } } }
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="ID"></param> public void ChangeProductTuan(long ID) { var redisKey = RedisKeyConst.GetProductTuanInfoKey(ID).Key; using (WcfTcpClient <IActivityService> clint = factory.CreateClient <IActivityService>()) { var item = clint.Channel.GetTuanActivity(ID); if (item != null) { CN100.Redis.Client.RedisClientUtility.SetData <TuanGouModel>(redisKey, item); } else { DeleteByKey(redisKey); } } }
/// <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="storeId"></param> public void SaveChangeStoreRecommend(long storeId) { using (WcfTcpClient <IStoreService> clint = factory.CreateClient <IStoreService>()) { var storePageContent = clint.Channel.GetStorePageContents(storeId, VersionEnum.Published, PageTypeEnum.DetailPage); string moduleTag = string.Empty; string redisKey = string.Empty; JSONPage jsonPage; if (storePageContent != null && storePageContent.Count > 0) { foreach (var item in storePageContent) { if (item != null) { jsonPage = JsonConvert.DeserializeObject <JSONPage>(item.PageContent); var moduleList = GetStoreModules(jsonPage.PageLayoutUnits); CN100.Redis.Client.RedisClientUtility.SetData(RedisKeyConst.GetStorePageContentKey(item.StoreId, item.PageId).Key, JsonConvert.SerializeObject(item)); #region 处理店铺所有受装修配置影响的模块 //插入前先删除掉页面的所有Module数据 CN100.Redis.Client.RedisClientUtility.DelBySearchKey(RedisKeyConst.GetModuleKey(item.StoreId, item.PageId, "*", string.Empty).Key); foreach (var moduleItem in moduleList) { var jobj = (Newtonsoft.Json.Linq.JObject)moduleItem; moduleTag = jobj[moduleTagStr].ToString(); JsonObject ModuleJson = EasyJson.Parse(RegexFixSystemChar.Replace(moduleItem.ToString(), string.Empty)); redisKey = RedisKeyConst.GetModuleKey(item.StoreId, item.PageId, ModuleJson[moduleIdStr].Value, moduleTag).Key; switch (moduleTag) { case ModuleTag.RankingProduct: //排行模块 case ModuleTag.RecommProduct: case ModuleTag.PromotionProduct: SaveProductList(ModuleJson, redisKey, storeId); break; default: break; } } #endregion } } } } }
/// <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); } }
public void SaveComboActivity(Int64 storeId) { try { using (WcfTcpClient <IActivityService> client = factory.CreateClient <IActivityService>()) { var item = client.Channel.GetStorePackageActivitys(storeId); var key = RedisKeyConst.GetStorePackageInfoKey(storeId).Key; if (item != null && item.Count > 0) { CN100.Redis.Client.RedisClientUtility.SetData <IList <StorePackageModel> >(key, item); } else { DeleteByKey(key); } } } catch (Exception ex) { } }
/// <summary>满就送 /// </summary> /// <param name="storeId"></param> public void SaveFullActivity(Int64 storeId) { using (WcfTcpClient <IActivityService> client = factory.CreateClient <IActivityService>()) { var item = client.Channel.GetStoreFullSends(storeId); string key = RedisKeyConst.GetFullActivityNoticeKey(storeId).Key; if (item != null && item.Count > 0) { List <string> noFreeArea = new List <string>(); var splitChar = new char[] { ',', ',' }; var allArea = CN100.Redis.Client.RedisClientUtility.GetData <IList <FreightProvinceModel> >(RedisKeyConst.GetProvincesKey().Key); foreach (var sub in item) { if (!string.IsNullOrWhiteSpace(sub.AreaNotFreeShipping)) { var arr = sub.AreaNotFreeShipping.Split(splitChar); foreach (var sub2 in arr) { var address = allArea.FirstOrDefault(it => it.Code.Equals(sub2.Trim())); if (address != null) { noFreeArea.Add(address.Name); } } sub.AreaNotFreeShipping = string.Join(",", noFreeArea); noFreeArea.Clear(); } } CN100.Redis.Client.RedisClientUtility.SetData <IList <FullSendModel> >(key, item); } else { DeleteByKey(key); } } }