/// <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); } }
/// <summary> /// 获取所有商品 /// </summary> /// <remarks> /// 2016- 刘伟豪 实现 /// </remarks> public override Result <string> GetGoodsList(ParaSupplyProductFilter paraFilte = null) { throw new NotImplementedException(); }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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); }
/// <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);
/// <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); } }
/// <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(); } }
/// <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); } }