Ejemplo n.º 1
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.º 2
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.º 3
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.º 4
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);
            }
        }
        /// <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.º 6
0
        /// <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;
            }
        }