瀏覽代碼

调整数据返回格式

zhouj1203@hotmail.com 3 年之前
父節點
當前提交
c44b0f6705
共有 1 個文件被更改,包括 62 次插入15 次删除
  1. 62 15
      TEAMModelOS/Controllers/Common/ExamController.cs

+ 62 - 15
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -1555,15 +1555,29 @@ namespace TEAMModelOS.Controllers
                         break;
                     }
                 }
+                List<dynamic> objs = new List<dynamic>();
                 foreach (SDK.Models.Cosmos.Common.Scoring ss in attr)
                 {
+                    //var obj = new { stuId = ss.stuId, examId = ss.examId, subjectId = ss.subjectId, };
                     //ss.items.Add(ss.items.Where(x => x.scores.))
+                    List<double> sc = new List<double>();
                     foreach (Item item in ss.items)
                     {
-                        item.scores = item.scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
+                        List<double> scc = item.scores.Where(x => x.tmdId.Equals(tId.GetString())).Select(c => c.sc).ToList();
+                        if (scc.Count > 0)
+                        {
+                            sc.Add(scc.FirstOrDefault());
+                        }
+                        else {
+                            sc.Add(-1);
+                        }
+                        //sc.Add(item.scores.Where(x => x.tmdId.Equals(tId.GetString())).Select(c => c.sc).FirstOrDefault());
+                        //item.scores = item.scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
                     }
+                    var obj = new { ss.stuId, ss.examId, ss.subjectId, item = sc, ss.blob, ss.tIds, ss.marks, ss.scores, ss.model, ss.mode };
+                    objs.Add(obj);
                 }
-                return Ok(new { attr, paper = info.papers[index].blob });
+                return Ok(new { objs, paper = info.papers[index].blob });
             }
             catch (Exception ex)
             {
@@ -1681,14 +1695,29 @@ namespace TEAMModelOS.Controllers
                     }
                     await redisClient.HashSetAsync($"Exam:Scoring:{id}-{subjectId}", stuId.ToString(), new { info = tmds, ans = blob, score = sc }.ToJsonString());*/
                     //var its = value.Where(x => x.items.s)
+                    List<dynamic> objs = new List<dynamic>();
                     List<SDK.Models.Cosmos.Common.Scoring> val = new List<SDK.Models.Cosmos.Common.Scoring>();
-                    foreach (SDK.Models.Cosmos.Common.Scoring ss in value) {
-                        //ss.items.Add(ss.items.Where(x => x.scores.))
-                        foreach (Item item in ss.items) {
-                            item.scores = item.scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
+                    foreach (SDK.Models.Cosmos.Common.Scoring ss in value)
+                    {
+                        List<double> sc = new List<double>();
+                        foreach (Item item in ss.items)
+                        {
+                            List<double> scc = item.scores.Where(x => x.tmdId.Equals(tId.GetString())).Select(c => c.sc).ToList();
+                            if (scc.Count > 0)
+                            {
+                                sc.Add(scc.FirstOrDefault());
+                            }
+                            else
+                            {
+                                sc.Add(-1);
+                            }
+                            //sc.Add(item.scores.Where(x => x.tmdId.Equals(tId.GetString())).Select(c => c.sc).FirstOrDefault());
+                            //item.scores = item.scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
                         }
+                        var obj = new { ss.stuId, ss.examId, ss.subjectId, item = sc, ss.blob, ss.tIds, ss.marks, ss.scores, ss.model, ss.mode };
+                        objs.Add(obj);
                     }
-                    return Ok(value);
+                    return Ok(objs);
                 }
                 else
                 {
@@ -1740,12 +1769,28 @@ namespace TEAMModelOS.Controllers
                         }*/
                         //选取后,缓存池相应的减少,以便于分配给其他的老师
                         //await redisClient.HashSetAsync($"Exam:Scoring:{id}-{subjectId}", sId.ToString(), new { info = tmds, ans = blob, score = sc }.ToJsonString());
-                            //ss.items.Add(ss.items.Where(x => x.scores.))
-                            foreach (Item its in item.items)
+                        //ss.items.Add(ss.items.Where(x => x.scores.))
+                        /*foreach (Item its in item.items)
+                        {
+                            its.scores = its.scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
+                        }*/
+                        List<double> sc = new List<double>();
+                        foreach (Item its in item.items)
+                        {
+                            List<double> scc = its.scores.Where(x => x.tmdId.Equals(tId.GetString())).Select(c => c.sc).ToList();
+                            if (scc.Count > 0)
+                            {
+                                sc.Add(scc.FirstOrDefault());
+                            }
+                            else
                             {
-                                its.scores = its.scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
+                                sc.Add(-1);
                             }
-                        return Ok(item);
+                            //sc.Add(item.scores.Where(x => x.tmdId.Equals(tId.GetString())).Select(c => c.sc).FirstOrDefault());
+                            //item.scores = item.scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
+                        }
+                        var obj = new { item.stuId, item.examId, item.subjectId, item = sc, item.blob, item.tIds, item.marks, item.scores, item.model, item.mode };
+                        return Ok(obj);
                     }
 
                 }
@@ -1909,7 +1954,7 @@ namespace TEAMModelOS.Controllers
                             foreach (int number in nos)
                             {
                                 List<Info> items = scoring.items[number].scores.Where(x => x.tmdId.Equals(tId.GetString())).ToList();
-                                
+
                                 if (items.Count > 0)
                                 {
                                     foreach (Info info in items)
@@ -1917,13 +1962,14 @@ namespace TEAMModelOS.Controllers
                                         info.sc = ssc[number];
                                     }
                                 }
-                                else {
+                                else
+                                {
                                     Info info = new();
                                     info.sc = ssc[number];
                                     info.tmdId = tId.GetString();
                                     info.index = number;
                                     scoring.items[number].scores.Add(info);
-                                }                                                              
+                                }
                             }
                         }
                         else
@@ -2012,7 +2058,8 @@ namespace TEAMModelOS.Controllers
         [ProducesDefaultResponseType]
         //[AuthToken(Roles = "Student")]
         [HttpPost("analysis-scoring")]
-        public async Task<IActionResult> Analysis(JsonElement requert) { 
+        public async Task<IActionResult> Analysis(JsonElement requert)
+        {
             return null;
         }
     }