/// <summary>
        /// 根据uid获取用户购物车商品
        /// </summary>
        /// <param name="uid"></param>
        /// <returns></returns>
        public string GetShoppingCart(string uid)
        {
            string res = "";

            try
            {
                List <ShoppingCartModel> sclist   = shoppingcartdal.GetShoppingCart(uid);
                StockInfo_Response       newstock = GetNewStock(sclist);//最新库存
                if (newstock != null && newstock.code == 200)
                {
                    //查库存
                    for (int i = 0; i < sclist.Count; i++)
                    {
                        int newstockqty = 0;
                        //先根据序(列号 批次号 备件号 库区)查库存
                        var stocks = newstock.data.Where(s =>
                                                         s.LocationName == sclist[i].LocationName && s.ProductCode == sclist[i].ProductCode &&
                                                         sclist[i].SerialNumber == s.SerialNumber && sclist[i].BatchNumber == s.BatchNumber).FirstOrDefault();
                        if (stocks != null && !string.IsNullOrEmpty(stocks.ProductCode))
                        {
                            newstockqty = Convert.ToInt32(Convert.ToDecimal(stocks.StockQty).ToString("#0"));
                        }
                        sclist[i].StockQty = newstockqty;
                    }
                }
                res = JsonConvert.SerializeObject(new { code             = 0, msg = "ok", goodsCount = sclist.Count, checkedGoodsCount = sclist.Where(s => s.Ischecked == 1).ToList().Count,
                                                        ShoppingCartData = CartDataFactory(sclist) });
            }
            catch (Exception ex)
            {
                res = JsonConvert.SerializeObject(new { code = 10003, msg = "系统故障", count = 0 });
                LogHelper.ErrorLog(ex.Message + "," + ex.StackTrace);
            }
            return(res);
        }
        /// <summary>
        /// 获取库存数量
        /// </summary>
        /// <param name="sclist"></param>
        /// <returns></returns>
        public string GetStockQty(ShoppingCartModel scm)
        {
            string resstockqty = "0";

            try
            {
                List <ShoppingCartModel> stockreq = new List <ShoppingCartModel>();
                stockreq.Add(scm);
                StockInfo_Response stock = GetNewStock(stockreq);//库存数量

                if (stock != null && stock.data.Count > 0)
                {
                    var substock = stock.data.Where(s => s.LocationName == scm.LocationName && s.ProductCode == scm.ProductCode && s.SerialNumber == scm.SerialNumber && s.BatchNumber == scm.BatchNumber).ToList();
                    if (substock.Count > 0)
                    {
                        resstockqty = substock[0].StockQty;
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLog(ex.Message + "," + ex.StackTrace);
            }
            return(resstockqty);
        }
        /// <summary>
        /// 库存查询
        /// </summary>
        /// <param name="openid"></param>
        /// <returns></returns>
        public string StockSearch(string reqdata)
        {
            string res = "";

            try
            {
                //LogHelper.InfoLog("StockSearch参数:" + reqdata);
                Request_StockInfo req = JsonConvert.DeserializeObject <Request_StockInfo>(reqdata); //小程序请求参数反序列化

                StockInfo_Request reqtoapi = new StockInfo_Request();                               //库存查询参数
                reqtoapi.UnionId     = req.UnionId;
                reqtoapi.CompanyName = req.CompanyName;
                //reqtoapi.PhoneNumber = req.PhoneNumber.Replace("15827002712", "18717764701");
                reqtoapi.PhoneNumber = req.PhoneNumber;
                reqtoapi.key         = AppSettingUtil.InsideApiKey2;
                reqtoapi.list        = new List <ProLocListItem>()
                {
                    new ProLocListItem()
                    {
                        ProductCode   = req.ProductCode,
                        LocationNames = string.Join(",", req.LocationNamesArr)
                    }
                };

                StockInfo_Response resstock = stockhttpdal.stockinfo(JsonConvert.SerializeObject(reqtoapi));
                if (resstock.data.Count > 0)
                {
                    if (req.sort == 1)//正序
                    {
                        resstock.data = resstock.data.OrderBy(r => r.StockQty).ToList();
                    }
                    else if (req.sort == 2)//倒序
                    {
                        resstock.data = resstock.data.OrderByDescending(r => r.StockQty).ToList();
                    }
                }
                res = JsonConvert.SerializeObject(new { code = 0, msg = "ok", count = resstock.data.Count, StockData = resstock.data });
            }
            catch (Exception ex)
            {
                res = JsonConvert.SerializeObject(new { code = 10003, msg = "系统故障", count = 0 });
                LogHelper.ErrorLog(ex.Message + "," + ex.StackTrace);
            }
            return(res);
        }
        /// <summary>
        /// 获取库存数量
        /// </summary>
        /// <param name="sclist"></param>
        /// <returns></returns>
        private StockInfo_Response GetNewStock(List <ShoppingCartModel> sclist)
        {
            StockInfo_Response resstock = null;

            try
            {
                if (sclist.Count > 0)
                {
                    List <ProLocListItem> list = new List <ProLocListItem>();
                    foreach (var item in sclist)
                    {
                        ProLocListItem proitem = new ProLocListItem()
                        {
                            ProductCode   = item.ProductCode,
                            LocationNames = item.LocationName
                        };
                        list.Add(proitem);
                    }
                    StockInfo_Request req = new StockInfo_Request()
                    {
                        UnionId     = sclist[0].unionid,
                        CompanyName = sclist[0].VendName,
                        key         = AppSettingUtil.InsideApiKey2,
                        list        = list
                    };
                    resstock = stockhttpdal.stockinfo(JsonConvert.SerializeObject(req));
                    if (resstock.code != 200 || resstock.data.Count == 0)
                    {
                        resstock = null;
                    }
                }
            }
            catch (Exception ex)
            {
                resstock = null;
                LogHelper.ErrorLog(ex.Message + "," + ex.StackTrace);
            }
            return(resstock);
        }