Przeglądaj źródła

追加學年:1.修正學生匯入 2.HiTeach API 取得學校班級

jeff 4 lat temu
rodzic
commit
4e7e7301d9

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

@@ -307,13 +307,14 @@ namespace TEAMModelOS.Controllers.Client
                             classExtobj.name = null;
                             classExtobj.scope = null;
                             classExtobj.gradeId = null;
+                            classExtobj.year =0;
                             classExtobj.teacher = null;
                             classExtobj.stuListId = null;
                             classExtobj.stuCnt = 0;
                             classExtobj.grpCnt = 0;
                             if (!string.IsNullOrWhiteSpace(classIdNow))
                             {
-                                var querycl = $"SELECT c.code, c.id, c.name, c.teacher, c.scope, c.gradeId FROM c WHERE c.id = '{classIdNow}'";
+                                var querycl = $"SELECT c.code, c.id, c.name, c.teacher, c.scope, c.gradeId, c.year FROM c WHERE c.id = '{classIdNow}'";
                                 await foreach (var itemcl in client.GetContainer("TEAMModelOS", "School").GetItemQueryStreamIterator(queryText: querycl, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Class-{school_code}") }))
                                 {
                                     var jsoncl = await JsonDocument.ParseAsync(itemcl.ContentStream);
@@ -324,7 +325,8 @@ namespace TEAMModelOS.Controllers.Client
                                         classExtobj.code = Convert.ToString(objcl.GetProperty("code"));
                                         classExtobj.name = Convert.ToString(objcl.GetProperty("name"));
                                         classExtobj.scope = Convert.ToString(objcl.GetProperty("scope"));
-                                        classExtobj.gradeId = Convert.ToString(objcl.GetProperty("gradeId"));
+                                        classExtobj.gradeId = (objcl.TryGetProperty("gradeId", out JsonElement gradeIdJson)) ? Convert.ToString(gradeIdJson) : null; //2021-06-01 [式樣]class去除gradeId,改以year代替
+                                        classExtobj.year = (objcl.TryGetProperty("year", out JsonElement yearJson)) ? yearJson.GetInt32() : 0;
                                         classExtobj.teacher = objcl.GetProperty("teacher");
                                         classExtobj.stuCnt = 0;
                                         classExtobj.grpCnt = 0;

+ 10 - 7
TEAMModelOS/Controllers/School/StudentController.cs

@@ -180,7 +180,7 @@ namespace TEAMModelOS.Controllers
 
 
                     //入學學年為必須,故若是無給值則將之紀錄並跳過該筆資料
-                    if (student.TryGetProperty("year", out var tmpYear) && !string.IsNullOrWhiteSpace(tmpYear.GetString())) studentInfo.year = tmpYear.GetInt32();
+                    if (student.TryGetProperty("year", out var tmpYear) && !string.IsNullOrWhiteSpace(Convert.ToString(tmpYear))) studentInfo.year = tmpYear.GetInt32();
                     else
                     {
                         errorYear.Add(id);
@@ -257,11 +257,13 @@ namespace TEAMModelOS.Controllers
                 Dictionary<string, List<(string id, string no)>> classStudNos = new Dictionary<string, List<(string id, string no)>>();
 
                 //Key:ClassNo Value:ClassId 存放教室no及id的變數
-                Dictionary<string, (string classId, string className, string periodId, string gradeId)> classNoId = new Dictionary<string, (string classId, string className, string periodId, string gradeId)>();
+                Dictionary<string, (string classId, string className, string periodId, string gradeId, int year)> classNoId = new Dictionary<string, (string classId, string className, string periodId, string gradeId, int year)>();
                 foreach (var classInfo in classInfos)
                 {
+                    string classGradeId = (classInfo.Value.TryGetProperty("gradeId", out JsonElement classGradeIdJson)) ? classGradeIdJson.GetString() : null;
+                    int classYear = (classInfo.Value.TryGetProperty("year", out JsonElement classYearJson)) ? classYearJson.GetInt32() : 0;
                     classNoId.Add(classInfo.Key,
-                        (classInfo.Value.GetProperty("id").GetString(), classInfo.Value.GetProperty("name").GetString(), classInfo.Value.GetProperty("periodId").GetString(), classInfo.Value.GetProperty("gradeId").GetString()));
+                        (classInfo.Value.GetProperty("id").GetString(), classInfo.Value.GetProperty("name").GetString(), classInfo.Value.GetProperty("periodId").GetString(), classGradeId, classYear));
                     tasks.Add(
                         Task.Run(
                             async () =>
@@ -297,10 +299,11 @@ namespace TEAMModelOS.Controllers
                             sortedImpData.classInfo[item].className,
                             item,
                             periodId,
-                            gradeId, year);
+                            gradeId, 
+                            year);
 
                         classStudNos.Add(retCreateClassInfo.classNo, new List<(string id, string no)>());
-                        classNoId.Add(retCreateClassInfo.classNo, (retCreateClassInfo.classId, retCreateClassInfo.className, periodId, gradeId));
+                        classNoId.Add(retCreateClassInfo.classNo, (retCreateClassInfo.classId, retCreateClassInfo.className, periodId, gradeId, year));
                     }
                 }
 
@@ -1825,12 +1828,12 @@ namespace TEAMModelOS.Controllers
                                         courseCode = code.GetString();
                                     }
                                     string courseId = "";
-                                    if (obj.TryGetProperty("courseCode", out var cosid))
+                                    if (obj.TryGetProperty("courseId", out var cosid))
                                     {
                                         courseId = cosid.GetString();
                                     }
                                     string stulistId = "";
-                                    if (obj.TryGetProperty("courseCode", out var listId))
+                                    if (obj.TryGetProperty("id", out var listId))
                                     {
                                         stulistId = listId.GetString();
                                     }