|
@@ -132,50 +132,58 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
School scInfo = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>($"{code}", partitionKey: new PartitionKey("Base"));
|
|
|
var perMore = scInfo.period.Where(c => c.id.Equals(pId.GetString())).FirstOrDefault().grades;
|
|
|
|
|
|
- var clientInteractionCount = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
+ var interaction = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
{
|
|
|
x.Key,
|
|
|
name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.clientInteractionCount)
|
|
|
+ count = x.Sum(t => t.learningCategory.interaction)
|
|
|
});
|
|
|
- var pushCount = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
+ var cooperation = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
{
|
|
|
x.Key,
|
|
|
name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.pushCount)
|
|
|
+ count = x.Sum(t => t.learningCategory.cooperation)
|
|
|
});
|
|
|
- var collateTaskCount = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
+ var task = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
{
|
|
|
x.Key,
|
|
|
name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.collateTaskCount)
|
|
|
+ count = x.Sum(t => t.learningCategory.task)
|
|
|
});
|
|
|
- var examCount = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
+ var exam = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
{
|
|
|
x.Key,
|
|
|
name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.examCount)
|
|
|
+ count = x.Sum(t => t.learningCategory.exam)
|
|
|
});
|
|
|
- List<(string name, int? cICount, int? pCount, int? cTCount, int? eCount)> tcount = new();
|
|
|
+ var diffential = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
+ {
|
|
|
+ x.Key,
|
|
|
+ name = perMore[x.Key],
|
|
|
+ count = x.Sum(t => t.learningCategory.diffential)
|
|
|
+ });
|
|
|
+ List<(string name, int? cICount, int? pCount, int? cTCount, int? eCount,int? diffCount)> tcount = new();
|
|
|
List<(string name, int? count)> gdCount = new();
|
|
|
perMore.ForEach(x =>
|
|
|
{
|
|
|
- var cICount = clientInteractionCount.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
- var pCount = pushCount.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
- var cTCount = collateTaskCount.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
- var eCount = examCount.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
+ var cICount = interaction.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
+ var pCount = cooperation.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
+ var cTCount = task.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
+ var eCount = exam.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
+ var diffCount = diffential.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
var gradeCount = grades.Where(c => perMore[int.Parse(c.name)].Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault().count;
|
|
|
- tcount.Add((x, cICount, pCount, cTCount, eCount));
|
|
|
+ tcount.Add((x, cICount, pCount, cTCount, eCount, diffCount));
|
|
|
gdCount.Add((x, gradeCount));
|
|
|
});
|
|
|
|
|
|
var teachingCount = tcount.Select(x => new
|
|
|
{
|
|
|
x.name,
|
|
|
- clientInteractionCount = x.cICount == null ? 0 : x.cICount,
|
|
|
- pushCount = x.pCount == null ? 0 : x.pCount,
|
|
|
- collateTaskCount = x.cTCount == null ? 0 : x.cTCount,
|
|
|
- examCount = x.eCount == null ? 0 : x.eCount
|
|
|
+ interaction = x.cICount == null ? 0 : x.cICount,
|
|
|
+ cooperation = x.pCount == null ? 0 : x.pCount,
|
|
|
+ task = x.cTCount == null ? 0 : x.cTCount,
|
|
|
+ exam = x.eCount == null ? 0 : x.eCount,
|
|
|
+ diffential = x.diffCount == null ? 0 : x.eCount
|
|
|
});
|
|
|
var classify_grade = gdCount.Select(x => new
|
|
|
{
|