CrazyIter_Bin 2 år sedan
förälder
incheckning
996e546b58
1 ändrade filer med 63 tillägg och 0 borttagningar
  1. 63 0
      TEAMModelOS/Controllers/Both/CourseBaseController.cs

+ 63 - 0
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -119,6 +119,7 @@ namespace TEAMModelOS.Controllers.Both
                             List<CourseBaseImport> courseBaseImports = _courseBaseImports.ToObject<List<CourseBaseImport>>();
                             foreach (var courseBaseImport in courseBaseImports)
                             {
+                                string courseId = "";
                                 courseBaseImport.courseBase.pk = "CourseBase";
                                 courseBaseImport.courseBase.scope = "school";
                                 courseBaseImport.courseBase.school = school;
@@ -158,14 +159,76 @@ namespace TEAMModelOS.Controllers.Both
                                         if (courseBaseImport.courseBase?.gradeId != -1) {
                                             courseBaseDb.gradeId = courseBaseImport.courseBase.gradeId;
                                         }
+                                        courseId = courseBaseDb.id;
                                         courseBaseDb = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReplaceItemAsync(courseBaseDb, courseBaseDb.id, new PartitionKey(courseBaseDb.code));
                                     }
                                     else
                                     {
                                         courseBaseImport.courseBase.id= Guid.NewGuid().ToString();
+                                        courseId = courseBaseImport.courseBase.id;
                                         courseBaseDb = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).CreateItemAsync(courseBaseImport.courseBase, new PartitionKey(courseBaseImport.courseBase.code));
                                     }
                                 }
+                                if (courseBaseImport.courseTasks.IsNotEmpty()) {
+                                    foreach (var task in courseBaseImport.courseTasks) {
+                                        if (!string.IsNullOrWhiteSpace(task.semesterId) && task.year > 2010)
+                                        {
+                                            string taskId = $"{task.year}-{task.semesterId}";
+                                            string code = $"CourseTask-{school}-{courseId}";
+                                            Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemStreamAsync(taskId, new PartitionKey(code));
+                                            CourseTask courseTask = null;
+                                            if (response.Status == 200)
+                                            {
+                                                var doc = JsonDocument.Parse(response.Content);
+                                                courseTask = doc.RootElement.Deserialize<CourseTask>();
+                                                courseTask.courseId = courseId;
+                                                if (courseTask.schedules.IsNotEmpty())
+                                                {
+                                                    if (task.schedules.IsNotEmpty()) { 
+                                                    
+                                                    }
+                                                }
+                                                else {
+                                                    courseTask.schedules = task.schedules.IsNotEmpty() ? task.schedules : new List<ScheduleTask>() ;
+                                                }
+                                            }
+                                            else
+                                            {
+                                                courseTask = new CourseTask
+                                                {
+                                                    id = taskId,
+                                                    code = code,
+                                                    expire = -1,
+                                                    weekCount = -1,
+                                                    timeCount = -1,
+                                                    semesterId = task.semesterId,
+                                                    year = task.year,
+                                                    courseId = courseId,
+                                                    ttl = -1,
+                                                    pk = "CourseTask",
+                                                    schedules = task.schedules.IsNotEmpty() ? task.schedules : new List<ScheduleTask>() 
+                                            };
+                                            }
+                                            //到期时间正常访问
+                                            if (task.expire == -1 || courseTask.expire > 1259510400000)
+                                            {
+                                                courseTask.expire = task.expire;
+                                            }
+                                            if (task.weekCount > 0)
+                                            {
+                                                courseTask.weekCount = task.weekCount;
+                                            }
+                                            if (task.timeCount > 0)
+                                            {
+                                                courseTask.timeCount = task.timeCount;
+                                            }
+                                        }
+                                        else {
+                                            return Ok(new {code =1,msg="学期或学年设置错误!" });
+                                        }
+                                        
+                                    }
+                                }
                             }
                             break;
                         }