zhouj1203@hotmail.com 1 ano atrás
pai
commit
1d9d06fe12
1 arquivos alterados com 47 adições e 42 exclusões
  1. 47 42
      TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

+ 47 - 42
TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

@@ -107,7 +107,7 @@ namespace TEAMModelOS.FunctionV4
                     //处理科目信息
                     List<string> sub = new List<string>();
                     School sc = new();
-                    if (!string.IsNullOrEmpty(info.school)) {
+                    if (!string.IsNullOrEmpty(info.school) && !info.school.Equals("SYSTEM_NO_SCHOOL")) {
                         sc = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(info.school, new Azure.Cosmos.PartitionKey("Base"));
                     }
                     
@@ -453,51 +453,56 @@ namespace TEAMModelOS.FunctionV4
                                     };
                                     var period = sc.period.Where(x => x.id.Equals(info.period.id)).FirstOrDefault();
                                     //获取学期信息
-                                    var (currSemester, studyYear, date, nextSemester) = SchoolService.GetSemester(period, info.startTime);
-                                    //获取学生信息
-                                    (List<RMember> rmembers, List<RGroupList> groups) = await GroupListService.GetMemberByListids(_coreAPIHttpService, client, _dingDing, info.classes, info.school);
-                                    foreach (var member in rmembers) {
-                                        if (info.lostStu.Contains(member.id)) {
-                                            continue;
-                                        }
-                                        PortraitStudent student = new()
-                                        {
-                                            studentId = member.id,
-                                            name = member.name,
-                                            classId = member.classId
-                                        };
-                                        SemesterData semesterData = new()
+                                    if (null != period) {
+                                        var (currSemester, studyYear, date, nextSemester) = SchoolService.GetSemester(period, info.startTime);
+                                        //获取学生信息
+                                        (List<RMember> rmembers, List<RGroupList> groups) = await GroupListService.GetMemberByListids(_coreAPIHttpService, client, _dingDing, info.classes, info.school);
+                                        foreach (var member in rmembers)
                                         {
-                                            examName = info.name,
-                                            examId = info.id,
-                                            examDate = info.startTime,
-                                            examType = info.examType?.name,
-                                            year = info.year,
-                                            semesterId = currSemester.id,
-                                            totalScore = info.papers.SelectMany(x => x.point).Sum(),
-                                            sumScore = examClassResults.SelectMany(x => x.sum).Sum(),
-                                            excellenceRate = 0,
-                                            passRate = 0,
-                                        };
-                                        int index = 0;
-                                        foreach (var sj in info.subjects) {
-                                            ItemScore item = new()
+                                            if (info.lostStu.Contains(member.id))
+                                            {
+                                                continue;
+                                            }
+                                            PortraitStudent student = new()
                                             {
-                                                name = sj.name,
-                                                score = examClassResults.Where(x => x.subjectId.Equals(sj.id)).FirstOrDefault().sum.Sum(),
-                                                time = info.startTime,
-                                                totalScore = info.papers[index].point.Sum(),
-                                                type = sj.id
+                                                studentId = member.id,
+                                                name = member.name,
+                                                classId = member.classId
                                             };
-                                            index++;
-                                            semesterData.itemScore.Add(item);
-                                        }
-                                        student.semesterData.Add(semesterData);
+                                            SemesterData semesterData = new()
+                                            {
+                                                examName = info.name,
+                                                examId = info.id,
+                                                examDate = info.startTime,
+                                                examType = info.examType?.name,
+                                                year = info.year,
+                                                semesterId = currSemester.id,
+                                                totalScore = info.papers.SelectMany(x => x.point).Sum(),
+                                                sumScore = examClassResults.SelectMany(x => x.sum).Sum(),
+                                                excellenceRate = 0,
+                                                passRate = 0,
+                                            };
+                                            int index = 0;
+                                            foreach (var sj in info.subjects)
+                                            {
+                                                ItemScore item = new()
+                                                {
+                                                    name = sj.name,
+                                                    score = examClassResults.Where(x => x.subjectId.Equals(sj.id)).FirstOrDefault().sum.Sum(),
+                                                    time = info.startTime,
+                                                    totalScore = info.papers[index].point.Sum(),
+                                                    type = sj.id
+                                                };
+                                                index++;
+                                                semesterData.itemScore.Add(item);
+                                            }
+                                            student.semesterData.Add(semesterData);
 
-                                        portrait.students.Add(student);
-                                    }
-                                    string location = $"{Environment.GetEnvironmentVariable("Option:Location")}";
-                                    var (status, json) =  await _httpTrigger.RequestHttpTrigger(portrait.ToJson(), location, "upsert-student-portrait");
+                                            portrait.students.Add(student);
+                                        }
+                                        string location = $"{Environment.GetEnvironmentVariable("Option:Location")}";
+                                        var (status, json) = await _httpTrigger.RequestHttpTrigger(portrait.ToJson(), location, "upsert-student-portrait");
+                                    }                                  
                                     //PortraitStudent student = new();
                                     //处理试卷活动结束统计账户信息
                                     List<FMember> idList = await GroupListService.GetFinishMemberInfo(_coreAPIHttpService, client, _dingDing, info.school, info.classes, info.stuLists, null);