/// <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> /// <param name="skuIds"></param> /// <returns></returns> private Result <string> GetGoodsDetail(string skuIds) { Result <string> result = new Result <string>() { Status = true, StatusCode = 1, Message = "更新成功" }; List <string> skuidList = new List <string>(); skuidList = JsonConvert.DeserializeObject <List <string> >(skuIds); for (int i = 0; i < skuidList.Count; i++) { string jsonstr = "[" + JsonConvert.SerializeObject(skuidList[i]) + "]"; WebUtils.HttpPacket packet = WebUtils.DoPost(ApiConfig.ApiUrl + "Product/GetProductBySkuIds?" + CommonUtils.GetUrlParameter(), jsonstr, "application/json"); List <ProductResponse> pdlist = null; try { ApiResponse apiResponse = JsonConvert.DeserializeObject <ApiResponse>(packet.ResponseBody); if (apiResponse.State) { pdlist = JsonConvert.DeserializeObject <List <ProductResponse> >(apiResponse.Content.ToString()); var products = Hyt.BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code); foreach (var good in pdlist) { var _product = products.FirstOrDefault(x => x.SKU == good.SkuId); ScProduct product = new ScProduct(); if (_product != null) { product = _product; } product.SKU = good.SkuId; product.SupplyCode = (int)Code; product.ProductName = good.Name; product.Receipt = JsonConvert.SerializeObject(good); product.Status = 1; product.Price = good.Price; product.Brands = good.BrandName; if (_product == null) { product.SysNo = BLL.Supply.ScProductBo.Instance.AddScProduct(product); products.Add(product); } else { BLL.Supply.ScProductBo.Instance.UpdateScProduct(product); } BLL.Supply.ScProductBo.Instance.UpdatePdBySysNo(product.ProductSysNo, System.Web.HttpUtility.UrlEncode(good.Remark, System.Text.Encoding.GetEncoding("UTF-8")).Replace("+", " ")); } } } catch (Exception ex) { result.Status = false; result.Message = "更新商品SkuId " + skuIds[i] + ex.Message; } } return(result); }
/// <summary> /// 添加供应链产品 /// </summary> /// <param name="model">供应链商品实体</param> /// <returns></returns> /// <remarks> 2013-6-25 杨浩 创建</remarks> /// <remarks> 2016-3-21 刘伟豪 修改</remarks> public override int AddScProduct(ScProduct model) { int id = Context.Insert <ScProduct>("ScProduct", model) .AutoMap(x => x.SysNo) .ExecuteReturnLastId <int>("SysNo"); return(id); }
/// <summary> /// 更新供应链产品 /// </summary> /// <param name="model">供应链商品实体</param> /// <returns></returns> /// <remarks> 2013-6-25 杨浩 创建</remarks> public override int UpdateScProduct(ScProduct model) { var r = Context.Update <ScProduct>("ScProduct", model) .AutoMap(x => x.SysNo) .Where("SysNo", model.SysNo) .Execute(); return(r); }
/// <summary> /// 获取单个sku /// </summary> /// <returns></returns> /// <remarks>2016-3-18 杨浩 添加注释</remarks> public override Result <string> GetGoodsSku(string skuid) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { Dictionary <string, string> postData = new Dictionary <string, string>(); postData.Add("skuid", skuid); string responsestr = Post(Config.GatewayUrl + "?c=vendor&a=getSkuStore", postData); result.Data = responsestr; var back = JObject.Parse(responsestr); result = GetResult(result, back); if (result.Status) { var goodsList = back["data"]["list"]; foreach (var g in goodsList) { ScProduct product = BLL.Supply.ScProductBo.Instance.GetScProductInfo(g["skuid"].ToString(), (int)Code); if (product != null) { 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()); 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-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-5-4 刘伟豪 实现 </remarks> public override Result <string> StockInSupplyProduct(string sysNos) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { //是否有仓库 WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用); if (Warehouse == null) { result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString()); return(result); } foreach (var c in sysNos.Split(',')) { int id = int.Parse(c); int UserSysNo = Hyt.BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; ScProduct Product = BLL.Supply.ScProductBo.Instance.GetScProductInfo(id); //未入库的商品可入库 if (Product.ProductSysNo == 0) { using (var tran = new System.Transactions.TransactionScope()) { var json = JObject.Parse(Product.Receipt); PdProduct PdData = new PdProduct(); //绑定品牌 var brandSysNo = 0; var brandName = json["ProClass"].ToString().Trim(); PdBrand PdBrand = BLL.Product.PdBrandBo.Instance.GetEntityByName(brandName); brandSysNo = PdBrand != null ? PdBrand.SysNo : DataAccess.Product.IPdBrandDao.Instance.Create(new PdBrand() { Name = brandName, DisplayOrder = 0, Status = (int)Model.WorkflowStatus.ProductStatus.品牌状态.启用 }); PdData.BrandSysNo = brandSysNo; //绑定原产地 var orginSysNo = 0; var orginName = "其他"; Origin Origin = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName); orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin() { Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }); PdData.OriginSysNo = orginSysNo; PdData.ErpCode = PdData.Barcode = Product.SKU; PdData.EasName = string.Format("({0}产品){1}", Code.ToString(), Product.ProductName); PdData.ProductName = PdData.SeoTitle = PdData.SeoKeyword = PdData.SeoDescription = Product.ProductName; PdData.ViewCount = PdData.DisplayOrder = 0; var weight = 0.00m; decimal.TryParse(json["ProWeight"].ToString(), out weight); PdData.GrosWeight = weight * 0.001m; PdData.NetWeight = 0.00m; PdData.SalesMeasurementUnit = "kg"; PdData.ValueUnit = "CNY"; PdData.VolumeUnit = "m"; PdData.Tax = PdData.Freight = PdData.VolumeValue = PdData.Rate = PdData.PriceRate = PdData.PriceValue = PdData.DealerPriceValue = PdData.TradePrice = 0.00m; PdData.CostPrice = Product.Price; PdData.FreightFlag = "Y"; PdData.AgentSysNo = 1; PdData.DealerSysNo = 0; //各状态 PdData.ProductType = (int)Model.WorkflowStatus.ProductStatus.商品类型.普通商品; PdData.CanFrontEndOrder = (int)Model.WorkflowStatus.ProductStatus.商品是否前台下单.是; PdData.IsFrontDisplay = (int)Model.WorkflowStatus.ProductStatus.前台显示.是; PdData.Status = (int)Model.WorkflowStatus.ProductStatus.商品状态.架; PdData.CreatedBy = PdData.LastUpdateBy = UserSysNo; PdData.CreatedDate = PdData.LastUpdateDate = PdData.Stamp = DateTime.Now; //创建商品 int productSysNo = BLL.Product.PdProductBo.Instance.CreateProduct(PdData); if (productSysNo > 0) { //创建商品基础价 PdPrice BasicModel = new PdPrice(); BasicModel.ProductSysNo = productSysNo; BasicModel.Price = Product.Price; BasicModel.PriceSource = (int)Model.WorkflowStatus.ProductStatus.产品价格来源.基础价格; BasicModel.SourceSysNo = 0; BasicModel.Status = (int)Model.WorkflowStatus.ProductStatus.产品价格状态.效; Hyt.BLL.Product.PdPriceBo.Instance.Create(BasicModel); //创建商品会员价 PdPrice SaleModel = new PdPrice(); SaleModel.ProductSysNo = productSysNo; SaleModel.Price = Product.Price; SaleModel.PriceSource = (int)Model.WorkflowStatus.ProductStatus.产品价格来源.会员等级价; SaleModel.SourceSysNo = 1; SaleModel.Status = (int)Model.WorkflowStatus.ProductStatus.产品价格状态.效; Hyt.BLL.Product.PdPriceBo.Instance.Create(SaleModel); //更新商品临时表的ProductSysNo Hyt.BLL.Supply.ScProductBo.Instance.UpdateProductSysNo(id, productSysNo); //创建商品库存 var stock = GetProSkuStock(Product.SKU); Hyt.BLL.Supply.ScProductBo.Instance.ProCreateSupplyStock((int)Code, productSysNo, stock, UserSysNo); } tran.Complete(); } } else { var PdData = BLL.Product.PdProductBo.Instance.GetProductNoCache(Product.ProductSysNo); var stock = GetProSkuStock(Product.SKU); Hyt.BLL.Supply.ScProductBo.Instance.ProCreateSupplyStock((int)Code, Product.ProductSysNo, stock, UserSysNo); } } result.Message = "入库成功!"; result.Status = true; result.StatusCode = 1; } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }
/// <summary> /// 获取个别商品 /// </summary> /// <remarks> 2016-5-4 刘伟豪 实现 </remarks> public override Result <string> GetGoodsSku(string skuids) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; //防止并发操作 lock (lockHelper) { try { foreach (string skuid in skuids.Split(',')) { Dictionary <string, string> postData = new Dictionary <string, string>(); postData.Add("appKey", Config.Account); postData.Add("proNo", skuid); string responsestr = Post("IOpenAPI.GetProducts", postData); result.Data = responsestr; var back = JObject.Parse(responsestr); result = GetResult(back); if (result.Status) { var goodsList = back["Result"]; foreach (var good in goodsList) { var specList = good["ProductSpec"]; foreach (var spec in specList) { ScProduct product = BLL.Supply.ScProductBo.Instance.GetScProductInfo(spec["ProSkuNo"].ToString(), (int)Code); if (product != null) { //商品名 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 (Hyt.BLL.Supply.ScProductBo.Instance.UpdateScProduct(product) && product.ProductSysNo > 0) { StockInSupplyProduct(product.SysNo.ToString()); } } } } } } } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }
/// <summary> /// 获取商品详情 /// </summary> /// <param name="postJson">{sku:["AMAV001","AMCB009"]}</param> /// <remarks> /// 2016-5-23 刘伟豪 创建 /// </remarks> private Result <string> GetGoodsDetail(string postJson = "") { Result <string> result = new Result <string>() { Status = false, StatusCode = 0, Message = "未知错误" }; //防止并发操作 lock (lockHelper) { try { string responseStr = Post("getProductDetail", postJson); var back = JObject.Parse(responseStr); result = GetResult(back); if (result.Status) { var products = Hyt.BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code); var goodsList = back["data"]; foreach (var good in goodsList) { var g = good.First(); var _product = products.FirstOrDefault(x => x.SKU == g["skuCode"].ToString()); ScProduct product = new ScProduct(); if (_product != null) { product = _product; } product.SKU = g["skuCode"].ToString(); product.SupplyCode = (int)Code; product.ProductName = g["productName"].ToString(); product.Receipt = JsonConvert.SerializeObject(g); product.Status = 1; product.Price = decimal.Parse(g["price"].ToString()); var detail = g["detail"]; foreach (var d in detail) { if (d["proName"].ToString().Trim() == "品牌") { product.Brands = d["proValue"].ToString().Trim(); } if (d["proName"].ToString().Trim() == "原产地") { product.Cradle = d["proValue"].ToString().Trim(); } } 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; BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, this.Code + "供应链,获取商品详情:" + ex.Message, ex); } 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> /// <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); } }
/// <summary> /// 更新供应链产品 /// </summary> /// <param name="model">供应链商品实体</param> /// <returns></returns> /// <remarks> 2016-3-17 杨浩 创建</remarks> public abstract int UpdateScProduct(ScProduct model);
/// <summary> /// 添加供应链产品 /// </summary> /// <param name="model">供应链商品实体</param> /// <returns></returns> /// <remarks> 2016-3-17 杨浩 创建</remarks> public abstract int AddScProduct(ScProduct model);
/// <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="supplyCode">供应链代码</param> /// <param name="sysNos">商品系统编号,逗号分隔</param> /// <returns></returns> /// <remarks>2016-4-22 王耀发 创建</remarks> public override Result <string> StockInSupplyProduct(string sysNos) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { //是否有仓库 WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用); if (Warehouse == null) { result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString()); return(result); } string[] sysNoArray = sysNos.Split(','); int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; for (var i = 0; i < sysNoArray.Length; i++) { int SysNo = int.Parse(sysNoArray[i]); ScProduct Product = IScProductDao.Instance.GetScProductInfo(SysNo); //未入库的商品可入库 if (Product.ProductSysNo == 0) { using (var tran = new System.Transactions.TransactionScope()) { var jsonObject = JObject.Parse(Product.Receipt); PdProduct PdData = new PdProduct(); PdData.ErpCode = jsonObject["skuid"].ToString(); PdData.ProductName = jsonObject["goodsname"].ToString(); PdData.EasName = jsonObject["goodsname"].ToString(); if (jsonObject["barcode"] != null) { PdData.Barcode = jsonObject["barcode"].ToString(); } if (jsonObject["cess"] != null) { PdData.Tax = decimal.Parse(jsonObject["cess"].ToString()); } PdData.CanFrontEndOrder = 1; PdData.AgentSysNo = 1; PdData.DealerSysNo = 0; //默认品牌为其他 var brandSysNo = 0; var brandName = "其他"; PdBrand PdBrand = BLL.Product.PdBrandBo.Instance.GetEntityByName(brandName); brandSysNo = PdBrand != null ? PdBrand.SysNo : DataAccess.Product.IPdBrandDao.Instance.Create(new PdBrand() { Name = brandName, DisplayOrder = 0, Status = 1 }); PdData.BrandSysNo = brandSysNo; //绑定原产地 var orginSysNo = 0; var orginName = "其他"; Origin Origin = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName); orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin() { Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }); PdData.OriginSysNo = orginSysNo; PdData.CreatedBy = UserSysNo; PdData.CreatedDate = DateTime.Now; PdData.LastUpdateBy = UserSysNo; PdData.LastUpdateDate = DateTime.Now; //创建商品 int ProductSysNo = PdProductBo.Instance.CreateProduct(PdData); if (ProductSysNo > 0) { //创建商品基础价 PdPrice BasicModel = new PdPrice(); BasicModel.ProductSysNo = ProductSysNo; BasicModel.Price = decimal.Parse(jsonObject["price"].ToString()); BasicModel.PriceSource = 0; BasicModel.SourceSysNo = 0; BasicModel.Status = 1; PdPriceBo.Instance.Create(BasicModel); //创建商品会员价 PdPrice SaleModel = new PdPrice(); SaleModel.ProductSysNo = ProductSysNo; SaleModel.Price = decimal.Parse(jsonObject["price"].ToString()); SaleModel.PriceSource = 10; SaleModel.SourceSysNo = 1; SaleModel.Status = 1; PdPriceBo.Instance.Create(SaleModel); //更新商品临时表的ProductSysNo ScProductBo.Instance.UpdateProductSysNo(SysNo, ProductSysNo); //创建商品库存 ScProductBo.Instance.ProCreateSupplyStock((int)Code, ProductSysNo, decimal.Parse(jsonObject["number"].ToString()), UserSysNo); } tran.Complete(); } } result.Status = true; } } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }
/// <summary> /// 添加供应链产品 /// </summary> /// <param name="model">供应链商品实体</param> /// <returns></returns> /// <remarks> 2013-6-25 杨浩 创建</remarks> public int AddScProduct(ScProduct model) { model.CreateDate = DateTime.Now; model.UpdateDate = model.CreateDate; return(IScProductDao.Instance.AddScProduct(model)); }
/// <summary> /// 入库个别商品信息 /// </summary> /// <param name="supplyCode">供应链代码</param> /// <param name="sysNos">商品系统编号,逗号分隔</param> /// <returns></returns> /// <remarks>2016-4-22 王耀发 创建</remarks> public override Result <string> StockInSupplyProduct(string sysNos) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { //是否有仓库 WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用); if (Warehouse == null) { result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString()); return(result); } string[] sysNoArray = sysNos.Split(','); int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; for (var i = 0; i < sysNoArray.Length; i++) { int SysNo = int.Parse(sysNoArray[i]); ScProduct Product = IScProductDao.Instance.GetScProductInfo(SysNo); //未入库的商品可入库 if (Product.ProductSysNo == 0) { using (var tran = new System.Transactions.TransactionScope()) { var jsonObject = JObject.Parse(Product.Receipt); //PdProductList PdData = new PdProductList(); string ErpCode = jsonObject["SkuId"].ToString(); string ProductName = jsonObject["Name"].ToString(); string EasName = jsonObject["Name"].ToString(); string DefaultImage = jsonObject["DefaultImage"].ToString(); string Remark = jsonObject["Remark"].ToString(); //商品类目 var CategoryName = jsonObject["CategoryName"].ToString(); PdCategorySql PdCmodel = new PdCategorySql(); PdCmodel.ParentSysNo = 0; PdCmodel.CategoryName = CategoryName; PdCmodel.Code = ""; PdCmodel.SeoTitle = CategoryName; PdCmodel.SeoKeyword = CategoryName; PdCmodel.SeoDescription = CategoryName; PdCmodel.TemplateSysNo = 0; PdCmodel.IsOnline = 1; PdCmodel.Status = 1; PdCmodel.CreatedBy = 1; PdCmodel.CreatedDate = DateTime.Now; PdCmodel.LastUpdateBy = 1; PdCmodel.LastUpdateDate = DateTime.Now; PdCategoryAssociation PdCAmodel = new PdCategoryAssociation(); PdCAmodel.IsMaster = 1; PdCAmodel.CreatedBy = 1; PdCAmodel.CreatedDate = DateTime.Now; PdCAmodel.LastUpdateBy = 1; PdCAmodel.LastUpdateDate = DateTime.Now; //品牌 //品牌 int BrandSysNo; var BrandName = jsonObject["BrandName"].ToString(); PdBrand pEnity = PdBrandBo.Instance.GetEntityByName(BrandName); //判断商品品牌是否存在 if (pEnity != null) { BrandSysNo = pEnity.SysNo; } else { var pmodel = new PdBrand(); pmodel.Name = BrandName; pmodel.Status = 1; BrandSysNo = IPdBrandDao.Instance.Create(pmodel); } string GrosWeight = jsonObject["Weight"].ToString(); string Price = jsonObject["Price"].ToString(); var prmodel = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.基础价格, 0); // new PdPrice(); var sprmodel = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.会员等级价, 1); // new PdPrice(); var sspmodel = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.门店销售价, 0); // new PdPrice(); //绑定原产地 var orginSysNo = 0; var orginName = "其他"; Origin Origin = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName); orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin() { Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }); var currentInfo = BLL.Authentication.AdminAuthenticationBo.Instance.Current; int agentSysNo = 1; int dealerSysNo = 0; if (currentInfo.Dealer != null) { dealerSysNo = currentInfo.Dealer.SysNo; agentSysNo = currentInfo.DealerCreatedBy; } int TradeMode = 0; switch (jsonObject["TradeMode"].ToString()) { case "3": TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.完税商品; break; case "2": TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.直邮商品; break; default: TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.普通商品; break; } //创建商品 var excellst = new List <PdProductList>(); var model = new PdProductList { ErpCode = ErpCode, //商品编号 ProductName = ProductName, //商品名称 EasName = EasName, //商品名称 BrandSysNo = BrandSysNo, //品牌 ProductType = TradeMode, //商品类型(模式) OriginSysNo = orginSysNo, //国家 Barcode = "", GrosWeight = Decimal.Parse(GrosWeight), //重量 Tax = "0", PriceRate = 0M, PriceValue = 0M, TradePrice = 0M, PdPrice = prmodel, PdSalePrice = sprmodel, PdStoreSalePrice = sspmodel, PdCategorySql = PdCmodel, PdCategoryAssociation = PdCAmodel, DealerSysNo = dealerSysNo, AgentSysNo = agentSysNo,//默认为总部代理商 CreatedBy = 1, CreatedDate = DateTime.Now, LastUpdateBy = 1, LastUpdateDate = DateTime.Now, SalesMeasurementUnit = "g", ProductDesc = System.Web.HttpUtility.UrlEncode(Remark, System.Text.Encoding.GetEncoding("UTF-8")).Replace("+", " ")//描述 }; excellst.Add(model); try { //新增商品 IPdProductDao.Instance.CreatePdProduct(excellst); //根据编号获取商品 PdProduct Entity = IPdProductDao.Instance.GetEntityByErpCode(ErpCode); if (Entity != null) { List <string> imageslist = new List <string>(); string images = jsonObject["ImageList"].ToString(); imageslist = JsonConvert.DeserializeObject <List <string> >(images); for (var j = 0; j < imageslist.Count; j++) { if (j < 5) { var productImage = new PdProductImage(); productImage.ProductSysNo = Entity.SysNo; productImage.DisplayOrder = j; productImage.ImageUrl = imageslist[j].ToString(); if (j == 0) { productImage.Status = (int)Hyt.Model.WorkflowStatus.ProductStatus.商品图片状态.显示; } else { productImage.Status = (int)Hyt.Model.WorkflowStatus.ProductStatus.商品图片状态.隐藏; } int res = IPdProductImageDao.Instance.Insert(productImage); } } //更新商品临时表的ProductSysNo ScProductBo.Instance.UpdateProductSysNo(SysNo, Entity.SysNo); //创建商品库存 ScProductBo.Instance.ProCreateSupplyStock((int)Code, Entity.SysNo, decimal.Parse(jsonObject["StockQuantity"].ToString()), UserSysNo); } else { result.Message = "获取商品数据错误"; result.Status = false; return(result); } } catch (Exception ex) { result.Message = string.Format("数据错误:{0}", ex.Message); result.Status = false; return(result); } tran.Complete(); } } result.Status = true; } } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }
/// <summary> /// 更新供应链产品 /// </summary> /// <param name="model">供应链商品实体</param> /// <returns></returns> /// <remarks> 2013-6-25 杨浩 创建</remarks> public bool UpdateScProduct(ScProduct model) { model.UpdateDate = DateTime.Now; return(IScProductDao.Instance.UpdateScProduct(model) > 0); }
public override Result <string> SendOrder(int orderSysNo) { var result = new Result <string>() { Status = false, StatusCode = 0, Message = "" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo); if (order == null) { result.Message = "该订单不存在"; } else { try { order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); Dictionary <string, string> postData = new Dictionary <string, string>(); //下单商品 sku及购买数量,sku和购买数量用逗号隔开,多件商品时用分号隔开(如: test001,1;test002,1) //B0230115,2;B0230131,3 var skuinfo = ""; foreach (var item in order.OrderItemList) { ScProduct scProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(item.ProductSysNo, (int)Code); skuinfo += string.Format("{0},{1};", scProduct.SKU, item.Quantity); } skuinfo = skuinfo.TrimEnd(';'); postData.Add("skuinfo", skuinfo); postData.Add("consi_name", order.ReceiveAddress.Name); //收货人姓名 postData.Add("consi_phone", order.ReceiveAddress.MobilePhoneNumber); //收货人手机号码 postData.Add("consi_card", order.ReceiveAddress.IDCardNo); //收货人身份证 postData.Add("consi_provinc", receiverProvince.AreaName); //收货人所在省 postData.Add("consi_city", receiverCity.AreaName); //收货人所在城市 postData.Add("consi_county", receiverDistrict.NameAcronym); //收货人所在县 postData.Add("consi_address", order.ReceiveAddress.StreetAddress); //收货人所在地址 postData.Add("consi_freight", order.FreightAmount.ToString()); //运费 postData.Add("consi_price", order.OrderAmount.ToString()); //订单金额 //(非必填)torder 第三方订单号 //(非必填)paytype 支付方式(1:快付通,2:快钱,3:支付宝,4:微信,5:易极付,6:招商银行) //(非必填)pay_tradeno 支付流水号 postData.Add("remark", "平台推单");//订单备注信息 string responsestr = Post(Config.GatewayUrl + "?c=vendor&a=addOrder", postData); result.Data = responsestr; var back = JObject.Parse(responsestr); result = GetResult(result, back); if (result.Status) { //返回结果保存到SendOrderReturn表中 2016-4-26 王耀发 创建 SendOrderReturn m = new SendOrderReturn(); m.soOrderSysNo = orderSysNo; m.Code = "1"; m.Msg = responsestr; m.OrderNo = back["data"]["order_number"].ToString(); Hyt.BLL.Order.SoOrderBo.Instance.InsertSendOrderReturn(m, AdminAuthenticationBo.Instance.Current.Base); //更新订单的商检推送状态 Hyt.BLL.Order.SoOrderBo.UpdateOrderSendStatus(orderSysNo, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单推送状态.已推送); } } catch (Exception ex) { result.Status = false; result.StatusCode = -2; result.Message = ex.Message; } } return(result); } }
/// <summary> /// 获取单个sku /// </summary> /// <returns></returns> /// <remarks>2016-11-03 周 创建</remarks> public override Result <string> GetGoodsSku(string skuid) { var result = new Result <string>() { Status = true, StatusCode = 1, Message = "更新成功" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { ///接口参数 Dictionary <string, string> date = new Dictionary <string, string>(); date.Add("appKey", Config.Account); //AppKey[必填] date.Add("proSkuNo", skuid); //商品Sku[必填] ///调用接口 Client client = new Client(Config.GatewayUrl, "IOpenAPI.GetProductSkuInfo", Config.Account, Config.Secert, "json"); ///获得接口返回值 string sAPIResult = ""; try { sAPIResult = client.Post(date); } catch (Exception ex) { result.Message = "第三方平台的Api_Url无效。" + ex.Message; result.Status = false; result.StatusCode = -2; return(result); } string ApiCode = Comm.get_JsonValueByName(sAPIResult, "Code"); if (ApiCode == "101") { string ApiResult = Comm.get_JsonValueByName(sAPIResult, "Result"); List <Pro_Sku_Info> listResult = new List <Pro_Sku_Info>(); listResult = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Pro_Sku_Info> >(ApiResult); //var products = BLL.Supply.ScProductBo.Instance.GetScProductList((int)Code); foreach (Pro_Sku_Info g in listResult) { var ScProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(g.ProSkuNo, (int)Code); if (ScProduct != null) { ScProduct Product = Hyt.DataAccess.Supply.IScProductDao.Instance.GetScProductInfo(ScProduct.SysNo); var jsonObject = JObject.Parse(Product.Receipt); //PdProductList PdData = new PdProductList(); string ProTitle = g.ProTitle; string ProNo = g.ProNo; string ProBrand = jsonObject["ProBrand"].ToString(); string ProClass = jsonObject["ProClass"].ToString(); string ProWeight = jsonObject["ProWeight"].ToString(); string ProSimg = jsonObject["ProSimg"].ToString(); string ProRemark = jsonObject["ProRemark"].ToString(); string ProSale = jsonObject["ProSale"].ToString(); string Pro_Unit = jsonObject["Pro_Unit"].ToString(); string ProTagPrice = jsonObject["ProTagPrice"].ToString(); string ProFxPrice = jsonObject["ProFxPrice"].ToString(); string ProRetPrice = jsonObject["ProRetPrice"].ToString(); string ProCount = g.ProCount.ToString(); string ProductSpec = jsonObject["ProductSpec"].ToString(); string Receipt = "{\"ProTitle\":\"" + ProTitle + "\",\"ProNo\":\"" + ProNo + "\",\"ProBrand\":\"" + ProBrand + "\",\"ProClass\":\"" + ProClass + "\"" + ",\"ProWeight\":\"" + ProWeight + "\",\"ProSimg\":\"" + ProSimg + "\",\"ProRemark\":\"" + ProRemark + "\",\"ProSale\":\"" + ProSale + "\"" + ",\"Pro_Unit\":\"" + Pro_Unit + "\",\"ProTagPrice\":\"" + ProTagPrice + "\",\"ProFxPrice\":\"" + ProFxPrice + "\",\"ProRetPrice\":\"" + ProRetPrice + "\"" + ",\"ProCount\":\"" + ProCount + "\",\"ProductSpec\":" + ProductSpec + "" + "}"; try { BLL.Supply.ScProductBo.Instance.UpdateScProduct(g.ProSkuNo, ProTitle, Receipt); } catch (Exception ex) { result.Message = "更新商品" + ProNo + "出现错误:" + ex.Message; result.Status = false; result.StatusCode = -2; return(result); } } } } } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }