Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 /// <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);
     }
 }
Ejemplo n.º 4
0
 /// <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);
     }
 }
Ejemplo n.º 5
0
 /// <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);
         }
     }
 }
Ejemplo n.º 6
0
 /// <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);
         }
     }
 }
Ejemplo n.º 7
0
 /// <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);
         }
     }
 }
Ejemplo n.º 8
0
 /// <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);
         }
     }
 }
Ejemplo n.º 9
0
        /// <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);
                }
            }
        }
Ejemplo n.º 10
0
        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);
                }
            }
        }
Ejemplo n.º 11
0
        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);
            }
        }
Ejemplo n.º 12
0
        /// <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);
                }
            }
        }
Ejemplo n.º 13
0
        /// <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);
            }
        }
Ejemplo n.º 14
0
        /// <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
                        }
                    }
                }
            }
        }
Ejemplo n.º 15
0
        /// <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);
            }
        }
Ejemplo n.º 16
0
 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)
     {
     }
 }
Ejemplo n.º 17
0
        /// <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);
                }
            }
        }