Exemplo n.º 1
0
        /// <summary>
        /// 获取商品列表
        /// </summary>
        /// <param name="paraFilte">筛选参数</param>
        /// <returns></returns>
        /// <remarks>2016-3-14 杨浩 添加注释</remarks>
        public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = -1,
                Message    = "未知错误"
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                try
                {
                    result = GetAllGoodsSku();
                    if (result.Status)
                    {
                        var goodsList = result.Data;
                        var products  = BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code);

                        //JArray ja = (JArray)JsonConvert.DeserializeObject(goodsList);
                        List <ProductResponse> jobInfoList = JsonConvert.DeserializeObject <List <ProductResponse> >(goodsList);

                        foreach (ProductResponse g in jobInfoList)
                        {
                            var       _product = products.FirstOrDefault(x => x.SKU == g.SkuId);
                            ScProduct product  = new ScProduct();
                            if (_product != null)
                            {
                                product = _product;
                            }

                            product.SKU         = g.SkuId;
                            product.SupplyCode  = (int)Code;
                            product.ProductName = g.Name;
                            product.Receipt     = JsonConvert.SerializeObject(g);
                            product.Status      = 1; //1:上架 2:下架
                            product.Tariff      = "0";
                            product.Price       = g.Price;
                            product.Brands      = g.BrandName;
                            if (_product == null)
                            {
                                product.SysNo = BLL.Supply.ScProductBo.Instance.AddScProduct(product);
                                products.Add(product);
                            }
                            else
                            {
                                BLL.Supply.ScProductBo.Instance.UpdateScProduct(product);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    result.Message    = ex.Message;
                    result.Status     = false;
                    result.StatusCode = -2;
                }
                return(result);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 获取所有商品
 /// </summary>
 /// <remarks>
 /// 2016- 刘伟豪 实现
 /// </remarks>
 public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 3
0
        /// <summary>
        /// 获取所有商品
        /// </summary>
        /// <remarks>2016-3-8 刘伟豪 实现</remarks>
        public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = 0,
                Message    = ""
            };

            var pIndex = 1;
            var pSize  = 50;
            var pCount = 1;

            //防止并发操作
            lock (lockHelper)
            {
                //循环获取所有分页
                do
                {
                    var postData = new Dictionary <string, string>();
                    postData.Add("appKey", Config.Account);
                    postData.Add("proSale", "0"); //0:销售中,1:下架,2:全部(只获取在售)

                    //分页获取
                    postData.Add("pageIndex", pIndex.ToString());
                    postData.Add("pageSize", pSize.ToString());

                    var responseStr = Post("IOpenAPI.GetProducts", postData);
                    var back        = JObject.Parse(responseStr);
                    result = GetResult(back);

                    if (result.Status)
                    {
                        try
                        {
                            var SumNum = int.Parse(back["SumNum"].ToString());
                            pCount = SumNum % pSize > 0 ? SumNum / pSize + 1 : SumNum / pSize;

                            var productList = Hyt.BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code);

                            var goodsList = back["Result"];
                            foreach (var good in goodsList)
                            {
                                var specList = good["ProductSpec"];
                                foreach (var spec in specList)
                                {
                                    var       _product = productList.FirstOrDefault(p => p.SKU == spec["ProSkuNo"].ToString());
                                    ScProduct product  = new ScProduct();
                                    if (_product != null)
                                    {
                                        product = _product;
                                    }

                                    //商品名
                                    product.ProductName = good["ProTitle"].ToString();
                                    if (!string.IsNullOrWhiteSpace(spec["ProColorName"].ToString()))
                                    {
                                        if (spec["ProColorName"].ToString().Trim() != "无" && spec["ProSizesName"].ToString().Trim() != "无")
                                        {
                                            product.ProductName += string.Format("( {0}:{1} )", spec["ProColorName"].ToString(), spec["ProSizesName"].ToString());
                                        }
                                    }
                                    //销售状态  0:销售中,1:下架,2:全部
                                    var stat = int.Parse(good["ProSale"].ToString());
                                    product.Status     = stat == 0 ? 1 : 2;
                                    product.SKU        = spec["ProSkuNo"].ToString();
                                    product.SupplyCode = (int)Code;
                                    product.Receipt    = JsonConvert.SerializeObject(good);
                                    product.Price      = decimal.Parse(good["ProFxPrice"].ToString());
                                    product.Brands     = good["ProClass"].ToString();

                                    if (_product == null)
                                    {
                                        product.SysNo = BLL.Supply.ScProductBo.Instance.AddScProduct(product);
                                        productList.Add(product);
                                    }
                                    else
                                    {
                                        if (Hyt.BLL.Supply.ScProductBo.Instance.UpdateScProduct(product) && product.ProductSysNo > 0)
                                        {
                                            StockInSupplyProduct(product.SysNo.ToString());
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            result.Status     = false;
                            result.StatusCode = 0;
                            result.Message    = ex.Message;
                        }
                    }
                    pIndex++;
                }while (pIndex <= pCount);
                return(result);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 获取所有商品
        /// </summary>
        /// <remarks>2016-3-14 刘伟豪 创建</remarks>
        public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null)
        {
            //调用方法名
            data.head.f = "get_goods_list";
            //传递参数主题
            string page_no = "", page_size = "";

            if (paraFilte != null)
            {
                page_no   = paraFilte.Id.ToString();
                page_size = paraFilte.PageSize.ToString();
            }
            data.body = new { serial = "", page_no = page_no, page_size = page_size, starttime = "", endtime = "" };

            //防止并发
            lock (lockHelper)
            {
                var responseStr = Post(data);
                var back        = JObject.Parse(responseStr);
                var result      = GetResult(back);

                if (result.Status)
                {
                    try
                    {
                        var productList = Hyt.BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code);

                        var goodList = back["root"]["body"];
                        foreach (var good in goodList)
                        {
                            var sku = good["skus"]["sku"];

                            var       _product = productList.FirstOrDefault(p => p.SKU == sku["sku"].ToString());
                            ScProduct product  = new ScProduct();
                            if (_product != null)
                            {
                                product = _product;
                            }

                            product.ProductName = good["goods_name"].ToString();
                            product.SKU         = sku["sku"].ToString();
                            product.SupplyCode  = (int)Code;
                            product.Receipt     = JsonConvert.SerializeObject(good);
                            product.Status      = good["status"].ToString() == "true" ? 1 : 2;
                            product.Cradle      = good["madein"].ToString();
                            product.Brands      = good["brand"].ToString();
                            product.Tariff      = (decimal.Parse(good["rate"].ToString()) * 100).ToString("F0");
                            product.Price       = decimal.Parse(good["price"].ToString());

                            if (_product == null)
                            {
                                product.SysNo = BLL.Supply.ScProductBo.Instance.AddScProduct(product);
                                productList.Add(product);
                            }
                            else
                            {
                                Hyt.BLL.Supply.ScProductBo.Instance.UpdateScProduct(product);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        result.Status     = false;
                        result.StatusCode = 0;
                        result.Message    = ex.Message;
                    }
                }
                //result.Data = responseStr;
                return(result);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取所有商品
        /// </summary>
        /// <remarks>
        /// 2016-4-6 陈海裕 创建
        /// 2016-5-20 刘伟豪 修改
        /// </remarks>
        public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null)
        {
            Result <string> result = new Result <string>()
            {
                Status     = false,
                StatusCode = 0,
                Message    = "未知错误"
            };

            //防止并发操作
            lock (lockHelper)
            {
                try
                {
                    string responseStr = Post("getStocks");
                    var    back        = JObject.Parse(responseStr);
                    result = GetResult(back);

                    if (result.Status)
                    {
                        var pIndex = 0;
                        var pSize  = 10;
                        var pCount = 1;

                        var totalNum = back["data"].Children().Count();
                        pCount = totalNum % pSize > 0 ? totalNum / pSize + 1 : totalNum / pSize;

                        Array arrList  = Array.CreateInstance(typeof(string), totalNum);
                        var   i        = 0;
                        var   stockObj = JObject.Parse(back["data"].ToString());
                        foreach (KeyValuePair <string, JToken> keyValuePair in stockObj)
                        {
                            arrList.SetValue(keyValuePair.Key, i);
                            i++;
                        }

                        //循环获取商品详情,接口只提供一次获取10个
                        do
                        {
                            var   aLength = pIndex + 1 < pCount ? pSize : totalNum % pSize;
                            var   idxMax  = (pIndex + 1) * pSize > totalNum ? totalNum : (pIndex + 1) * pSize;
                            Array arr     = Array.CreateInstance(typeof(string), aLength);
                            var   j       = 0;
                            for (var idx = pIndex * pSize; idx < idxMax; idx++)
                            {
                                arr.SetValue(arrList.GetValue(idx), j);
                                j++;
                            }

                            result = GetGoodsDetail(JsonConvert.SerializeObject(new { sku = arr }));

                            pIndex++;
                        }while (pIndex < pCount);
                    }
                }
                catch (Exception ex)
                {
                    result.Message = ex.Message;
                    BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, this.Code + "供应链,获取所有商品:" + ex.Message, ex);
                }
                return(result);
            }
        }
Exemplo n.º 6
0
 /// <summary>
 /// 查询供应链产品
 /// </summary>
 /// <param name="condition">查询条件</param>
 /// <returns></returns>
 /// <remarks> 2013-6-25 杨浩 创建</remarks>
 /// <remarks> 2016-3-21 刘伟豪 修改</remarks>
 public void Seach(ref Pager <CBScProduct> pager, ParaSupplyProductFilter condition)
 {
     IScProductDao.Instance.Seach(ref pager, condition);
 }
Exemplo n.º 7
0
 /// <summary>
 /// 查询供应链产品
 /// </summary>
 /// <param name="condition">查询条件</param>
 /// <returns></returns>
 /// <remarks> 2016-3-17 杨浩 创建</remarks>
 /// <remarks> 2016-3-21 刘伟豪 修改</remarks>
 public abstract void Seach(ref Pager <CBScProduct> pager, ParaSupplyProductFilter condition);
Exemplo n.º 8
0
        /// <summary>
        /// 获取商品列表
        /// </summary>
        /// <param name="paraFilte">筛选参数</param>
        /// <returns></returns>
        /// <remarks>2016-3-14 杨浩 添加注释</remarks>
        public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = -1,
                Message    = "未知错误"
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                try
                {
                    string responsestr = Post(Config.GatewayUrl + "?c=vendor&a=getShopList", null);
                    result.Data = responsestr;
                    var back = JObject.Parse(responsestr);
                    result = GetResult(result, back);
                    if (result.Status)
                    {
                        var goodsList = back["data"]["list"];
                        var products  = BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code);

                        foreach (var g in goodsList)
                        {
                            //略过已下架,按id查询时,已下架的商品接口不返回,故略过
                            if (g["status"].ToString() == "2")
                            {
                                continue;
                            }

                            var       _product = products.FirstOrDefault(x => x.SKU == g["skuid"].ToString());
                            ScProduct product  = new ScProduct();
                            if (_product != null)
                            {
                                product = _product;
                            }

                            product.SKU         = g["skuid"].ToString();
                            product.SupplyCode  = (int)Code;
                            product.ProductName = g["goodsname"].ToString();
                            product.Receipt     = JsonConvert.SerializeObject(g);
                            product.Status      = int.Parse(g["status"].ToString()); //1:上架 2:下架
                            product.Tariff      = g["cess"].ToString();
                            product.Price       = decimal.Parse(g["price"].ToString());

                            if (_product == null)
                            {
                                product.SysNo = BLL.Supply.ScProductBo.Instance.AddScProduct(product);
                                products.Add(product);
                            }
                            else
                            {
                                BLL.Supply.ScProductBo.Instance.UpdateScProduct(product);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    result.Message    = ex.Message;
                    result.Status     = false;
                    result.StatusCode = -2;
                }
                return(result);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// 查询供应链产品
        /// </summary>
        /// <param name="condition">查询条件</param>
        /// <returns></returns>
        /// <remarks> 2013-6-25 杨浩 创建</remarks>
        /// <remarks> 2016-3-21 刘伟豪 修改</remarks>
        public override void Seach(ref Pager <CBScProduct> pager, ParaSupplyProductFilter condition)
        {
            using (var _context = Context.UseSharedConnection(true))
            {
                var sqlWhere = " 1=1 ";

                if (condition.SysNo > 0)
                {
                    sqlWhere += " and p.SysNo=@SysNo ";
                }

                if (condition.ProductSysNo > 0)
                {
                    sqlWhere += " and p.ProductSysNo=@ProductSysNo ";
                }

                if (condition.SupplyCode > 0)
                {
                    sqlWhere += " and p.SupplyCode=@SupplyCode ";
                }

                if (condition.HasStockIn.HasValue)
                {
                    if (condition.HasStockIn == 1)
                    {
                        sqlWhere += " and p.ProductSysNo>0";
                    }
                    else
                    {
                        sqlWhere += " and p.ProductSysNo=0";
                    }
                }

                if (condition.Status > 0)
                {
                    sqlWhere += " and p.Status=@Status";
                }

                if (!string.IsNullOrWhiteSpace(condition.SKU))
                {
                    sqlWhere += " and p.SKU like @SKU ";
                }

                if (!string.IsNullOrWhiteSpace(condition.ProductName))
                {
                    sqlWhere += " and p.ProductName like @ProductName ";
                }

                if (!string.IsNullOrWhiteSpace(condition.KeyWord))
                {
                    sqlWhere += " and (p.SKU like @KeyWord or p.ProductName like @KeyWord) ";
                }

                if (condition.StartTime != null)
                {
                    sqlWhere += " and p.UpdateDate >= @StartTime";
                }

                if (condition.EndTime != null)
                {
                    sqlWhere += " and p.UpdateDate <= @EndTime";
                }

                if (condition.CreateStartTime != null)
                {
                    sqlWhere += " and p.CreateDate >= @CreateStartTime";
                }

                if (condition.CreateEndTime != null)
                {
                    sqlWhere += " and  p.CreateDate <= @CreateEndTime";
                }

                pager.Rows = _context.Select <CBScProduct>(" p.* ")
                             .From(@"ScProduct p ")
                             .Where(sqlWhere)
                             .Parameter("SysNo", condition.SysNo)
                             .Parameter("ProductSysNo", condition.ProductSysNo)
                             .Parameter("SupplyCode", condition.SupplyCode)
                             .Parameter("Status", condition.Status)
                             .Parameter("SKU", "%" + condition.SKU + "%")
                             .Parameter("ProductName", "%" + condition.ProductName + "%")
                             .Parameter("KeyWord", "%" + condition.KeyWord + "%")
                             .Parameter("StartTime", condition.StartTime)
                             .Parameter("EndTime", condition.EndTime)
                             .Parameter("CreateStartTime", condition.CreateStartTime)
                             .Parameter("CreateEndTime", condition.CreateEndTime)
                             .OrderBy("p.ProductSysNo Desc, p.UpdateDate Desc, p.SysNo Desc ")
                             .Paging(pager.CurrentPage, pager.PageSize)
                             .QueryMany();

                pager.TotalRows = _context.Select <int>(" count(0) ")
                                  .From(@"ScProduct p ")
                                  .Where(sqlWhere)
                                  .Parameter("SysNo", condition.SysNo)
                                  .Parameter("ProductSysNo", condition.ProductSysNo)
                                  .Parameter("SupplyCode", condition.SupplyCode)
                                  .Parameter("Status", condition.Status)
                                  .Parameter("SKU", "%" + condition.SKU + "%")
                                  .Parameter("ProductName", "%" + condition.ProductName + "%")
                                  .Parameter("KeyWord", "%" + condition.KeyWord + "%")
                                  .Parameter("StartTime", condition.StartTime)
                                  .Parameter("EndTime", condition.EndTime)
                                  .Parameter("CreateStartTime", condition.CreateStartTime)
                                  .Parameter("CreateEndTime", condition.CreateEndTime)
                                  .QuerySingle();
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 获取商品列表
        /// </summary>
        /// <param name="paraFilte">筛选参数</param>
        /// <returns></returns>
        /// <remarks>2016-3-14 杨浩 添加注释 / 2016-11-03 周 重写</remarks>
        public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null)
        {
            var result = new Result <string>()
            {
                Status     = true,
                StatusCode = 1,
                Message    = "获取成功"
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                try
                {
                    result = GetAllGoodsSku();
                    if (result.Status)
                    {
                        var goodsList = result.Data;
                        var products  = BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code);

                        //JArray ja = (JArray)JsonConvert.DeserializeObject(goodsList);
                        List <Dto_Pro_Sku_Info> jobInfoList = JsonConvert.DeserializeObject <List <Dto_Pro_Sku_Info> >(goodsList);

                        foreach (Dto_Pro_Sku_Info g in jobInfoList)
                        {
                            var       _product = products.FirstOrDefault(x => x.SKU == g.ProductSpec.FirstOrDefault().ProSkuNo);
                            ScProduct product  = new ScProduct();
                            if (_product != null)
                            {
                                product = _product;
                            }
                            List <ProductSpecs> ProductSpec = g.ProductSpec;
                            foreach (var o2 in ProductSpec)
                            {
                                product.SKU = o2.ProSkuNo;
                            }

                            product.SupplyCode  = (int)Code;
                            product.ProductName = g.ProTitle;
                            product.Receipt     = JsonConvert.SerializeObject(g);
                            product.Status      = g.ProSale == 0?1:2; //1:上架 2:下架
                            product.Tariff      = "0";
                            product.Price       = g.ProRetPrice;
                            product.Brands      = g.ProBrand;
                            if (_product == null)
                            {
                                product.SysNo = BLL.Supply.ScProductBo.Instance.AddScProduct(product);
                                products.Add(product);
                            }
                            else
                            {
                                BLL.Supply.ScProductBo.Instance.UpdateScProduct(product);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    result.Message    = ex.Message;
                    result.Status     = false;
                    result.StatusCode = -2;
                }
                return(result);
            }
        }