首页数据太多,太卡,redis缓存一下
This commit is contained in:
parent
846c921a65
commit
ecf20b76bf
|
|
@ -34,6 +34,11 @@
|
||||||
缓存ARI数据
|
缓存ARI数据
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:langguanApi.Common.Redis.RedisKeylist.Trend">
|
||||||
|
<summary>
|
||||||
|
首页趋势数据
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="F:langguanApi.Common.Redis.RedisKeylist.CleanData">
|
<member name="F:langguanApi.Common.Redis.RedisKeylist.CleanData">
|
||||||
<summary>
|
<summary>
|
||||||
缓存清洁数据
|
缓存清洁数据
|
||||||
|
|
@ -99,7 +104,7 @@
|
||||||
</member>
|
</member>
|
||||||
<member name="M:langguanApi.Controllers.AlertController.export(System.Nullable{System.DateTime},System.Nullable{System.DateTime})">
|
<member name="M:langguanApi.Controllers.AlertController.export(System.Nullable{System.DateTime},System.Nullable{System.DateTime})">
|
||||||
<summary>
|
<summary>
|
||||||
export data
|
export data 默认最近7天数据
|
||||||
</summary>
|
</summary>
|
||||||
<param name="start"></param>
|
<param name="start"></param>
|
||||||
<param name="end"></param>
|
<param name="end"></param>
|
||||||
|
|
@ -1861,6 +1866,13 @@
|
||||||
<param name="input"></param>
|
<param name="input"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:langguanApi.Service.Hj212Service.GetIndexData(System.Int32)">
|
||||||
|
<summary>
|
||||||
|
首页数据
|
||||||
|
</summary>
|
||||||
|
<param name="day"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:langguanApi.Service.Hj212Service.Add(langguanApi.Model.HJ212,System.String)">
|
<member name="M:langguanApi.Service.Hj212Service.Add(langguanApi.Model.HJ212,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
新加数据
|
新加数据
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,10 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string AriQuality = "arqulaty";
|
public static string AriQuality = "arqulaty";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 首页趋势数据
|
||||||
|
/// </summary>
|
||||||
|
public static string Trend = "tred";
|
||||||
|
/// <summary>
|
||||||
/// 缓存清洁数据
|
/// 缓存清洁数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CleanData = "cleandata";
|
public static string CleanData = "cleandata";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using langguanApi.Extensions.AutoDI;
|
using langguanApi.Extensions.AutoDI;
|
||||||
using langguanApi.Model;
|
using langguanApi.Model;
|
||||||
using langguanApi.Model.Dto;
|
using langguanApi.Model.Dto;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
namespace langguanApi.Service
|
namespace langguanApi.Service
|
||||||
|
|
@ -14,6 +15,46 @@ namespace langguanApi.Service
|
||||||
_deviceSerive = deviceSerive;
|
_deviceSerive = deviceSerive;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 首页数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="day"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<object> GetIndexData(int day = 7)
|
||||||
|
{
|
||||||
|
Stopwatch sw = new Stopwatch();
|
||||||
|
sw.Start();
|
||||||
|
Expression<Func<Model.HJ212, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-day);
|
||||||
|
var result = (await base.GetListWithExp(exp)).ToList();
|
||||||
|
var temp = result.Select(s => new
|
||||||
|
{
|
||||||
|
s.a34001,
|
||||||
|
s.a34002,
|
||||||
|
s.a34004,
|
||||||
|
date = s.CreateDateTime.AddHours(8).ToString("MM-dd")
|
||||||
|
}).ToList();
|
||||||
|
sw.Stop();
|
||||||
|
Console.WriteLine($"GetIndexData:{sw.ElapsedMilliseconds}ms");
|
||||||
|
return temp.GroupBy(g => new { g.date })
|
||||||
|
.Select(s => new
|
||||||
|
{
|
||||||
|
s.Key.date,
|
||||||
|
a34001 = s.Sum(t => t.a34001),
|
||||||
|
a34002 = s.Sum(t => t.a34002),
|
||||||
|
a34004 = s.Sum(t => t.a34004)
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
//temp.GroupBy(g => new { g.date }).ToList().ForEach(s =>
|
||||||
|
//{
|
||||||
|
// var v1 = temp.Where(m => m.date == s.Key.date).Sum(t => t.a34001);
|
||||||
|
// var v2 = temp.Where(m => m.date == s.Key.date).Sum(t => t.a34002);
|
||||||
|
// var v3 = temp.Where(m => m.date == s.Key.date).Sum(t => t.a34004);
|
||||||
|
// list.Add(new columnView() { hour = s.Key.date, type = "a34001", value = v1 });
|
||||||
|
// list.Add(new columnView() { hour = s.Key.date, type = "a34002", value = Math.Round(v2, 2) });
|
||||||
|
// list.Add(new columnView() { hour = s.Key.date, type = "a34004", value = Math.Round(v3, 2) });
|
||||||
|
//});
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
/// 新加数据
|
/// 新加数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="hJ212"></param>
|
/// <param name="hJ212"></param>
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,8 @@ namespace langguanApi.Service
|
||||||
// 获取空气质量,缓存2小时,如果不存在,则调用WeatherService获取
|
// 获取空气质量,缓存2小时,如果不存在,则调用WeatherService获取
|
||||||
Func<Task<object>> getAriQualityFunc = async () => await _weatherService.GetAirQuality();
|
Func<Task<object>> getAriQualityFunc = async () => await _weatherService.GetAirQuality();
|
||||||
var ariQuality = await _cacheManager.GetConvertVale(RedisKeylist.AriQuality, getAriQualityFunc, 60 * 120);
|
var ariQuality = await _cacheManager.GetConvertVale(RedisKeylist.AriQuality, getAriQualityFunc, 60 * 120);
|
||||||
|
Func<Task<object>> getTrendFunc = async () => await _hj212Service.GetIndexData();
|
||||||
|
var trend = await _cacheManager.GetConvertVale(RedisKeylist.Trend, getTrendFunc, 60 * new Random().Next(70));
|
||||||
//首页清洁运输比例
|
//首页清洁运输比例
|
||||||
var cleaData = new
|
var cleaData = new
|
||||||
{
|
{
|
||||||
|
|
@ -76,6 +77,7 @@ namespace langguanApi.Service
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return new ApiResult
|
return new ApiResult
|
||||||
{
|
{
|
||||||
code = 0,
|
code = 0,
|
||||||
|
|
@ -90,13 +92,15 @@ namespace langguanApi.Service
|
||||||
},
|
},
|
||||||
title = _configuration.GetValue<string>("Home:Title"),
|
title = _configuration.GetValue<string>("Home:Title"),
|
||||||
},
|
},
|
||||||
|
weather,
|
||||||
devices,
|
devices,
|
||||||
cleanData,
|
cleanData,
|
||||||
ariQuality,
|
ariQuality,
|
||||||
Realtime = "",
|
rate = new { },
|
||||||
getViewTop = "",
|
trend,
|
||||||
weather,
|
// trend = await _hj212Service.GetIndexData(),
|
||||||
alerts,
|
alerts,
|
||||||
|
getViewTop = "",
|
||||||
detections
|
detections
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -98,87 +98,86 @@ namespace langguanApi.Service
|
||||||
{
|
{
|
||||||
case "CO":
|
case "CO":
|
||||||
keyword = "一氧化碳";
|
keyword = "一氧化碳";
|
||||||
standard = "0.5μg/m3";
|
standard = "4 mg/m3";
|
||||||
if (double.Parse(value) >= 0.5)
|
if (double.Parse(value) > 4)
|
||||||
{
|
{
|
||||||
level = "优";
|
level = "差";
|
||||||
}
|
}
|
||||||
else if (double.Parse(value) >= 0.3)
|
else if (double.Parse(value) == 4)
|
||||||
{
|
{
|
||||||
level = "持平";
|
level = "持平";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
level = "差";
|
level = "优";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "NO2":
|
case "NO2":
|
||||||
keyword = "二氧化氮";
|
keyword = "二氧化氮";
|
||||||
standard = "50μg/m3";
|
standard = "40μg/m3";
|
||||||
if (double.Parse(value) >= 50)
|
if (double.Parse(value) >= 40)
|
||||||
{
|
{
|
||||||
level = "优";
|
level = "差";
|
||||||
}
|
}
|
||||||
else if (double.Parse(value) >= 150)
|
else if (double.Parse(value) == 150)
|
||||||
{
|
|
||||||
level = "轻度污染";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level = "中度污染";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "O3":
|
|
||||||
keyword = "臭氧";
|
|
||||||
standard = "100μg/m3";
|
|
||||||
if (double.Parse(value) >= 100)
|
|
||||||
{
|
|
||||||
level = "优";
|
|
||||||
}
|
|
||||||
else if (double.Parse(value) >= 50)
|
|
||||||
{
|
{
|
||||||
level = "持平";
|
level = "持平";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
level = "优";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "O3":
|
||||||
|
keyword = "臭氧";
|
||||||
|
standard = "160μg/L";
|
||||||
|
if (double.Parse(value) > 160)
|
||||||
{
|
{
|
||||||
level = "差";
|
level = "差";
|
||||||
}
|
}
|
||||||
|
else if (double.Parse(value) == 160)
|
||||||
|
{
|
||||||
|
level = "持平";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
level = "优";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "PM10":
|
case "PM10":
|
||||||
keyword = "PM10";
|
keyword = "PM10";
|
||||||
standard = "50ug/m3";
|
standard = "10mg/m3";
|
||||||
if (double.Parse(value) >= 50)
|
if (double.Parse(value) > 10)
|
||||||
{
|
{
|
||||||
level = "优";
|
level = "差";
|
||||||
}
|
}
|
||||||
else if (double.Parse(value) >= 150)
|
else if (double.Parse(value) == 10)
|
||||||
{
|
{
|
||||||
level = "中";
|
level = "持平";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
level = "差";
|
level = "优";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "PM2_5":
|
case "PM2_5":
|
||||||
|
|
||||||
keyword = "PM2.5";
|
keyword = "PM2.5";
|
||||||
standard = "25ug/m3";
|
standard = "8mg/m3";
|
||||||
if (double.Parse(value) >= 25)
|
if (double.Parse(value) > 8)
|
||||||
{
|
|
||||||
level = "优";
|
|
||||||
}
|
|
||||||
else if (double.Parse(value) >= 100)
|
|
||||||
{
|
|
||||||
level = "中";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
level = "差";
|
level = "差";
|
||||||
}
|
}
|
||||||
|
else if (double.Parse(value) == 8)
|
||||||
|
{
|
||||||
|
level = "持平";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
level = "优";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "SO2":
|
case "SO2":
|
||||||
|
|
||||||
keyword = "二氧化硫";
|
keyword = "二氧化硫";
|
||||||
standard = "15μg/m3";
|
standard = "15μg/m3";
|
||||||
if (double.Parse(value) >= 15)
|
if (double.Parse(value) >= 15)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue