|
@@ -924,7 +924,8 @@ namespace TEAMModelOS.Controllers.Both
|
|
courseBases.Add(item);
|
|
courseBases.Add(item);
|
|
}
|
|
}
|
|
HashSet<CourseCheckImport> courseInvalidImports = new HashSet<CourseCheckImport>();
|
|
HashSet<CourseCheckImport> courseInvalidImports = new HashSet<CourseCheckImport>();
|
|
- var nameInvalidImports = courseCheckImports.ExceptBy(courseBases.Select(x => x.name),z=>z.name);
|
|
|
|
|
|
+ HashSet<CourseCheckImport> courseVerifiedImports = new HashSet<CourseCheckImport>();
|
|
|
|
+ var nameInvalidImports = courseCheckImports.Where(z=>! courseBases.Select(x => x.name).Contains(z.name));
|
|
//保留课程名称存在的排课信息
|
|
//保留课程名称存在的排课信息
|
|
if (nameInvalidImports != null && nameInvalidImports.Any())
|
|
if (nameInvalidImports != null && nameInvalidImports.Any())
|
|
{
|
|
{
|
|
@@ -937,10 +938,10 @@ namespace TEAMModelOS.Controllers.Both
|
|
}
|
|
}
|
|
//2.检查导入的醍摩豆教师ID是否有效
|
|
//2.检查导入的醍摩豆教师ID是否有效
|
|
StringBuilder sqlTmdid = new StringBuilder(" select c.id,c.name ,c.code ,c.picture from c ");
|
|
StringBuilder sqlTmdid = new StringBuilder(" select c.id,c.name ,c.code ,c.picture from c ");
|
|
- sqlTmdid.Append($" where c.id in({string.Join(",", courseCheckImports.Select(z => $"'{z.tmdid}'"))}) ");
|
|
|
|
|
|
+ //sqlTmdid.Append($" where c.id in({string.Join(",", courseCheckImports.Select(z => $"'{z.tmdid}'"))}) ");
|
|
List<IdNameCode> teachers = new List<IdNameCode>();
|
|
List<IdNameCode> teachers = new List<IdNameCode>();
|
|
- await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher)
|
|
|
|
- .GetItemQueryIterator<IdNameCode>(queryText: sqlTmdid.ToString(), requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey("Base") }))
|
|
|
|
|
|
+ await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School)
|
|
|
|
+ .GetItemQueryIterator<IdNameCode>(queryText: sqlTmdid.ToString(), requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey($"Teacher-{school}") }))
|
|
{
|
|
{
|
|
teachers.Add(item);
|
|
teachers.Add(item);
|
|
}
|
|
}
|
|
@@ -1203,20 +1204,19 @@ namespace TEAMModelOS.Controllers.Both
|
|
groupId=groupList?.id;
|
|
groupId=groupList?.id;
|
|
}
|
|
}
|
|
//检查助教是否存在
|
|
//检查助教是否存在
|
|
- string[] assistants = null;
|
|
|
|
|
|
+ string[] assistants = new string[] { };
|
|
if (!string.IsNullOrWhiteSpace(item.assistants)) {
|
|
if (!string.IsNullOrWhiteSpace(item.assistants)) {
|
|
- Regex.Split(item.assistants, "\\.|\\.|\\、|\\:|\\:|\\,|\\,|\\;|\\;");
|
|
|
|
- }
|
|
|
|
- var invalidAssistants = assistants.Except(teachers.Select(x => x.id));
|
|
|
|
- if (invalidAssistants != null && invalidAssistants.Any())
|
|
|
|
- {
|
|
|
|
- item.invalidCode = 21;
|
|
|
|
- item.invalidMsg = $"{string.Join(",", invalidAssistants)}";
|
|
|
|
- courseInvalidImports.Add(item);
|
|
|
|
- continue;
|
|
|
|
|
|
+ assistants = Regex.Split(item.assistants, "\\.|\\.|\\、|\\:|\\:|\\,|\\,|\\;|\\;");
|
|
|
|
+ var invalidAssistants = assistants.Except(teachers.Select(x => x.id));
|
|
|
|
+ if (invalidAssistants != null && invalidAssistants.Any())
|
|
|
|
+ {
|
|
|
|
+ item.invalidCode = 21;
|
|
|
|
+ item.invalidMsg = $"{string.Join(",", invalidAssistants)}";
|
|
|
|
+ courseInvalidImports.Add(item);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
Room room = rooms.Find(z =>!string.IsNullOrWhiteSpace(item.roomNo) && z.no.Equals(item.roomNo));
|
|
Room room = rooms.Find(z =>!string.IsNullOrWhiteSpace(item.roomNo) && z.no.Equals(item.roomNo));
|
|
string roomId= room?.id;
|
|
string roomId= room?.id;
|
|
string teacherId = teachers.Find(z => z.id.Equals(item.tmdid))?.id;
|
|
string teacherId = teachers.Find(z => z.id.Equals(item.tmdid))?.id;
|
|
@@ -1252,6 +1252,7 @@ namespace TEAMModelOS.Controllers.Both
|
|
teacherId=teacherId,
|
|
teacherId=teacherId,
|
|
times = scheduleTime!=null ? new List<ScheduleTime> { scheduleTime }: new List<ScheduleTime> { },
|
|
times = scheduleTime!=null ? new List<ScheduleTime> { scheduleTime }: new List<ScheduleTime> { },
|
|
school=school,
|
|
school=school,
|
|
|
|
+ assistants=assistants.ToHashSet(),
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -1301,16 +1302,27 @@ namespace TEAMModelOS.Controllers.Both
|
|
teacherId = teacherId,
|
|
teacherId = teacherId,
|
|
times = scheduleTime != null ? new List<ScheduleTime> { scheduleTime } : new List<ScheduleTime> { },
|
|
times = scheduleTime != null ? new List<ScheduleTime> { scheduleTime } : new List<ScheduleTime> { },
|
|
school = school,
|
|
school = school,
|
|
|
|
+ assistants= assistants != null ? assistants.ToHashSet() : scheduleTask.assistants
|
|
};
|
|
};
|
|
courseTask.schedules.Add(scheduleTask);
|
|
courseTask.schedules.Add(scheduleTask);
|
|
}
|
|
}
|
|
|
|
+ courseTasks.Add(courseTask);
|
|
}
|
|
}
|
|
|
|
+ item.invalidCode = 0;
|
|
|
|
+ courseVerifiedImports.Add(item);
|
|
checkedCount++;
|
|
checkedCount++;
|
|
}
|
|
}
|
|
//生成检查结果token,有效期5分钟
|
|
//生成检查结果token,有效期5分钟
|
|
- string checkToken=$"CourseTask:CheckToken:{scope}:{school}:{Guid.NewGuid()}" ;
|
|
|
|
- await _azureRedis.GetRedisClient(8).StringSetAsync(checkToken, courseTasks.ToJsonString(),expiry:new TimeSpan(0,5,0));
|
|
|
|
- return Ok(new { courseCheckedImports = courseTasks , checkedCount, invalidCount= courseInvalidImports.Count, courseInvalidImports, checkToken });
|
|
|
|
|
|
+
|
|
|
|
+ if (courseTasks != null && courseTasks.Count > 0)
|
|
|
|
+ {
|
|
|
|
+ string checkToken = $"CourseTask:CheckToken:{scope}:{school}:{Guid.NewGuid()}";
|
|
|
|
+ await _azureRedis.GetRedisClient(8).StringSetAsync(checkToken, courseTasks.ToJsonString(), expiry: new TimeSpan(0, 5, 0));
|
|
|
|
+ return Ok(new { courseCheckedImports = courseTasks, checkedCount, invalidCount = courseInvalidImports.Count, courseVerifiedImports, courseInvalidImports, checkToken });
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return Ok(new { courseCheckedImports = courseTasks, checkedCount, invalidCount = courseInvalidImports.Count, courseVerifiedImports, courseInvalidImports, checkToken=string.Empty });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
case bool when $"{grant_type}".Equals("import-task", StringComparison.OrdinalIgnoreCase) && $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase):
|
|
case bool when $"{grant_type}".Equals("import-task", StringComparison.OrdinalIgnoreCase) && $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|