コード例 #1
0
        /// <summary>
        /// 获取品牌及车系
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string RefreshBrandSeriesAPIData(HttpContext context)
        {
            var result = string.Empty;

            //查询当前用户的appkey
            //调用接口获取远程数据

            BLLJIMP.BLLKeyValueData bllKV = new BLLJIMP.BLLKeyValueData();
            var baseUrl  = "http://apis.haoservice.com/lifeservice/car/";
            var appKey   = bllKV.GetDataVaule(BLLJIMP.Enums.KeyVauleDataType.HaoServiceAppKey, "GetCarSeries", this.webSiteOwner);
            var api      = baseUrl + "GetSeries?key=" + appKey;
            var modelApi = baseUrl + "GetModel/?key=" + appKey + "&id=";

            var respStr = MySpider.MySpider.GetPageSourceForUTF8(api);

            if (!string.IsNullOrWhiteSpace(respStr))
            {
                //var respObj = JsonConvert.DeserializeObject<BLLJIMP.Model.HaoService.BrandResp>(respStr);

                var respObj = ZentCloud.Common.JSONHelper.JsonToModel <BLLJIMP.Model.HaoService.BrandResp>(respStr);

                var reason = respObj.reason;

                //保存品牌
                List <CarBrandInfo> brandList = new List <CarBrandInfo>();

                //保存车系分类
                List <CarSeriesCateInfo> seriesCateList = new List <CarSeriesCateInfo>();

                //保存车系类别
                List <CarSeriesInfo> seriesList = new List <CarSeriesInfo>();

                List <CarModelCateInfo> modelCateList = new List <CarModelCateInfo>();

                List <CarModelInfo> modelList = new List <CarModelInfo>();

                //dynamic resp = JsonConvert.DeserializeObject(respStr);
                var updator = this.currentUserInfo == null ? "" : this.currentUserInfo.UserID;
                foreach (var i in respObj.result)
                {
                    brandList.Add(new CarBrandInfo()
                    {
                        CarBrandId   = i.I,
                        CarBrandName = i.N,
                        FirstLetter  = i.L,
                        UpdateTime   = DateTime.Now,
                        Updator      = updator
                    });//保存品牌

                    foreach (var j in i.List)
                    {
                        seriesCateList.Add(new CarSeriesCateInfo()
                        {
                            CarBrandId        = i.I,
                            CarSeriesCateId   = j.I,
                            CarSeriesCateName = j.N,
                            UpdateTime        = DateTime.Now,
                            Updator           = updator
                        });//保存车系分类

                        foreach (var k in j.List)
                        {
                            seriesList.Add(new CarSeriesInfo()
                            {
                                CarBrandId      = i.I,
                                CarSeriesCateId = j.I,
                                CarSeriesId     = k.I,
                                CarSeriesName   = k.N,
                                UpdateTime      = DateTime.Now,
                                Updator         = updator
                            });//保存车系类别
                        }
                    }
                }

                //保存到数据库,id不存在的则新增,否则跳过
                int totalCount = 0;

                //品牌数据不更新
                //totalCount += bll.UpdateBrandInfo(brandList);
                totalCount += bll.UpdateSeriesCateInfo(seriesCateList);
                totalCount += bll.UpdateSeriesInfo(seriesList);


                List <int> buyBrandIdList   = new List <int>();
                List <int> serviceBrandList = new List <int>();
                List <int> allBrandIdList   = new List <int>();

                bll.GetWebSiteBrandIdList(this.webSiteOwner, out buyBrandIdList, out serviceBrandList, out allBrandIdList);

                //获取车型数据
                var webSeriesList = seriesList.Where(p => allBrandIdList.Contains(p.CarBrandId));

                foreach (var series in webSeriesList)
                {
                    respStr = MySpider.MySpider.GetPageSourceForUTF8(modelApi + series.CarSeriesId.ToString());
                    dynamic apiData = JsonConvert.DeserializeObject(respStr);

                    if (apiData["reason"].ToString() == "Success")
                    {
                        dynamic apiResultData = apiData["result"]["List"];

                        foreach (var apiModelCate in apiResultData)
                        {
                            var cateId = int.Parse(apiModelCate["I"].ToString());
                            modelCateList.Add(new CarModelCateInfo()
                            {
                                CarSeriesId      = series.CarSeriesId,
                                CarModelCateId   = cateId,
                                CarModelCateName = apiModelCate["N"].ToString(),
                                UpdateTime       = DateTime.Now,
                                Updator          = updator
                            });

                            dynamic apiYearList = apiModelCate["List"];

                            foreach (var apiYearData in apiYearList)
                            {
                                var year = int.Parse(apiYearData["I"].ToString());

                                foreach (var apiCarModel in apiYearData["List"])
                                {
                                    var modelId    = int.Parse(apiCarModel["I"].ToString());
                                    var modelName  = apiCarModel["N"].ToString();
                                    var modelPrice = int.Parse(apiCarModel["P"].ToString());

                                    modelList.Add(new CarModelInfo()
                                    {
                                        CarSeriesCateId = series.CarSeriesCateId.Value,
                                        CarSeriesId     = series.CarSeriesId,
                                        CarBrandId      = series.CarBrandId,
                                        CarModelCateId  = cateId,
                                        Year            = year,
                                        CarModelId      = modelId,
                                        CarModelName    = modelName,
                                        GuidePrice      = modelPrice,
                                        UpdateTime      = DateTime.Now,
                                        Updator         = updator
                                    });
                                }
                            }
                        }
                    }
                }

                totalCount += bll.UpdateModelCateInfo(modelCateList);
                totalCount += bll.UpdateModelInfo(modelList);

                resp.isSuccess   = true;
                resp.returnValue = totalCount.ToString();

                result = MySpider.JSONHelper.ObjectToJson(resp);
            }

            return(result);
        }