/// <summary> /// 更新白名单到本地 /// </summary> public bool UpdateWhiteList(string version) { try { VehicleLegality vehicleJd = jdParkBiz.QueryVehicleLegalityJd(version); //服务端不可用,每隔 5s 进行重试, 5次后如仍不行, 客户端 应用 需邮件 通知 服务端 人 //服务端处理失败,一般是校验问题 if (vehicleJd.returnCode == "fail") { string message = string.Format("{0}:获取白名单Fail:{1}", DateTime.Now.ToString(), vehicleJd.description); if (CommonSettings.IsDev) { Console.WriteLine(message); } LogHelper.Error(message); return(false); } //服务端异常 if (vehicleJd.returnCode == "exception") { string message = string.Format("{0}:获取白名单exception:{1}", DateTime.Now.ToString(), vehicleJd.description); if (CommonSettings.IsDev) { Console.WriteLine(message); } LogHelper.Error(message); return(false); } //更新到数据库 try { foreach (VehicleInfo v in vehicleJd.data) { VehicleInfoDb ve = new VehicleInfoDb(v); ve.UpdateTime = DateTime.Now; VehicleInfoDb vehicleDb = dataBase.FindByKey <VehicleInfoDb>(v.vehicleNo); if (vehicleDb != null) { ve.CreateTime = vehicleDb.CreateTime; dataBase.Update <VehicleInfoDb>(ve, v.vehicleNo); } else { ve.CreateTime = DateTime.Now; dataBase.Insert <VehicleInfoDb>(ve); } } //白名单已经更新,需要重载白名单数据缓存 JDCommonSettings.ReLoadWhiteList(); return(true); } catch (Exception ex) { string message = string.Format("{0}:更新数据库出错:{1}", DateTime.Now.ToString(), ex.Message); if (CommonSettings.IsDev) { Console.WriteLine(message); } LogHelper.Error(message); throw ex; } } catch (Exception ex) { string message = string.Format("{0}:获取京东白名单出错:{1}", DateTime.Now.ToString(), ex.Message); if (CommonSettings.IsDev) { Console.WriteLine(message); } LogHelper.Error(message); throw ex; } }
private void btn_Version_Click(object sender, EventArgs e) { try { JDParkBiz biz = new JDParkBiz(); VehicleLegality vehiclelegality = biz.QueryVehicleLegalityJd(txt_Version.Text); int totalCount = 0; LogHelper.Info("==================最新版本号:" + vehiclelegality.version); if (vehiclelegality.data != null) { totalCount = vehiclelegality.data.Count; LogHelper.Info("==================最新版本号:" + vehiclelegality.version + ",总数:" + totalCount); int lelegalityCount = 0; int inLegCount = 0; lelegalityCount = vehiclelegality.data.Where(p => p.yn == "0").Count(); inLegCount = vehiclelegality.data.Where(p => p.yn == "1").Count(); LogHelper.Info("==================最新版本号:" + vehiclelegality.version + ",合法总数:" + lelegalityCount); LogHelper.Info("==================最新版本号:" + vehiclelegality.version + ",非法总数:" + inLegCount); //LogHelper.Info(vehiclelegality.data.ToJson()); int realTotalCount = 0; int realLegalitCount = 0; int realInLegCount = 0; List <string> LPlate = new List <string>(); ParkWhiteListBLL parkWhiteBll = new ParkWhiteListBLL(); ICollection <VehicleInfoDb> IVehicleInfoDbAll = parkWhiteBll.GetAll(); foreach (VehicleInfo item in vehiclelegality.data) { if (LPlate.Contains(item.vehicleNo)) { continue; } LPlate.Add(item.vehicleNo); realTotalCount++; if (item.yn == "0") { realLegalitCount++; } else { realInLegCount++; } VehicleInfoDb vehiceleinfo = IVehicleInfoDbAll.Where(p => p.vehicleNo == item.vehicleNo).FirstOrDefault(); if (vehiceleinfo == null) { LogHelper.Info("==================同步表未有数据" + item.vehicleNo + ",之前未同步=================="); LogHelper.Info("==================同步表未有数据" + item.vehicleNo + ",开始插入同步表=================="); VehicleInfoDb ve = new VehicleInfoDb(item); ve.CreateTime = DateTime.Now; ve.UpdateTime = DateTime.Now; ve.BindCar = 0; parkWhiteBll.Insert(ve); LogHelper.Info(ve.ToJson()); LogHelper.Info("==================" + item.vehicleNo + ",插入同步表成功=================="); } else { if (vehiceleinfo.yn != item.yn) { LogHelper.Info("==================同步表有数据" + item.vehicleNo + ",合法字段不符,开始更新同步表=================="); vehiceleinfo.yn = item.yn; parkWhiteBll.Update(vehiceleinfo); LogHelper.Info("==================" + item.vehicleNo + ",更新同步表成功=================="); } } } foreach (VehicleInfoDb item in IVehicleInfoDbAll) { VehicleInfo vehicel = vehiclelegality.data.Where(p => p.vehicleNo == item.vehicleNo).FirstOrDefault(); if (vehicel == null) { LogHelper.Info("==================同步表有数据" + item.vehicleNo + ",京东版本信息中未有数据=================="); } } LogHelper.Info("==================最新版本号:" + vehiclelegality.version + ",去除重复,实际总数:" + realTotalCount); LogHelper.Info("==================最新版本号:" + vehiclelegality.version + ",去除重复,实际合法总数:" + realLegalitCount); LogHelper.Info("==================最新版本号:" + vehiclelegality.version + ",去除重复,实际非法总数:" + realInLegCount); int localTotalCount = 0; int localLegCOunt = 0; localTotalCount = IVehicleInfoDbAll.Count; localLegCOunt = IVehicleInfoDbAll.Where(p => p.yn == "0").Count(); LogHelper.Info("本地同步表总数:" + localTotalCount + "合法总数:" + localLegCOunt); LogHelper.Info("==================查询完毕==================="); MessageBox.Show("查询完毕"); } } catch (Exception ex) { LogHelper.Error("", ex); } }