예제 #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);
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
            }
        }
예제 #6
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);
            }
        }
예제 #7
0
        /// <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);
            }
        }
예제 #8
0
        /// <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);
            }
        }
예제 #9
0
        /// <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);
            }
        }
예제 #10
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);
            }
        }
예제 #11
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);
            }
        }
예제 #12
0
 /// <summary>
 /// 更新供应链产品
 /// </summary>
 /// <param name="model">供应链商品实体</param>
 /// <returns></returns>
 /// <remarks> 2016-3-17  杨浩 创建</remarks>
 public abstract int UpdateScProduct(ScProduct model);
예제 #13
0
 /// <summary>
 /// 添加供应链产品
 /// </summary>
 /// <param name="model">供应链商品实体</param>
 /// <returns></returns>
 /// <remarks> 2016-3-17  杨浩 创建</remarks>
 public abstract int AddScProduct(ScProduct model);
예제 #14
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);
            }
        }
예제 #15
0
        /// <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);
            }
        }
예제 #16
0
 /// <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));
 }
예제 #17
0
        /// <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);
            }
        }
예제 #18
0
 /// <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);
 }
예제 #19
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);
            }
        }
예제 #20
0
        /// <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);
            }
        }