Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }