CrazyIter_Bin 2 tahun lalu
induk
melakukan
011070422c

+ 12 - 5
TEAMModelOS.SDK/Models/Cosmos/School/CourseBase.cs

@@ -94,8 +94,8 @@ namespace TEAMModelOS.SDK.Models
      //课程排课任务
     "courseTask": {
         //年份+学期,2022-2023第一学期
-        "id": " 2022-semesterId",
-        "code": "CourseTask-hbcn-courseIduuid1",
+        "id": " 2022-semesterId-courseId",
+        "code": "CourseTask-hbcn",
         "pk": "CourseTask",
         "expire": 1577808000000,//默认-1 永不过期,学校的课程则自动根据学期的时间进行设置。
         "courseId": "courseIduuid1",//课程id
@@ -164,7 +164,6 @@ namespace TEAMModelOS.SDK.Models
         /// 课程一周有多少堂课,-1未设定
         /// </summary>
         public int timeCount { get; set; } = -1;
-
     }
 
     public class ScheduleTask
@@ -197,7 +196,12 @@ namespace TEAMModelOS.SDK.Models
         /// 开课通知内容,比如临时调整上课地点,或需要准备的资料,开课主讲内容等。
         /// </summary>
         public string notice { get; set; }
-        
+        /// <summary>
+        /// 设计该字段的目的在于可能会出现教师个人课程,使用某一学校名单进行上课,或者教师临时自己开课,使用学校名单。
+        /// 在个人课程展示这个的时候,只展示教师登录所在的学校,而且要检查当前名单是否与学校一致
+        /// </summary>
+        public string school { get; set; }
+
     }
 
     public class ScheduleTime {
@@ -327,9 +331,12 @@ namespace TEAMModelOS.SDK.Models
         /// <summary>
         /// -1未验证的,0.验证通过的,1.课程名称无效的,2.醍摩豆ID无效的,3.教学班名称无效的,4.教室编号无效的,5.开学日期无效的,6.课程结束日期无效的,
         /// 7.排课时间格式不满足[1-n]-[1|2|3|4|5|6|7]-[A|D|C],8.没有对应的上课时间段,9.上课时间不在星期一至星期日,10.自定义模式下,需要配置对应的上课周,11.自定义模式下,上课周不在1-20周
-        /// 12.班级入学年-编号不存在,13.导入的班级入学年-编号在系统中重复,请检查行政班设置,14.班级入学年-编号格式错误,15根据开学时间无法获取学期信息,16学期不存在
+        /// 12.班级入学年-编号不存在,13.导入的班级入学年-编号在系统中重复,请检查行政班设置,14.班级入学年-编号格式错误,15根据开学时间无法获取学期信息,16学期不存在,17,修改的信息必须要有教师或名单中的一项或两项。
+        /// 18.修改的名单不存在,19修改的教师不存在
         /// </summary>
         public int invalidCode { get; set; } = -1;
+        //个人的课程 引用其他学校的名单
+        public string school { get; set; }
     }
     public class CourseTaskChanged : CourseTaskInsert
     {

+ 97 - 19
TEAMModelOS.SDK/Models/Service/SchoolService.cs

@@ -419,19 +419,39 @@ namespace TEAMModelOS.SDK
         /// 校验
         /// </summary>
         /// <param name="courseTaskInsert"></param>
-        public static  CourseTaskInsert CheckCourseTaskInsert(CourseTaskInsert courseTaskInsert,School school,Period period, List<CourseBase> courseBases, List<GroupListDto> groupListDtos, List<Room> rooms, List<SchoolTeacher> schoolTeachers)
+        public static CourseTaskChanged CheckCourseTaskInsertOrChanged(string grant_type,  string scope , CourseTaskChanged courseTaskInsert,string school,Period period, List<CourseBase> courseBases, List<GroupListDto> groupListDtos, List<Room> rooms,
+            List<SchoolTeacher> schoolTeachers,List<Teacher> teachers)
         {
-            //学年
-            if (courseTaskInsert.year < 2000)
-            {
-                courseTaskInsert.invalidCode = 17;//学年应大于2000
-                return courseTaskInsert;
+            if (scope.Equals("school", StringComparison.OrdinalIgnoreCase))
+            {  //学年
+                if (courseTaskInsert.year < 2000)
+                {
+                    courseTaskInsert.invalidCode = 17;//学年应大于2000
+                    return courseTaskInsert;
+                }
+                //学期
+                var semester = period.semesters.Where(z => z.id.Equals(courseTaskInsert.semesterId));
+                if (!semester.Any())
+                {
+                    courseTaskInsert.invalidCode = 16;//学期不存在
+                    return courseTaskInsert;
+                }
+                //教师
+                var schoolteachers = schoolTeachers.Where(z => z.id.Equals(courseTaskInsert.teacherId));
+                if (!schoolteachers.Any())
+                {
+                    courseTaskInsert.invalidCode = 2;//教师不存在
+                    return courseTaskInsert;
+                }
             }
-            //学期
-            var semester =  period.semesters.Where(z => z.id.Equals(courseTaskInsert.semesterId));
-            if (!semester.Any()) {
-                courseTaskInsert.invalidCode = 16;//学期不存在
-                return courseTaskInsert;
+            else {
+                //教师
+                var teachersbase = teachers.Where(z => z.id.Equals(courseTaskInsert.teacherId));
+                if (!teachersbase.Any())
+                {
+                    courseTaskInsert.invalidCode = 2;//教师不存在
+                    return courseTaskInsert;
+                }
             }
             //课程
             var courseBase = courseBases.Where(z => z.id.Equals(courseTaskInsert.courseId));
@@ -439,7 +459,7 @@ namespace TEAMModelOS.SDK
             {
                 courseTaskInsert.invalidCode = 1;//课程不存在
                 return courseTaskInsert;
-            } 
+            }
             //名单
             var groupList = groupListDtos.Where(z => z.id.Equals(courseTaskInsert.groupId) && z.type.Equals(courseTaskInsert.type));
             if (!groupList.Any())
@@ -447,8 +467,21 @@ namespace TEAMModelOS.SDK
                 courseTaskInsert.invalidCode = 3;//名单不存在
                 return courseTaskInsert;
             }
+            else {
+                if (scope.Equals("private", StringComparison.OrdinalIgnoreCase))
+                {
+                    if (!groupList.First().scope.Equals("private", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(school) && school.Equals(groupList.First().school))
+                    {
+                        courseTaskInsert.school = school;
+                    }
+                }
+                else {
+                    courseTaskInsert.school = school;
+                }
+            }
             //教室
-            if (!string.IsNullOrWhiteSpace(courseTaskInsert.roomId)) {
+            if (!string.IsNullOrWhiteSpace(courseTaskInsert.roomId))
+            {
                 var room = rooms.Where(z => z.id.Equals(courseTaskInsert.roomId));
                 if (!room.Any())
                 {
@@ -456,12 +489,57 @@ namespace TEAMModelOS.SDK
                     return courseTaskInsert;
                 }
             }
-            //教师
-            var teachers = schoolTeachers.Where(z => z.id.Equals(courseTaskInsert.teacherId));
-            if (!teachers.Any())
-            {
-                courseTaskInsert.invalidCode = 2;//教师不存在
-                return courseTaskInsert;
+            if (grant_type.Equals("change-scheduleTask", StringComparison.OrdinalIgnoreCase)) {
+                if (!string.IsNullOrWhiteSpace(courseTaskInsert.teacherIdChanged) || (!string.IsNullOrWhiteSpace(courseTaskInsert.groupIdChanged) && !string.IsNullOrWhiteSpace(courseTaskInsert.typeChanged)))
+                {
+                    if (!string.IsNullOrWhiteSpace(courseTaskInsert.teacherIdChanged)) {
+                        if (scope.Equals("school", StringComparison.OrdinalIgnoreCase))
+                        {
+                            //教师
+                            var schoolteachers = schoolTeachers.Where(z => z.id.Equals(courseTaskInsert.teacherIdChanged));
+                            if (!schoolteachers.Any())
+                            {
+                                courseTaskInsert.invalidCode = 19;//教师不存在
+                                return courseTaskInsert;
+                            }
+                        }
+                        else {
+                            //教师
+                            var teachersbase = teachers.Where(z => z.id.Equals(courseTaskInsert.teacherIdChanged));
+                            if (!teachersbase.Any())
+                            {
+                                courseTaskInsert.invalidCode = 19;//教师不存在
+                                return courseTaskInsert;
+                            }
+                        }
+                    }
+                    if (!string.IsNullOrWhiteSpace(courseTaskInsert.groupIdChanged) && !string.IsNullOrWhiteSpace(courseTaskInsert.typeChanged)) {
+                        //名单
+                        var groupListChanged = groupListDtos.Where(z => z.id.Equals(courseTaskInsert.groupIdChanged) && z.type.Equals(courseTaskInsert.typeChanged));
+                        if (!groupListChanged.Any())
+                        {
+                            courseTaskInsert.invalidCode = 18;//名单不存在
+                            return courseTaskInsert;
+                        }
+                        else
+                        {
+                            if (scope.Equals("private", StringComparison.OrdinalIgnoreCase))
+                            {
+                                if (!groupListChanged.First().scope.Equals("private", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(school) && school.Equals(groupList.First().school))
+                                {
+                                    courseTaskInsert.school = school;
+                                }
+                            }
+                            else
+                            {
+                                courseTaskInsert.school = school;
+                            }
+                        }
+                    }
+                }
+                else {
+                    courseTaskInsert.invalidCode = 17;
+                }
             }
             courseTaskInsert.invalidCode = 0;
             return courseTaskInsert;

+ 171 - 23
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -68,7 +68,7 @@ namespace TEAMModelOS.Controllers.Both
         public async Task<IActionResult> upsert(JsonElement request) 
         {
             try {
-                (string id, _, _, string school) = HttpContext.GetAuthTokenInfo();
+                (string tmdid, _, _, string school) = HttpContext.GetAuthTokenInfo();
                 if (!request.TryGetProperty("grant_type", out JsonElement grant_type)) return BadRequest();
                 if (!request.TryGetProperty("scope", out JsonElement scope)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
@@ -130,13 +130,13 @@ namespace TEAMModelOS.Controllers.Both
                             if (courseBase.scope.Equals("school", StringComparison.OrdinalIgnoreCase))
                             {
                                 courseBase.school = school;
-                                courseBase.creatorId = id;
+                                courseBase.creatorId = tmdid;
                                 courseBase.code = $"CourseBase-{school}";
                             }
                             else
                             {
-                                courseBase.creatorId = id;
-                                courseBase.code = $"CourseBase-{id}";
+                                courseBase.creatorId = tmdid;
+                                courseBase.code = $"CourseBase-{tmdid}";
                             }
                             await client.GetContainer(Constant.TEAMModelOS, tbname).UpsertItemAsync(courseBase, new PartitionKey(courseBase.code));
                             return Ok(new { course = courseBase });
@@ -211,7 +211,7 @@ namespace TEAMModelOS.Controllers.Both
                             }
                             else
                             {
-                                string taskCode = $"CourseTask-{id}";
+                                string taskCode = $"CourseTask-{tmdid}";
                                 string taskId = $"{_courseId}";
                                 Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname).ReadItemStreamAsync(taskId, new PartitionKey(taskCode));
                                 CourseTask courseTask = default;
@@ -222,15 +222,16 @@ namespace TEAMModelOS.Controllers.Both
                                 return Ok(new { courseTask });
                             }
                         }
-                    case bool when $"{grant_type}".Equals("insert-task", StringComparison.OrdinalIgnoreCase) :
+                   case bool when $"{grant_type}".Equals("insert-scheduleTask", StringComparison.OrdinalIgnoreCase)
+                                    || $"{grant_type}".Equals("change-scheduleTask", StringComparison.OrdinalIgnoreCase) 
+                                    || $"{grant_type}".Equals("delete-scheduleTask", StringComparison.OrdinalIgnoreCase):
                         {
                             if ( !request.TryGetProperty("scope", out JsonElement _scope)|| !request.TryGetProperty("datas", out JsonElement _datas))
                             {
                                 return BadRequest();
                             }
-                            
                             string tbname = $"{_scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
-                            List<CourseTaskInsert> datas = _datas.ToObject<List<CourseTaskInsert>>();
+                            List<CourseTaskChanged> datas = _datas.ToObject<List<CourseTaskChanged>>();
                             if (_scope.ToString().Equals("school", StringComparison.OrdinalIgnoreCase))
                             {
                                 if (!request.TryGetProperty("periodId", out JsonElement _periodId)) return BadRequest();
@@ -272,10 +273,10 @@ namespace TEAMModelOS.Controllers.Both
                                 School schoolBase = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<School>(school, new PartitionKey("Base"));
                                 var period = schoolBase.period.Find(x => x.id.Equals($"{_periodId}"));
                                 HashSet<CourseTask> courseTasks = new HashSet<CourseTask>();
-                                List<CourseTaskInsert> invalidCourseTaskInsert= new List<CourseTaskInsert>();
+                                List<CourseTaskChanged> invalidCourseTaskInsert= new List<CourseTaskChanged>();
                                 foreach (var data in datas)
                                 {
-                                    var courseTaskInsert =  SchoolService.CheckCourseTaskInsert(data, schoolBase, period, courseBases, groupListDtos, rooms, schoolTeachers);
+                                    var courseTaskInsert =  SchoolService.CheckCourseTaskInsertOrChanged($"{grant_type}", scope.ToString(),data, school, period, courseBases, groupListDtos, rooms, schoolTeachers,null);
                                     if (courseTaskInsert.invalidCode == 0)
                                     {
                                         string taskCode = $"CourseTask-{school}";
@@ -287,7 +288,6 @@ namespace TEAMModelOS.Controllers.Both
                                             if (response.Status == 200)
                                             {
                                                 courseTask = JsonDocument.Parse(response.Content).RootElement.ToObject<CourseTask>();
-
                                             }
                                             else
                                             {
@@ -307,7 +307,8 @@ namespace TEAMModelOS.Controllers.Both
                                                         teacherId = courseTaskInsert.teacherId,
                                                         notice=courseTaskInsert.notice,
                                                         startTime = courseTaskInsert.startTime,
-                                                        times= new List<ScheduleTime>()
+                                                        times= new List<ScheduleTime>(),
+                                                        school=school,
                                                     } }
                                                 };
                                             }
@@ -315,31 +316,175 @@ namespace TEAMModelOS.Controllers.Both
                                         var scheduleTask = courseTask.schedules.Find(z => z.type.Equals(courseTaskInsert.type) && z.groupId.Equals(courseTaskInsert.groupId) && z.teacherId.Equals(courseTaskInsert.teacherId));
                                         if (scheduleTask == null)
                                         {
-                                            courseTask.schedules.Add(new ScheduleTask()
+                                            scheduleTask = new ScheduleTask()
                                             {
                                                 roomId = courseTaskInsert.roomId,
                                                 groupId = courseTaskInsert.groupId,
                                                 type = courseTaskInsert.type,
                                                 teacherId = courseTaskInsert.teacherId,
-                                                times = new List<ScheduleTime>()
-                                            });
+                                                times = new List<ScheduleTime>(),
+                                                school = school,
+                                            };
+                                            courseTask.schedules.Add(scheduleTask);
                                         }
                                         else
                                         {
                                             scheduleTask.roomId = courseTaskInsert.roomId;
+                                            scheduleTask.school=school;
+                                        }
+                                        //修改教师或名单
+                                        if (grant_type.ToString().Equals("change-scheduleTask", StringComparison.OrdinalIgnoreCase)) {
+                                            if (!string.IsNullOrWhiteSpace(courseTaskInsert.teacherIdChanged)) {
+                                                scheduleTask.teacherId = courseTaskInsert.teacherIdChanged;
+                                            }
+                                            if (!string.IsNullOrWhiteSpace(courseTaskInsert.typeChanged) && !string.IsNullOrWhiteSpace(courseTaskInsert.groupIdChanged)) {
+                                                scheduleTask.groupId = courseTaskInsert.groupIdChanged;
+                                                scheduleTask.type = courseTaskInsert.typeChanged;
+                                            }
+                                        }
+                                        //删除教师及名单的排课信息
+                                        if (grant_type.ToString().Equals("delete-scheduleTask", StringComparison.OrdinalIgnoreCase))
+                                        {
+                                            courseTask.schedules.Remove(scheduleTask);
+                                        }
+                                        //如果被删除完了,就删除该条记录。
+                                        if (courseTask.schedules.Count <= 0)
+                                        {
+                                            courseTasks.Remove(courseTask);
+                                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).DeleteItemStreamAsync(courseTask.id, new PartitionKey(courseTask.code));
+                                        }
+                                        else {
+                                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).UpsertItemAsync(courseTask, new PartitionKey(taskCode));
                                         }
-                                        courseTasks.Add(courseTask);
-                                        await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).UpsertItemAsync(courseTask, new PartitionKey(taskCode));
                                     }
                                     else {
                                         invalidCourseTaskInsert.Add(courseTaskInsert);
                                     }
-                                    return Ok(new { invalidCourseTaskInsert, courseTasks });
                                 }
+                                return Ok(new { invalidCourseTaskInsert, courseTasks });
                             }
-                            else { 
+                            else {
+                                //获取相关的名单
+                                List<GroupListDto> groupListDtos = await GroupListService.GetGroupListByListids(client, _dingDing, datas.Select(z => z.groupId).ToHashSet().ToList(), school);
+                                //获取相关的教室
+                                var roomIds = datas.Where(x => !string.IsNullOrWhiteSpace(x.roomId)).Select(c => $"'{c.roomId}'");
+                                List<Room> rooms = new List<Room>();
+                                if (roomIds.Any() && !string.IsNullOrWhiteSpace(school))
+                                {
+                                    string sqlRoom = $"select value c from c where c.id in ({string.Join(",", roomIds)})";
+                                    var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<Room>(sqlRoom, $"Room-{school}");
+                                    if (result.list.IsNotEmpty())
+                                    {
+                                        rooms.AddRange(result.list);
+                                    }
+                                }
+                                //获取教师
+                                List<Teacher> teachers = new List<Teacher>();
+                                var teacherIds = datas.Where(x => !string.IsNullOrWhiteSpace(x.teacherId)).Select(c => $"'{c.teacherId}'");
+                                if (teacherIds.Any())
+                                {
+                                    string sqlTeacher = $"select value c from c where c.id in ({string.Join(",", teacherIds)}) ";
+                                    var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<Teacher>(sqlTeacher, $"Base");
+                                    if (result.list.IsNotEmpty())
+                                    {
+                                        teachers.AddRange(result.list);
+                                    }
+                                }
+                                //获取课程
+                                List<CourseBase> courseBases = new List<CourseBase>();
+                                var courseIds = datas.Where(x => !string.IsNullOrWhiteSpace(x.courseId)).Select(c => $"'{c.courseId}'");
+                                if (courseIds.Any())
+                                {
+                                    string sqlCourse = $"select value c from c where c.id in ({string.Join(",", courseIds)}) ";
+                                    var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<CourseBase>(sqlCourse, $"CourseBase-{tmdid}");
+                                    if (result.list.IsNotEmpty())
+                                    {
+                                        courseBases.AddRange(result.list);
+                                    }
+                                }
+                                HashSet<CourseTask> courseTasks = new HashSet<CourseTask>();
+                                List<CourseTaskChanged> invalidCourseTaskInsert = new List<CourseTaskChanged>();
+                                foreach (var data in datas)
+                                {
+                                    var courseTaskInsert = SchoolService.CheckCourseTaskInsertOrChanged($"{grant_type}", scope.ToString(),data, null, null, courseBases, groupListDtos, rooms,null, teachers);
+                                    if (courseTaskInsert.invalidCode == 0)
+                                    {
+                                        string taskCode = $"CourseTask-{tmdid}";
+                                        string taskId = courseTaskInsert.courseId;
+                                        CourseTask courseTask = courseTasks.Where(z => z.id.Equals(taskId) && z.code.Equals(taskCode)).FirstOrDefault();
+                                        if (courseTask == null)
+                                        {
+                                            Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).ReadItemStreamAsync(taskId, new PartitionKey(taskCode));
+                                            if (response.Status == 200)
+                                            {
+                                                courseTask = JsonDocument.Parse(response.Content).RootElement.ToObject<CourseTask>();
+
+                                            }
+                                            else
+                                            {
+                                                courseTask = new CourseTask
+                                                {
+                                                    id = taskId,
+                                                    code = taskCode,
+                                                    pk = "CourseTask",
+                                                    ttl = -1,
+                                                    courseId = courseTaskInsert.courseId,
+                                                    schedules = new List<ScheduleTask> { new ScheduleTask {
+                                                        roomId = courseTaskInsert.roomId,
+                                                        groupId = courseTaskInsert.groupId,
+                                                        type = courseTaskInsert.type,
+                                                        teacherId = courseTaskInsert.teacherId,
+                                                        notice=courseTaskInsert.notice,
+                                                        startTime = courseTaskInsert.startTime,
+                                                        times= new List<ScheduleTime>(),
+                                                        school=courseTaskInsert.school,
+                                                    } }
+                                                };
+                                            }
+                                        }
+                                        var scheduleTask = courseTask.schedules.Find(z => z.type.Equals(courseTaskInsert.type) && z.groupId.Equals(courseTaskInsert.groupId) && z.teacherId.Equals(courseTaskInsert.teacherId));
+                                        if (scheduleTask == null)
+                                        {
+                                            scheduleTask = new ScheduleTask()
+                                            {
+                                                roomId = courseTaskInsert.roomId,
+                                                groupId = courseTaskInsert.groupId,
+                                                type = courseTaskInsert.type,
+                                                teacherId = courseTaskInsert.teacherId,
+                                                times = new List<ScheduleTime>(),
+                                                school = courseTaskInsert.school,
+                                            };
+                                            courseTask.schedules.Add(scheduleTask);
+                                        }
+                                        else
+                                        {
+                                            scheduleTask.roomId = courseTaskInsert.roomId;
+                                            scheduleTask.school = courseTaskInsert.school;
+                                        }
+                                        //修改教师或名单
+                                        if (grant_type.ToString().Equals("change-scheduleTask", StringComparison.OrdinalIgnoreCase))
+                                        {
+                                            if (!string.IsNullOrWhiteSpace(courseTaskInsert.teacherIdChanged))
+                                            {
+                                                scheduleTask.teacherId = courseTaskInsert.teacherIdChanged;
+                                            }
+                                            if (!string.IsNullOrWhiteSpace(courseTaskInsert.typeChanged) && !string.IsNullOrWhiteSpace(courseTaskInsert.groupIdChanged))
+                                            {
+                                                scheduleTask.groupId = courseTaskInsert.groupIdChanged;
+                                                scheduleTask.type = courseTaskInsert.typeChanged;
+                                            }
+                                        }
+                                        courseTasks.Add(courseTask);
+                                        await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).UpsertItemAsync(courseTask, new PartitionKey(taskCode));
+                                    }
+                                    else
+                                    {
+                                        invalidCourseTaskInsert.Add(courseTaskInsert);
+                                    }
+                                  
+                                }
+                                return Ok(new { invalidCourseTaskInsert, courseTasks });
                             }
