|
@@ -55,8 +55,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
var (monthS, monthE) = TimeHelper.GetStartOrEnd(dateOff, "month"); //本月开始/结束时间
|
|
|
var (lastTermS, lastTermE) = TimeHelper.GetStartOrEnd(dateOff, "lastterm"); //计算上学期开始/结束时间
|
|
|
var (termS, termE) = TimeHelper.GetStartOrEnd(dateOff, "term"); //计算本学期开始/结束时间
|
|
|
-
|
|
|
- var (yearS, yearE) = TimeHelper.GetStartOrEnd(cuurDateOff, "year"); //计算本学期开始/结束时间
|
|
|
+ var (yearS, yearE) = TimeHelper.GetStartOrEnd(cuurDateOff, "year"); //计算今年开始/结束时间
|
|
|
|
|
|
var (lWeekDayS, lWeekDayE) = TimeHelper.GetLongToTime(lastWeekS, lastWeekE);
|
|
|
var (weekDayS, weekDayE) = TimeHelper.GetLongToTime(weekS, weekE);
|
|
@@ -443,48 +442,55 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
/// <param name="cosmosClient"></param>
|
|
|
/// <param name="school"></param>
|
|
|
/// <returns></returns>
|
|
|
- public static async Task SetScStatsInfo(CosmosClient cosmosClient, School school)
|
|
|
+ public static async Task SetScStatsInfo(CosmosClient cosmosClient, DingDing _dingDing,School school)
|
|
|
{
|
|
|
- DateTimeOffset dateOff = DateTimeOffset.UtcNow;
|
|
|
- StatsInfo statsInfo = new();
|
|
|
- var resStats = await cosmosClient.GetContainer(Constant.TEAMModelOS, "Common").ReadItemStreamAsync($"{dateOff.Year}-{school.id}", new PartitionKey("Statistics"));
|
|
|
- if (resStats.Status == 200)
|
|
|
- {
|
|
|
- using var fileJson = await JsonDocument.ParseAsync(resStats.ContentStream);
|
|
|
- statsInfo = fileJson.ToObject<StatsInfo>();
|
|
|
- }
|
|
|
- else
|
|
|
+ try
|
|
|
{
|
|
|
- double[] tchYear = new double[366];
|
|
|
- tchYear[0] = 1;
|
|
|
- statsInfo.id = $"{dateOff.Year}-{school.id}";
|
|
|
- statsInfo.year = dateOff.Year;
|
|
|
- statsInfo.stuYear = new double[366].ToList();
|
|
|
- statsInfo.tchYear = tchYear.ToList();
|
|
|
- statsInfo.tch = 1;
|
|
|
- statsInfo.weekTch = 1;
|
|
|
- statsInfo.monthTch = 1;
|
|
|
- statsInfo.tchUpTime = dateOff.ToUnixTimeMilliseconds();
|
|
|
- statsInfo.lesson.year = new double[366].ToList();
|
|
|
- statsInfo.lesson.yearInters = new double[366].ToList();
|
|
|
- statsInfo.activity.year = new double[366].ToList();
|
|
|
- }
|
|
|
+ DateTimeOffset dateOff = DateTimeOffset.UtcNow;
|
|
|
+ StatsInfo statsInfo = new();
|
|
|
+ var resStats = await cosmosClient.GetContainer(Constant.TEAMModelOS, "Common").ReadItemStreamAsync($"{dateOff.Year}-{school.id}", new PartitionKey("Statistics"));
|
|
|
+ if (resStats.Status == 200)
|
|
|
+ {
|
|
|
+ using var fileJson = await JsonDocument.ParseAsync(resStats.ContentStream);
|
|
|
+ statsInfo = fileJson.ToObject<StatsInfo>();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ double[] tchYear = new double[366];
|
|
|
+ tchYear[0] = 1;
|
|
|
+ statsInfo.id = $"{dateOff.Year}-{school.id}";
|
|
|
+ statsInfo.year = dateOff.Year;
|
|
|
+ statsInfo.stuYear = new double[366].ToList();
|
|
|
+ statsInfo.tchYear = tchYear.ToList();
|
|
|
+ statsInfo.tch = 1;
|
|
|
+ statsInfo.weekTch = 1;
|
|
|
+ statsInfo.monthTch = 1;
|
|
|
+ statsInfo.tchUpTime = dateOff.ToUnixTimeMilliseconds();
|
|
|
+ statsInfo.lesson.year = new double[366].ToList();
|
|
|
+ statsInfo.lesson.yearInters = new double[366].ToList();
|
|
|
+ statsInfo.activity.year = new double[366].ToList();
|
|
|
+ }
|
|
|
|
|
|
- statsInfo.schoolId = school.id;
|
|
|
- statsInfo.name = school.name;
|
|
|
- statsInfo.picture = school.picture;
|
|
|
- statsInfo.size = school.size;
|
|
|
- statsInfo.scCreateTime = school.createTime;
|
|
|
- statsInfo.areaId = school.areaId;
|
|
|
- statsInfo.upTime = dateOff.ToUnixTimeMilliseconds();
|
|
|
+ statsInfo.schoolId = school.id;
|
|
|
+ statsInfo.name = school.name;
|
|
|
+ statsInfo.picture = school.picture;
|
|
|
+ statsInfo.size = school.size;
|
|
|
+ statsInfo.scCreateTime = school.createTime;
|
|
|
+ statsInfo.areaId = school.areaId;
|
|
|
+ statsInfo.upTime = dateOff.ToUnixTimeMilliseconds();
|
|
|
|
|
|
- if (resStats.Status == 200)
|
|
|
- {
|
|
|
- await cosmosClient.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync<StatsInfo>(statsInfo, statsInfo.id, new PartitionKey("Statistics"));
|
|
|
+ if (resStats.Status == 200)
|
|
|
+ {
|
|
|
+ await cosmosClient.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync<StatsInfo>(statsInfo, statsInfo.id, new PartitionKey("Statistics"));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ await cosmosClient.GetContainer(Constant.TEAMModelOS, "Common").CreateItemAsync<StatsInfo>(statsInfo, new PartitionKey("Statistics"));
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
+ catch (Exception ex)
|
|
|
{
|
|
|
- await cosmosClient.GetContainer(Constant.TEAMModelOS, "Common").CreateItemAsync<StatsInfo>(statsInfo, new PartitionKey("Statistics"));
|
|
|
+ await _dingDing.SendBotMsg($"BI,{Environment.GetEnvironmentVariable("Option:Location")},SetScStatsInfo() 学校:{school} \n{ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -549,7 +555,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- await _dingDing.SendBotMsg($"BI,{Environment.GetEnvironmentVariable("Option:Location")},SetSchoolBIRelation() \n {ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
|
|
|
+ await _dingDing.SendBotMsg($"BI,{Environment.GetEnvironmentVariable("Option:Location")},SetSchoolBIRelation() 学校:{school} \n{ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -589,7 +595,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
StringBuilder statsSql = new($"select value(c) from c where c.year={dateOff.Year}");
|
|
|
List<string> scIds = new();
|
|
|
|
|
|
- await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<string>(queryText: $"select value(c.id) from c ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("BIRel") }))
|
|
|
+ await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<string>(queryText: $"select value(c.id) from c ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("BIRel") }))
|
|
|
{
|
|
|
scIds.Add(item);
|
|
|
}
|