CrazyIter_Bin 3 months ago
parent
commit
a634554bfa

+ 8 - 0
TEAMModelOS.Extension/IES.Exam/IES.ExamLibrary/Models/EvaluationCommon.cs

@@ -202,6 +202,10 @@ namespace IES.ExamServer.Models
         /// </summary>
         public string? subjectId { get; set; }
         /// <summary>
+        /// 乱序作答0 顺序作答,1乱序作答
+        /// </summary>
+        public int disorder { get; set; }
+        /// <summary>
         /// 评测科目名称
         /// </summary>
         public string? subjectName { get; set; }
@@ -306,6 +310,10 @@ namespace IES.ExamServer.Models
         /// 评测类型Exam,投票评选Vote,问卷调查Survey
         /// </summary>
         public string? type { get; set; }
+        /// <summary>
+        /// 乱序作答0 顺序作答,1乱序作答
+        /// </summary>
+        public int disorder { get; set;}
     }
     public class SubjectExamPaper
     {

+ 0 - 16
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/ManageController.cs

@@ -888,22 +888,10 @@ namespace IES.ExamServer.Controllers
                                                     paperName = studentPaper.paperName,
                                                     createTime=now
                                                 };
-                                                //studentResult.subjectResults.Add();
                                             }
-                                            //else
-                                            //{
-                                            //    subjectResult.evaluationId = studentPaper.evaluationId;
-                                            //    subjectResult.examId = studentPaper.examId;
-                                            //    subjectResult.examName = studentPaper.examName;
-                                            //    subjectResult.subjectId = studentPaper.subjectId;
-                                            //    subjectResult.subjectName = studentPaper.subjectName;
-                                            //    subjectResult.paperId = studentPaper.paperId;
-                                            //    subjectResult.paperName = studentPaper.paperName;
-                                            //}
                                             studentResult.subjectResults.Add(subjectResult);
                                         }
                                     }
-                                    //_liteDBFactory.GetLiteDatabase().GetCollection<EvaluationStudentResult>().Upsert(studentResult);
                                 }
                                 if (studentResult!=null)
                                 {
@@ -912,10 +900,6 @@ namespace IES.ExamServer.Controllers
                             }
                             if (results.Count>0)
                             {
-                                //foreach (var item in results)
-                                //{
-                                //    item.subjectResults= item.subjectResults.DistinctBy(x => x.id).ToList();
-                                //}
                                 _liteDBFactory.GetLiteDatabase().GetCollection<EvaluationStudentResult>().Upsert(results);
                             }
                         }

+ 2 - 2
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/StudentController.cs

@@ -132,11 +132,11 @@ namespace IES.ExamServer.Controllers
         public IActionResult LoadEvaluationResult(JsonNode json)
         {
             string evaluationId = $"{json["evaluationId"]}";
-            var token = GetAuthTokenInfo();
+            var token = GetAuthTokenInfo();//6af32bbd-144e-4366-8bc0-61ba4c85677c
             string resultId = ShaHashHelper.GetSHA1(evaluationId+_connectionService?.serverDevice?.school?.id+token.id);
             string? scoolId = _connectionService?.serverDevice?.school?.id;
             EvaluationStudentResult studentResult = _liteDBFactory.GetLiteDatabase().GetCollection<EvaluationStudentResult>()
-                .FindOne(x=>!string.IsNullOrWhiteSpace(x.schoolId) &&  x.schoolId.Equals(scoolId)&& token.id.Equals(x.studentId) && evaluationId.Equals(x.evaluationId));
+                .FindOne(x=> resultId.Equals(x.id) && !string.IsNullOrWhiteSpace(x.schoolId) &&  x.schoolId.Equals(scoolId)&& token.id.Equals(x.studentId) && evaluationId.Equals(x.evaluationId));
             if (studentResult!=null)
             {
                 //标记开始作答

+ 4 - 2
TEAMModelOS.SDK/Models/Service/EvaluationSyncInfoService.cs

@@ -156,7 +156,7 @@ namespace TEAMModelOS.SDK.Models.Service
                         if (response.IsSuccessStatusCode)
                         {
                             ExamInfo exam= JsonDocument.Parse(response.Content).RootElement.Deserialize<ExamInfo>();
-                            dataTime= exam._ts*1000;
+                            dataTime = exam._ts*1000;
                             evaluationSyncInfo.name=exam.name;
                             evaluationSyncInfo.subjects = exam.subjects?.Select(x=>new IES.ExamServer.Models.SubjectExam { subjectId=x.id,subjectName=x.name,examId=id,examName=exam.name}).ToList();
                             evaluationSyncInfo.dataTime= DateTimeOffset.Now.ToUnixTimeMilliseconds();
@@ -217,7 +217,6 @@ namespace TEAMModelOS.SDK.Models.Service
                         if (response.IsSuccessStatusCode) 
                         {
                             ArtEvaluation art = JsonDocument.Parse(response.Content).RootElement.Deserialize<ArtEvaluation>();
-                            
                             // evaluationSyncInfo.subjects = art.subjects?.Select(x => new IES.ExamServer.Models.SubjectExam { id=x.id, name=x.name, examId=id }).ToList();
                             evaluationSyncInfo.name = art.name;
                             evaluationSyncInfo.pid= art.pId;
@@ -247,6 +246,7 @@ namespace TEAMModelOS.SDK.Models.Service
                             {
                                 if (!string.IsNullOrWhiteSpace(item.acId)) 
                                 {
+                                    // item.isOrder=>disorder
                                     var subject = art.subjects.Find(x => x.id.Equals(item.subject));
                                     var examResponse=  await azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(item.acId, new PartitionKey($"Exam-{ownerId}"));
                                     if (examResponse.IsSuccessStatusCode) 
@@ -266,6 +266,7 @@ namespace TEAMModelOS.SDK.Models.Service
                                                 subjectName=subject.name,
                                                 examId=item.acId,
                                                 examName=exam.name,
+                                                disorder=item.isOrder.HasValue ? item.isOrder.Value : 0,
                                                 papers = papers?.Select(x => new SubjectExamPaper { paperId=x.id, paperName=x.name, blob=x.blob, local=$"package/{evaluationSyncInfo.id}/papers/{x.id}" }).ToList()
                                             });
                                         }
@@ -283,6 +284,7 @@ namespace TEAMModelOS.SDK.Models.Service
                                             scope=scope,
                                             stime=stime,
                                             etime=etime,
+                                            disorder=item.isOrder.HasValue?item.isOrder.Value:0,
                                             papers= papers.Select(x => new EvaluationPaper { paperId= x.id, paperName=x.name, blob=x.blob, local=$"package/{evaluationSyncInfo.id}/papers/{x.id}", point=x.point, knowledge=x.knowledge, type=x.type, field=x.field }).ToList(),
                                         };
                                         evaluationExams.Add(evaluationExam);