using System; using GPSBusiness.Enum; using GpsModels; using log4net; namespace GPSBusiness.Redis { public static class RedisRepository { public static ILog Log = LogManager.GetLogger(""); #region 车辆最后存在速度的GPS时间 /// /// 更新车辆最后存在速度的GPS时间 /// public static void SetLastHaveSpeed(GpsModel model) { if (model.CompanyId == 0) return; if (model.VehicleId == 0) return; var cmpId = model.CompanyId; var key = "LastHaveSpeed" + "_" + cmpId + "_" + model.VehicleId; try { RedisContext.Server.SetOfJson(key, model, -1); } catch (Exception ex) { var aa = 0; throw; } } /// /// 获取车辆最后存在速度的GPS时间 /// public static GpsModel GetLastHaveSpeed(GpsModel model) { try { if (model.CompanyId == 0) return null; if (model.VehicleId == 0) return null; var cmpId = model.CompanyId; var key = "LastHaveSpeed" + "_" + cmpId + "_" + model.VehicleId; return RedisContext.Server.GetFromJson(key); } catch (Exception ex) { Log.ErrorFormat("GetLastHaveSpeed=报错=,ex.Message={0},ex.InnerException={1},ex.StackTrace={2}", ex.Message, ex.InnerException, ex.StackTrace); throw; } } /// /// 是否已设置车辆最后存在速度的GPS时间 /// public static bool IsSetLastHaveSpeed(GpsModel model) { if (model.CompanyId == 0) return false; if (model.VehicleId == 0) return false; var cmpId = model.CompanyId; var key = "LastHaveSpeed" + "_" + cmpId + "_" + model.VehicleId; return RedisContext.Server.IsSet(key); } #endregion #region 车辆Acc/作业状态第一次开启的时间 /// /// 更新Acc/作业状态第一次开启的时间 /// /// /// 1Acc,2Work public static void SetFirstStatus(GpsModel model,int type) { if (model.CompanyId == 0) return; if (model.VehicleId == 0) return; var cmpId = model.CompanyId; var key = (type == (int)StatusEnum.Acc ? RedisPrefixEnum.FirstAcc : RedisPrefixEnum.FirstWork) + cmpId + "_" + model.VehicleId; RedisContext.Server.SetOfJson(key, model, -1); } /// /// 获取Acc/作业状态第一次开启的时间 /// /// /// 1Acc,2Work public static GpsModel GetFirstStatus(GpsModel model, int type) { try { if (model.CompanyId == 0) return null; if (model.VehicleId == 0) return null; var cmpId = model.CompanyId; var key = (type == (int)StatusEnum.Acc ? RedisPrefixEnum.FirstAcc : RedisPrefixEnum.FirstWork) + cmpId + "_" + model.VehicleId; return RedisContext.Server.GetFromJson(key); } catch (Exception ex) { Log.ErrorFormat("GetLastHaveSpeed=报错=,ex.Message={0},ex.InnerException={1},ex.StackTrace={2}", ex.Message, ex.InnerException, ex.StackTrace); throw; } } /// /// 是否已设置Acc/作业状态第一次开启的时间 /// /// /// 1Acc,2Work public static bool IsSetFirstStatus(GpsModel model, int type) { if (model.CompanyId == 0) return false; if (model.VehicleId == 0) return false; var cmpId = model.CompanyId; var key = (type == 1 ? RedisPrefixEnum.FirstAcc : RedisPrefixEnum.FirstWork) + cmpId + "_" + model.VehicleId; return RedisContext.Server.IsSet(key); } #endregion //#region 车辆最后GPS时间 ///// ///// 更新车辆最后GPS时间 ///// //public static void SetLastGpsTime(GpsModel model) //{ // if (model.CompanyId == 0) return; // if (model.VehicleId == 0) return; // var cmpId = 500000 + model.CompanyId; // var key = "LastGpsTime" + "_" + cmpId + "_" + model.VehicleId; // RedisContext.Server.SetOfJson(key, model, -1); //} ///// ///// 获取车辆最后GPS时间 ///// //public static GpsModel GetLastGpsTime(GpsModel model) //{ // try // { // if (model.CompanyId == 0) return null; // if (model.VehicleId == 0) return null; // var cmpId = 500000 + model.CompanyId; // var key = "LastGpsTime" + "_" + cmpId + "_" + model.VehicleId; // return RedisContext.Server.GetFromJson(key); // } // catch (Exception ex) // { // Log.ErrorFormat("GetLastGpsTime=报错=,ex.Message={0},ex.InnerException={1},ex.StackTrace={2}", ex.Message, ex.InnerException, ex.StackTrace); // throw; // } //} ///// ///// 是否已设置车辆最后GPS时间 ///// //public static bool IsSetLastGpsTime(GpsModel model) //{ // if (model.CompanyId == 0) return false; // if (model.VehicleId == 0) return false; // var cmpId = 500000 + model.CompanyId; // var key = "LastGpsTime" + "_" + cmpId + "_" + model.VehicleId; // return RedisContext.Server.IsSet(key); //} //#endregion #region /// /// 更新车辆最后GPS时间 /// public static void SetLastGpsTime(GpsModel model) { if (model.VehicleId == 0) return; var key = "LastGpsTime" + "_" + model.VehicleId; RedisContext.Server.SetOfJson(key, model,1); } /// /// 获取车辆最后GPS时间 /// public static GpsModel GetLastGpsTime(GpsModel model) { try { if (model.VehicleId == 0) return null; var key = "LastGpsTime" + "_" + model.VehicleId; return RedisContext.Server.GetFromJson(key); } catch (Exception ex) { Log.ErrorFormat("GetLastGpsTime=报错=,ex.Message={0},ex.InnerException={1},ex.StackTrace={2}", ex.Message, ex.InnerException, ex.StackTrace); throw; } } /// /// 是否已设置车辆最后GPS时间 /// public static bool IsSetLastGpsTime(GpsModel model) { if (model.VehicleId == 0) return false; var key = "LastGpsTime"+ "_" + model.VehicleId; return RedisContext.Server.IsSet(key); } /// /// 自增车辆最后GPS时间 /// public static long IncrementLastGpsTimeRepeatCount(GpsModel model) { if (model.VehicleId == 0) return 0; var key = "LastGpsTimeRepeatCount" + "_" + model.VehicleId; return RedisContext.Server.StringIncrement(key); } /// /// 更新车辆最后GPS时间 /// public static void SetLastGpsTimeRepeatCount(GpsModel model) { if (model.VehicleId == 0) return; var key = "LastGpsTimeRepeatCount" + "_" + model.VehicleId; RedisContext.Server.SetOfJson(key,0,-1); } /// /// 获取车辆最后GPS时间 /// public static long GetLastGpsTimeRepeatCount(GpsModel model) { try { if (model.VehicleId == 0) return 0; var key = "LastGpsTimeRepeatCount" + "_" + model.VehicleId; return RedisContext.Server.GetFromJson(key); } catch (Exception ex) { Log.ErrorFormat("GetLastGpsTime=报错=,ex.Message={0},ex.InnerException={1},ex.StackTrace={2}", ex.Message, ex.InnerException, ex.StackTrace); throw; } } } #endregion }