commit
218bf66fc6
|
|
@ -342,8 +342,6 @@ namespace Learn.Archives.API.Controllers
|
|||
foreach (var schoolArr in userInfoArr.GroupBy(s => s.SchoolId))
|
||||
{
|
||||
|
||||
var insertClassInfo = new List<ExamClassInfo>();
|
||||
var insertClassTag = new List<ExamClassTag>();
|
||||
var school = await sService.GetFirstAsync(s => s.Id == schoolArr.Key);
|
||||
var classArr = await db.Queryable<Classes>().Where(c => c.SchoolId == school.Id &&
|
||||
c.GradeLevel == exam.GradeLevel &&
|
||||
|
|
@ -370,42 +368,37 @@ namespace Learn.Archives.API.Controllers
|
|||
Type = exam.Type,
|
||||
Average1 = exam.BaseSchoolScore,
|
||||
};
|
||||
insertClassInfo.Add(eCInfo);
|
||||
insertTotalClassInfo.Add(eCInfo);
|
||||
var avgTotal = 0m;
|
||||
|
||||
//todo 班级分段分析
|
||||
var classTagDic = new Dictionary<long, ExamClassTag[]>();
|
||||
var classTagDic = new Dictionary<long, ExamClassTag>();
|
||||
foreach (var eUserInfo in classUserArr)
|
||||
{
|
||||
if (!classTagDic.TryGetValue(eUserInfo.ClassId, out ExamClassTag[]? classTagArr))
|
||||
{
|
||||
classTagArr = new ExamClassTag[10];
|
||||
classTagDic.Add(eUserInfo.ClassId, classTagArr);
|
||||
}
|
||||
//上线人数
|
||||
foreach (var item in eTagArr)
|
||||
{
|
||||
var subV = SubjectScore(eUserInfo, item.SubjectId);
|
||||
if (!classTagDic.TryGetValue(item.Id, out ExamClassTag? tag))
|
||||
{
|
||||
tag = new ExamClassTag()
|
||||
{
|
||||
MaxScore = item.MaxScore,
|
||||
MinScore = item.MinScore,
|
||||
ClassId = classInfo.Id,
|
||||
PeopleCount = eCInfo.PeopleCount,
|
||||
ExamId = exam.Id,
|
||||
ExamTagId = item.Id,
|
||||
Name = item.TagName,
|
||||
SubjectId = item.SubjectId
|
||||
};
|
||||
insertTotalClassTag.Add(tag);
|
||||
classTagDic.Add(item.Id, tag);
|
||||
}
|
||||
//总分分段
|
||||
if (subV >= item.MinScore && subV <= item.MaxScore)
|
||||
{
|
||||
var tag = classTagArr[(int)(item.SubjectId ?? 0)];
|
||||
if (tag is null)
|
||||
{
|
||||
tag = new ExamClassTag()
|
||||
{
|
||||
MaxScore = item.MaxScore,
|
||||
MinScore = item.MinScore,
|
||||
ClassId = classInfo.Id,
|
||||
ExamId = exam.Id,
|
||||
ExamTagId = item.Id,
|
||||
Name = item.TagName,
|
||||
SubjectId = item.SubjectId
|
||||
};
|
||||
insertClassTag.Add(tag);
|
||||
classTagArr[(int)(item.SubjectId ?? 0)] = tag;
|
||||
}
|
||||
classTagArr[(int)(item.SubjectId ?? 0)].OnLineCount++;
|
||||
tag.OnLineCount++;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -419,13 +412,7 @@ namespace Learn.Archives.API.Controllers
|
|||
}
|
||||
//总分平均分
|
||||
eCInfo.Average = avgTotal / eCInfo.PeopleCount;
|
||||
//计算上线率
|
||||
if (classTagDic.ContainsKey(eCInfo.ClassId))
|
||||
foreach (var item in classTagDic[eCInfo.ClassId])
|
||||
if(item !=null) item.OnLineRate = (decimal)item.OnLineCount / (decimal)eCInfo.PeopleCount;
|
||||
}
|
||||
insertTotalClassInfo.AddRange(insertClassInfo);
|
||||
insertTotalClassTag.AddRange(insertClassTag);
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ namespace Learn.Archives.API.Controllers
|
|||
res.Data = res.Data.OrderBy(s => s.SubjectDic?[oldSer.Value]).ToList();
|
||||
else
|
||||
res.Data = res.Data.OrderByDescending(s => s.SubjectDic?[oldSer.Value]).ToList();
|
||||
return res;
|
||||
}
|
||||
return await base.PageList(model);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,8 +65,9 @@ namespace Learn.Archives.Core.Model
|
|||
/// <summary>
|
||||
/// 上线率
|
||||
/// </summary>
|
||||
[SugarColumn(DecimalDigits = 2)]
|
||||
public decimal OnLineRate { get; set; }
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public decimal OnLineRate => OnLineCount / PeopleCount;
|
||||
public int PeopleCount { get; set; }
|
||||
/// <summary>
|
||||
/// 上线人数
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue