首页数据太多,太卡,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>
 | 
				
			||||||
| 
						 | 
					@ -22,8 +63,8 @@ namespace langguanApi.Service
 | 
				
			||||||
        public async Task Add(Model.HJ212 hJ212, string deviceIp)
 | 
					        public async Task Add(Model.HJ212 hJ212, string deviceIp)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            ////判断设备类型 tsp 会有经纬度数据
 | 
					            ////判断设备类型 tsp 会有经纬度数据
 | 
				
			||||||
         //  int deviceType = 1;//设备类型为1 =voc
 | 
					            //  int deviceType = 1;//设备类型为1 =voc
 | 
				
			||||||
 
 | 
					
 | 
				
			||||||
            ////先判断当前设备是否存在
 | 
					            ////先判断当前设备是否存在
 | 
				
			||||||
            //await _deviceSerive.Add(new DeviceAddDto()
 | 
					            //await _deviceSerive.Add(new DeviceAddDto()
 | 
				
			||||||
            //{
 | 
					            //{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
| 
						 | 
					@ -73,9 +74,10 @@ namespace langguanApi.Service
 | 
				
			||||||
                day = new { voc = "70mg/m3", cemes = "100mg/m3" },
 | 
					                day = new { voc = "70mg/m3", cemes = "100mg/m3" },
 | 
				
			||||||
                week = new
 | 
					                week = new
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                   
 | 
					
 | 
				
			||||||
                } 
 | 
					                }
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            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