Bladeren bron

HiTeach API get-students-list:修正若該班及無任何學生會回傳error訊息問題

jeff 4 jaren geleden
bovenliggende
commit
401346c3e6
1 gewijzigde bestanden met toevoegingen van 11 en 4 verwijderingen
  1. 11 4
      TEAMModelOS/Controllers/Client/HiTeachController.cs

+ 11 - 4
TEAMModelOS/Controllers/Client/HiTeachController.cs

@@ -655,17 +655,24 @@ namespace TEAMModelOS.Controllers.Client
 
             var client = _azureCosmos.GetCosmosClient();
             List<object> students = new List<object>();
-            var query = $"SELECT cs.id, cs.name, cs.no FROM c JOIN cs IN c.students WHERE c.id = '{class_code}' AND c.scope = '{grant_type}'";
+            var query = $"SELECT c.students FROM c WHERE c.id = '{class_code}' AND c.scope = '{grant_type}'";
             string pk = (grant_type.GetString() == "school") ? $"Class-{school_code}" : $"Class-{id}";
             string container = (grant_type.GetString() == "school") ? "School" : "Teacher";
             await foreach (var item in client.GetContainer("TEAMModelOS", container).GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey(pk) }))
             {
-                using var json = await JsonDocument.ParseAsync(item.ContentStream);
+                var json = await JsonDocument.ParseAsync(item.ContentStream);
                 if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
                 {
-                    foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
+                    foreach (var classObj in json.RootElement.GetProperty("Documents").EnumerateArray())
                     {
-                        students.Add(obj.ToObject<object>());
+                        foreach (var studentObj in classObj.GetProperty("students").EnumerateArray())
+                        {
+                            dynamic studentsExtobj = new ExpandoObject();
+                            studentsExtobj.id = studentObj.GetProperty("id");
+                            studentsExtobj.name = studentObj.GetProperty("name");
+                            studentsExtobj.no = studentObj.GetProperty("no");
+                            students.Add(studentsExtobj);
+                        }
                     }
                 }
                 else