-                            break;
                         }
                     //按照模板导入进行数据转换并且进行检查
                     case bool when ($"{grant_type}".Equals("import-check") && $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase)):
@@ -466,6 +611,7 @@ namespace TEAMModelOS.Controllers.Both
                             //List<CourseCheckImport> scheduleInvalidImports = new List<CourseCheckImport>();
                             //List<CourseCheckImport> classIdNoInvalidImports = new List<CourseCheckImport>();
                             Dictionary<string,List<Class>> duplicateClasses= new Dictionary<string, List<Class>>();
+                            //1  上课时间段的
                             var timeTables = period.timetable.Where(z => z.type.Equals("1")).ToList();  
                             HashSet< CourseTask > courseTasks = new HashSet<CourseTask>();
                             int checkedCount = 0;
@@ -478,7 +624,6 @@ namespace TEAMModelOS.Controllers.Both
                                 if (!DateTimeOffset.TryParseExact(item.stime, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out   sdateTime))
                                 {
                                     item.invalidCode = 5;
-
                                     courseInvalidImports.Add(item);
                                     continue;
                                 }
@@ -686,7 +831,8 @@ namespace TEAMModelOS.Controllers.Both
                                                 groupId=groupId,
                                                 type=item.type,
                                                 teacherId=teacherId,
-                                                times= new List<ScheduleTime> { scheduleTime }
+                                                times= new List<ScheduleTime> { scheduleTime },
+                                                school=school,
                                            }
                                         }
                                     };
@@ -702,11 +848,13 @@ namespace TEAMModelOS.Controllers.Both
                                             groupId = groupId,
                                             type = item.type,
                                             teacherId = teacherId,
-                                            times = new List<ScheduleTime> { scheduleTime }
+                                            times = new List<ScheduleTime> { scheduleTime },
+                                            school = school,
                                         });
                                     }
                                     else {
                                         scheduleTask.roomId = roomId;
+                                        scheduleTask.school = school;
                                         if (scheduleTime != null) {
                                             var shtime =  scheduleTask.times.Find(z => z.id.Equals(scheduleTime.id) && z.week.Equals(scheduleTime.week) && z.mode.Equals(scheduleTime.mode));
                                             if (shtime == null)