/// <summary> /// 近期趋势 /// </summary> /// <param name="areaid"></param> /// <param name="type"></param> /// <param name="version"></param> /// <param name="time"></param> /// <returns></returns> public DaysDataModel ThirtyDaysData(int areaid, int type, DateTime time) { DaysDataModel model = new DaysDataModel(); try { var res = _repository.GetThirtyDaysData(areaid, type, time).OrderBy(i => i.dataTime).ToList(); List <int> all = new List <int>(); List <int> android = new List <int>(); List <int> ios = new List <int>(); List <int> windows = new List <int>(); for (int i = 0; i < 30; i++) { var itemDate = time.AddDays(i); var itemData = res.Where(i => i.dataTime == itemDate).ToList(); if (itemData.Count > 0) { model.Active.All.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.All.GetName()).activeUsers); model.Register.All.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.All.GetName()).registeredUsers); model.Active.Android.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.Android.GetName()).activeUsers); model.Register.Android.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.Android.GetName()).registeredUsers); model.Active.IOS.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.IOS.GetName()).activeUsers); model.Register.IOS.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.IOS.GetName()).registeredUsers); model.Active.Windows.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.Windows.GetName()).activeUsers); model.Register.Windows.Add(itemData.FirstOrDefault(i => i.platForm == PlatFromEnum.Windows.GetName()).registeredUsers); } else { model.Active.All.Add(0); model.Register.All.Add(0); model.Active.Android.Add(0); model.Register.Android.Add(0); model.Active.IOS.Add(0); model.Register.IOS.Add(0); model.Active.Windows.Add(0); model.Register.Windows.Add(0); } } //近30天数据 model.xAxis = xAxisTools.DataRange(30, true); return(model); } catch (Exception e) { _logger.LogError($"ThirtyDaysData:{e.Message}"); throw; } }
/// <summary> /// 实时数据 /// </summary> /// <param name="areaid"></param> /// <param name="value"></param> /// <param name="type"></param> /// <param name="version"></param> /// <returns></returns> public DaysDataModel RealTimeData(int areaid, int value, int type, string version) { DaysDataModel data = new DaysDataModel(); try { string ridesKey = ""; if (string.IsNullOrEmpty(version)) { ridesKey = $"r_{value}_{type}_{areaid}"; } else { ridesKey = $"r_{value}_{type}_{version}_{areaid}"; } long length = _cache._redisProvider.LLen(ridesKey); List <JobRealData> list = _cache._redisProvider.LRange <JobRealData>(ridesKey, 0, length); var startTime = DateTime.Now.AddHours(-24); var endTime = DateTime.Now; list = list.Where(i => i.dateTime >= startTime && i.dateTime <= endTime).OrderBy(i => i.dateTime).ToList(); data.xAxis = list.Select(i => i.dateTime.ToString("HH:mm")).ToList(); data.Active = new platForm() { All = list.Select(i => i.Active.All).ToList(), Android = list.Select(i => i.Active.Android).ToList(), IOS = list.Select(i => i.Active.IOS).ToList(), Windows = list.Select(i => i.Active.Windows).ToList() }; data.Register = new platForm() { All = list.Select(i => i.Register.All).ToList(), Android = list.Select(i => i.Register.Android).ToList(), IOS = list.Select(i => i.Register.IOS).ToList(), Windows = list.Select(i => i.Register.Windows).ToList() }; } catch (Exception e) { _logger.LogError($"RealTimeData:{e.Message}"); throw; } return(data); }