|
@@ -40,7 +40,7 @@ namespace TEAMModelOS.SDK.Models.Service
|
|
|
var currentDay = dateTime.Day;
|
|
|
long Expire = dateTime.AddHours(expire).ToUnixTimeMilliseconds(); //token到期时间
|
|
|
long now = dateTime.ToUnixTimeMilliseconds(); //时间戳
|
|
|
-
|
|
|
+
|
|
|
DateTime hour = DateTime.UtcNow.AddHours(25); //25小时到期
|
|
|
DateTime month = DateTime.UtcNow.AddDays(32); //一个月到期
|
|
|
|
|
@@ -92,56 +92,105 @@ namespace TEAMModelOS.SDK.Models.Service
|
|
|
// }
|
|
|
//}
|
|
|
|
|
|
- //保存当天没小时的峰值
|
|
|
- HourLogin hourLogin = new() { PartitionKey = $"HourLogin", RowKey = now.ToString(), Hour = int.Parse(dateHour) };
|
|
|
- if (scope.Equals("teacher"))
|
|
|
- {
|
|
|
- hourLogin.Teacher = int.Parse(id);
|
|
|
- hourLogin.Student = 0;
|
|
|
- hourLogin.TmdUser = 0;
|
|
|
- }
|
|
|
- else if (scope.Equals("student"))
|
|
|
+ //保存当天每小时的峰值
|
|
|
+ List<HourLogin> hourLogins = await table.QueryWhereString<HourLogin>($"PartitionKey eq 'HourLogin' and RowKey eq '{dateHour}'");
|
|
|
+ if (hourLogins.Count > 0)
|
|
|
{
|
|
|
- hourLogin.Teacher = 0;
|
|
|
- hourLogin.Student = int.Parse(id);
|
|
|
- hourLogin.TmdUser = 0;
|
|
|
+ foreach (var hourLogin in hourLogins)
|
|
|
+ {
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ hourLogin.Teacher += 1;
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ hourLogin.Student += 1;
|
|
|
+ else
|
|
|
+ hourLogin.TmdUser += 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ await table.SaveOrUpdateAll(hourLogins);
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- hourLogin.Teacher = 0;
|
|
|
- hourLogin.Student = 0;
|
|
|
- hourLogin.TmdUser = int.Parse(id);
|
|
|
- }
|
|
|
- try
|
|
|
- {
|
|
|
- await table.SaveOrUpdate<HourLogin>(hourLogin);//保存在线数据
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
+ HourLogin hourLogin = new() { PartitionKey = $"HourLogin", RowKey = dateHour, Hour = int.Parse(dateHour) };
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ {
|
|
|
+ hourLogin.Teacher = 1;
|
|
|
+ hourLogin.Student = 0;
|
|
|
+ hourLogin.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ {
|
|
|
+ hourLogin.Teacher = 0;
|
|
|
+ hourLogin.Student = 1;
|
|
|
+ hourLogin.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hourLogin.Teacher = 0;
|
|
|
+ hourLogin.Student = 0;
|
|
|
+ hourLogin.TmdUser = 1;
|
|
|
+ }
|
|
|
+ try
|
|
|
+ {
|
|
|
+ await table.SaveOrUpdate<HourLogin>(hourLogin);//保存在线数据
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- //保存当月每天的峰值
|
|
|
- DayLogin dayLogin = new() { PartitionKey = $"DayLogin", RowKey = now.ToString(), Day = int.Parse(dateDay) };
|
|
|
- if (scope.Equals("teacher"))
|
|
|
- {
|
|
|
- dayLogin.Teacher = int.Parse(id);
|
|
|
- dayLogin.Student = 0;
|
|
|
- dayLogin.TmdUser = 0;
|
|
|
- }
|
|
|
- else if (scope.Equals("student"))
|
|
|
+ //保存当天的峰值
|
|
|
+ List<DayLogin> dayLogins = await table.QueryWhereString<DayLogin>($"PartitionKey eq 'DayLogin' and RowKey eq '{dateDay}'");
|
|
|
+ if (dayLogins.Count > 0)
|
|
|
{
|
|
|
- dayLogin.Teacher = 0;
|
|
|
- dayLogin.Student = int.Parse(id);
|
|
|
- dayLogin.TmdUser = 0;
|
|
|
+ foreach (var dayLogin in dayLogins)
|
|
|
+ {
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ dayLogin.Teacher += 1;
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ dayLogin.Student += 1;
|
|
|
+ else
|
|
|
+ dayLogin.TmdUser += 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ await table.SaveOrUpdateAll(dayLogins);
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- dayLogin.Teacher = 0;
|
|
|
- dayLogin.Student = 0;
|
|
|
- dayLogin.TmdUser = int.Parse(id);
|
|
|
- }
|
|
|
+ //保存当月每天的峰值
|
|
|
+ DayLogin dayLogin = new() { PartitionKey = $"DayLogin", RowKey = dateDay, Day = int.Parse(dateDay) };
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ {
|
|
|
+ dayLogin.Teacher = 1;
|
|
|
+ dayLogin.Student = 0;
|
|
|
+ dayLogin.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ {
|
|
|
+ dayLogin.Teacher = 0;
|
|
|
+ dayLogin.Student = 1;
|
|
|
+ dayLogin.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dayLogin.Teacher = 0;
|
|
|
+ dayLogin.Student = 0;
|
|
|
+ dayLogin.TmdUser = 1;
|
|
|
+ }
|
|
|
|
|
|
- await table.SaveOrUpdate<DayLogin>(dayLogin);//保存在线数据
|
|
|
+ await table.SaveOrUpdate<DayLogin>(dayLogin);//保存在线数据
|
|
|
+ }
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(school))
|
|
|
{
|
|
@@ -155,7 +204,7 @@ namespace TEAMModelOS.SDK.Models.Service
|
|
|
}
|
|
|
|
|
|
var reScMonth = await _azureRedis.GetRedisClient(8).KeyTimeToLiveAsync($"Login:School:{school}:{scope}:{dateMonth}");
|
|
|
- if (reScMonth != null)
|
|
|
+ if (reScMonth == null)
|
|
|
{
|
|
|
await _azureRedis.GetRedisClient(8).KeyExpireAsync($"Login:School:{school}:{scope}:{dateMonth}", month); //设置到期时间
|
|
|
}
|
|
@@ -180,62 +229,112 @@ namespace TEAMModelOS.SDK.Models.Service
|
|
|
// }
|
|
|
//}
|
|
|
|
|
|
- //学校小时峰值
|
|
|
- HourLoginSchool hourLoginSc = new() { PartitionKey = $"HourLogin-{school}", RowKey = now.ToString(), Hour = int.Parse(dateHour), School = school };
|
|
|
- if (scope.Equals("teacher"))
|
|
|
+ //保存学校当天每小时的
|
|
|
+ List<HourLoginSchool> hourLoginSchools = await table.QueryWhereString<HourLoginSchool>($"PartitionKey eq 'HourLogin-{school}' and RowKey eq '{dateHour}'");
|
|
|
+ if (hourLoginSchools.Count > 0)
|
|
|
{
|
|
|
- hourLoginSc.Teacher = int.Parse(id);
|
|
|
- hourLoginSc.Student = 0;
|
|
|
- hourLoginSc.TmdUser = 0;
|
|
|
- }
|
|
|
- else if (scope.Equals("student"))
|
|
|
- {
|
|
|
- hourLoginSc.Teacher = 0;
|
|
|
- hourLoginSc.Student = int.Parse(id);
|
|
|
- hourLoginSc.TmdUser = 0;
|
|
|
+ foreach (var hLoginSc in hourLoginSchools)
|
|
|
+ {
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ hLoginSc.Teacher += 1;
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ hLoginSc.Student += 1;
|
|
|
+ else
|
|
|
+ hLoginSc.TmdUser += 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ await table.SaveOrUpdateAll(hourLogins);
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- hourLoginSc.Teacher = 0;
|
|
|
- hourLoginSc.Student = 0;
|
|
|
- hourLoginSc.TmdUser = int.Parse(id);
|
|
|
- }
|
|
|
+ //学校小时峰值
|
|
|
+ HourLoginSchool hourLoginSc = new() { PartitionKey = $"HourLogin-{school}", RowKey = dateHour, Hour = int.Parse(dateHour), School = school };
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ {
|
|
|
+ hourLoginSc.Teacher = 1;
|
|
|
+ hourLoginSc.Student = 0;
|
|
|
+ hourLoginSc.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ {
|
|
|
+ hourLoginSc.Teacher = 0;
|
|
|
+ hourLoginSc.Student = 1;
|
|
|
+ hourLoginSc.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hourLoginSc.Teacher = 0;
|
|
|
+ hourLoginSc.Student = 0;
|
|
|
+ hourLoginSc.TmdUser = 1;
|
|
|
+ }
|
|
|
|
|
|
- try
|
|
|
- {
|
|
|
- await table.SaveOrUpdate<HourLoginSchool>(hourLoginSc);//保存在线数据
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ await table.SaveOrUpdate<HourLoginSchool>(hourLoginSc);//保存在线数据
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//学校天峰值
|
|
|
- DayLoginSchool dayLoginSc = new() { PartitionKey = $"DayLogin-{school}", RowKey = now.ToString(), Day = int.Parse(dateDay), School = school };
|
|
|
- if (scope.Equals("teacher"))
|
|
|
- {
|
|
|
- dayLoginSc.Teacher = int.Parse(id);
|
|
|
- dayLoginSc.Student = 0;
|
|
|
- dayLoginSc.TmdUser = 0;
|
|
|
- }
|
|
|
- else if (scope.Equals("student"))
|
|
|
+ List<DayLoginSchool> DayLoginSchools = await table.QueryWhereString<DayLoginSchool>($"PartitionKey eq 'DayLogin-{school}' and RowKey eq '{dateDay}'");
|
|
|
+ if (DayLoginSchools.Count > 0)
|
|
|
{
|
|
|
- dayLoginSc.Teacher = 0;
|
|
|
- dayLoginSc.Student = int.Parse(id);
|
|
|
- dayLoginSc.TmdUser = 0;
|
|
|
+ foreach (var hLoginSc in hourLoginSchools)
|
|
|
+ {
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ hLoginSc.Teacher += 1;
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ hLoginSc.Student += 1;
|
|
|
+ else
|
|
|
+ hLoginSc.TmdUser += 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ await table.SaveOrUpdateAll(hourLogins);
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- dayLoginSc.Teacher = 0;
|
|
|
- dayLoginSc.Student = 0;
|
|
|
- dayLoginSc.TmdUser = int.Parse(id);
|
|
|
- }
|
|
|
+ //学校天峰值
|
|
|
+ DayLoginSchool dayLoginSc = new() { PartitionKey = $"DayLogin-{school}", RowKey = dateDay, Day = int.Parse(dateDay), School = school };
|
|
|
+ if (scope.Equals("teacher"))
|
|
|
+ {
|
|
|
+ dayLoginSc.Teacher = 1;
|
|
|
+ dayLoginSc.Student = 0;
|
|
|
+ dayLoginSc.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else if (scope.Equals("student"))
|
|
|
+ {
|
|
|
+ dayLoginSc.Teacher = 0;
|
|
|
+ dayLoginSc.Student = 1;
|
|
|
+ dayLoginSc.TmdUser = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dayLoginSc.Teacher = 0;
|
|
|
+ dayLoginSc.Student = 0;
|
|
|
+ dayLoginSc.TmdUser = 1;
|
|
|
+ }
|
|
|
|
|
|
- try
|
|
|
- {
|
|
|
- await table.SaveOrUpdate<DayLoginSchool>(dayLoginSc);//保存在线数据
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ await table.SaveOrUpdate<DayLoginSchool>(dayLoginSc);//保存在线数据
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|