Browse Source

处理首页在线人数时区的问题,和查询多条的问题。

Li 3 years ago
parent
commit
5711a86558
1 changed files with 36 additions and 29 deletions
  1. 36 29
      TEAMModelBI/Controllers/BIHome/OnLineController.cs

+ 36 - 29
TEAMModelBI/Controllers/BIHome/OnLineController.cs

@@ -104,10 +104,10 @@ namespace TEAMModelBI.Controllers.BIHome
             var (daySt, dayEt) = TimeHelper.GetStartOrEnd(dateTime);  //今天开始时间    13位
             var dateDay = dateTime.ToString("yyyyMMdd"); //获取当天的日期
 
-            Dictionary<int, int> allDays = new();  //所有在线人数
-            Dictionary<int, int> tchDays = new();  //教师在线人数
-            Dictionary<int, int> stuDays = new();  //学生在线人数
-            Dictionary<int, int> tmdDays = new();  //醍摩豆账户学生
+            Dictionary<string, int> allDays = new();  //所有在线人数
+            Dictionary<string, int> tchDays = new();  //教师在线人数
+            Dictionary<string, int> stuDays = new();  //学生在线人数
+            Dictionary<string, int> tmdDays = new();  //醍摩豆账户学生
 
             SortedSetEntry[] tchDay = _azureRedis.GetRedisClient(8).SortedSetRangeByScoreWithScores($"Login:IES:teacher:{dateDay}");
             if (tchDay.Length > 0)
@@ -116,11 +116,12 @@ namespace TEAMModelBI.Controllers.BIHome
                 {
                     int val = ((int)item.Score);
                     int key = ((int)item.Element);
-                    tchDays.Add(key, val);
-                    if (allDays.ContainsKey(key))
-                        allDays.Add(key, (allDays[key] + val));
+                    var hour = DateTime.SpecifyKind(Convert.ToDateTime($"{dateTime.Year}/{dateTime.Month}/{ dateTime.Day} {key}:00:00"), DateTimeKind.Utc).ToLocalTime().ToString("HH:mm");                    
+                    tchDays.Add(hour, val);
+                    if (allDays.ContainsKey(hour))
+                        allDays[hour] = (allDays[hour] + val);
                     else
-                        allDays.Add(key, val);
+                        allDays.Add(hour, val);
                 }
             }
             else
@@ -134,11 +135,12 @@ namespace TEAMModelBI.Controllers.BIHome
                     foreach (var item in hourTchCnt)
                     {
                         await _azureRedis.GetRedisClient(8).SortedSetIncrementAsync($"Login:IES:teacher:{dateDay}", $"{item.key}", item.value);//存一天24小时
-                        tchDays.Add(item.key, item.value);
-                        if (allDays.ContainsKey(item.key))
-                            allDays.Add(item.key, (allDays[item.key] + item.value));
+                        var hour = DateTime.SpecifyKind(Convert.ToDateTime($"{dateTime.Year}/{dateTime.Month}/{ dateTime.Day} {item.key}:00:00"), DateTimeKind.Utc).ToLocalTime().ToString("HH:mm");
+                        tchDays.Add(hour, item.value);
+                        if (allDays.ContainsKey(hour))
+                            allDays[hour] = (allDays[hour] + item.value);
                         else
-                            allDays.Add(item.key, item.value);
+                            allDays.Add(hour, item.value);
                     }
                 }
             }
@@ -150,11 +152,13 @@ namespace TEAMModelBI.Controllers.BIHome
                 {
                     int val = (int)item.Score;
                     int key = (int)item.Element;
-                    stuDays.Add(key, val);
-                    if (allDays.ContainsKey(key))
-                        allDays.Add(key, (allDays[key] + val));
+                    var hour = DateTime.SpecifyKind(Convert.ToDateTime($"{dateTime.Year}/{dateTime.Month}/{ dateTime.Day} {key}:00:00"), DateTimeKind.Utc).ToLocalTime().ToString("HH:mm");
+                    stuDays.Add(hour, val);
+                    if (allDays.ContainsKey(hour))
+                        allDays[hour] = (allDays[hour] + val);
                     else
-                        allDays.Add(key, val);
+                        allDays.Add(hour, val);
+
                 }
             }
             else
@@ -168,11 +172,12 @@ namespace TEAMModelBI.Controllers.BIHome
                     foreach (var item in hourStuCnt)
                     {
                         await _azureRedis.GetRedisClient(8).SortedSetIncrementAsync($"Login:IES:student:{dateDay}", $"{item.key}", item.value);//存一天24小时
-                        stuDays.Add(item.key, item.value);
-                        if (allDays.ContainsKey(item.key))
-                            allDays.Add(item.key, (allDays[item.key] + item.value));
+                        var hour = DateTime.SpecifyKind(Convert.ToDateTime($"{dateTime.Year}/{dateTime.Month}/{ dateTime.Day} {item.key}:00:00"), DateTimeKind.Utc).ToLocalTime().ToString("HH:mm");
+                        stuDays.Add(hour, item.value);
+                        if (allDays.ContainsKey(hour))
+                            allDays[hour] = (allDays[hour] + item.value);
                         else
-                            allDays.Add(item.key, item.value);
+                            allDays.Add(hour, item.value);
                     }
                 }
             }
@@ -184,11 +189,12 @@ namespace TEAMModelBI.Controllers.BIHome
                 {
                     int val = (int)item.Score;
                     int key = (int)item.Element;
-                    tmdDays.Add(key, val);
-                    if (allDays.ContainsKey(key))
-                        allDays.Add(key, (allDays[key] + val));
+                    var hour = DateTime.SpecifyKind(Convert.ToDateTime($"{dateTime.Year}/{dateTime.Month}/{ dateTime.Day} {key}:00:00"), DateTimeKind.Utc).ToLocalTime().ToString("HH:mm");
+                    tmdDays.Add(hour, val);
+                    if (allDays.ContainsKey(hour))
+                        allDays[hour] = (allDays[hour] + val);
                     else
-                        allDays.Add(key, val);
+                        allDays.Add(hour, val);
                 }
             }
             else
@@ -202,16 +208,17 @@ namespace TEAMModelBI.Controllers.BIHome
                     foreach (var item in hourTmdCnt)
                     {
                         await _azureRedis.GetRedisClient(8).SortedSetIncrementAsync($"Login:IES:tmduser:{dateDay}", $"{item.key}", item.value);//存一天24小时
-                        tmdDays.Add(item.key, item.value);
-                        if (allDays.ContainsKey(item.key))
-                            allDays.Add(item.key, (allDays[item.key] + item.value));
+                        var hour = DateTime.SpecifyKind(Convert.ToDateTime($"{dateTime.Year}/{dateTime.Month}/{ dateTime.Day} {item.key}:00:00"), DateTimeKind.Utc).ToLocalTime().ToString("HH:mm");
+                        tmdDays.Add(hour, item.value);
+                        if (allDays.ContainsKey(hour))
+                            allDays[hour] = (allDays[hour] + item.value);
                         else
-                            allDays.Add(item.key, item.value);
+                            allDays.Add(hour, item.value);
                     }
                 }
             }
             
-            return Ok(new { state = 200, allDays= allDays.ToList(), tchDays=tchDays.ToList(), stuDays= stuDays.ToList(), tmdDays= tmdDays.ToList() });
+            return Ok(new { state = 200,allDays = allDays.ToList(), tchDays=tchDays.ToList(), stuDays= stuDays.ToList(), tmdDays= tmdDays.ToList() });
         }
 
         /// <summary>