|
@@ -27,6 +27,7 @@ using FastJSON;
|
|
using OpenXmlPowerTools;
|
|
using OpenXmlPowerTools;
|
|
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
|
|
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
|
|
using System.Text.RegularExpressions;
|
|
using System.Text.RegularExpressions;
|
|
|
|
+using System.Security.Claims;
|
|
|
|
|
|
namespace TEAMModelOS.Controllers.Both
|
|
namespace TEAMModelOS.Controllers.Both
|
|
{
|
|
{
|
|
@@ -137,7 +138,8 @@ namespace TEAMModelOS.Controllers.Both
|
|
}
|
|
}
|
|
School schoolBase = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<School>(school, new PartitionKey("Base"));
|
|
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}"));
|
|
var period = schoolBase.period.Find(x => x.id.Equals($"{_periodId}"));
|
|
- if (period != null) {
|
|
|
|
|
|
+ if (period != null)
|
|
|
|
+ {
|
|
foreach (var item in courseBases)
|
|
foreach (var item in courseBases)
|
|
{
|
|
{
|
|
item.pk = "CourseBase";
|
|
item.pk = "CourseBase";
|
|
@@ -162,7 +164,8 @@ namespace TEAMModelOS.Controllers.Both
|
|
return Ok(new { code = 1, msg = "科目不存在", course = item });
|
|
return Ok(new { code = 1, msg = "科目不存在", course = item });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else {
|
|
|
|
|
|
+ else
|
|
|
|
+ {
|
|
return Ok(new { code = 1, msg = "科目不存在", course = item });
|
|
return Ok(new { code = 1, msg = "科目不存在", course = item });
|
|
}
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(item.major?.id))
|
|
if (!string.IsNullOrWhiteSpace(item.major?.id))
|
|
@@ -177,7 +180,7 @@ namespace TEAMModelOS.Controllers.Both
|
|
return Ok(new { code = 2, msg = "专业不存在", course = item });
|
|
return Ok(new { code = 2, msg = "专业不存在", course = item });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- var dbcoursebase = courseBasesDB.Find(x => x.name.Equals(item.name) && x.grade == item.grade );
|
|
|
|
|
|
+ var dbcoursebase = courseBasesDB.Find(x => x.name.Equals(item.name) && x.grade == item.grade);
|
|
if (dbcoursebase != null)
|
|
if (dbcoursebase != null)
|
|
{
|
|
{
|
|
item.id = dbcoursebase.id;
|
|
item.id = dbcoursebase.id;
|
|
@@ -187,9 +190,11 @@ namespace TEAMModelOS.Controllers.Both
|
|
item.no = string.IsNullOrWhiteSpace(item.no) ? dbcoursebase.no : item.no;
|
|
item.no = string.IsNullOrWhiteSpace(item.no) ? dbcoursebase.no : item.no;
|
|
item.grade =item.grade<0 ? dbcoursebase.grade : item.grade;
|
|
item.grade =item.grade<0 ? dbcoursebase.grade : item.grade;
|
|
}
|
|
}
|
|
- await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname).UpsertItemAsync(item,new PartitionKey(item.code));
|
|
|
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname).UpsertItemAsync(item, new PartitionKey(item.code));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ else { return Ok(new { code = 3, msg = "学段不存在", });
|
|
|
|
+ }
|
|
return Ok(new { course = courseBases });
|
|
return Ok(new { course = courseBases });
|
|
}
|
|
}
|
|
case bool when $"{grant_type}".Equals("upsert", StringComparison.OrdinalIgnoreCase) :
|
|
case bool when $"{grant_type}".Equals("upsert", StringComparison.OrdinalIgnoreCase) :
|
|
@@ -1357,9 +1362,13 @@ namespace TEAMModelOS.Controllers.Both
|
|
{
|
|
{
|
|
return BadRequest();
|
|
return BadRequest();
|
|
}
|
|
}
|
|
|
|
+ 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}"));
|
|
|
|
+ string date = SchoolService.GetOpensByStudyYearAndSemester(period.semesters, int.Parse($"{_year}"),$"{_semesterId}");
|
|
string sql = $"select value c from c where c.year={_year} and c.semesterId='{_semesterId}'";
|
|
string sql = $"select value c from c where c.year={_year} and c.semesterId='{_semesterId}'";
|
|
string code = $"CourseTask-{school}";
|
|
string code = $"CourseTask-{school}";
|
|
var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<CourseTask>(sql, code);
|
|
var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<CourseTask>(sql, code);
|
|
|
|
+ List<CourseCheckImport> imports = new List<CourseCheckImport>();
|
|
if (result.list.IsNotEmpty()) {
|
|
if (result.list.IsNotEmpty()) {
|
|
string courseIdSQL = $"select value c from c where c.id in({string.Join(",",result.list.Select(z=>$"'{z.courseId}'"))})";
|
|
string courseIdSQL = $"select value c from c where c.id in({string.Join(",",result.list.Select(z=>$"'{z.courseId}'"))})";
|
|
List<CourseBase> courseBases = new List<CourseBase>();
|
|
List<CourseBase> courseBases = new List<CourseBase>();
|
|
@@ -1391,7 +1400,6 @@ namespace TEAMModelOS.Controllers.Both
|
|
groupLists.AddRange(resultGroupList.list);
|
|
groupLists.AddRange(resultGroupList.list);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
List<string> tmdids = new List<string>();
|
|
List<string> tmdids = new List<string>();
|
|
if (teacherIds!=null && teacherIds.Count()>0) {
|
|
if (teacherIds!=null && teacherIds.Count()>0) {
|
|
tmdids.AddRange(teacherIds);
|
|
tmdids.AddRange(teacherIds);
|
|
@@ -1409,31 +1417,43 @@ namespace TEAMModelOS.Controllers.Both
|
|
teachers.AddRange(resultTmdid.list);
|
|
teachers.AddRange(resultTmdid.list);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- List<CourseCheckImport> imports= new List<CourseCheckImport>();
|
|
|
|
foreach (var item in result.list) {
|
|
foreach (var item in result.list) {
|
|
var courseBase= courseBases.Find(z => z.id.Equals(item.courseId));
|
|
var courseBase= courseBases.Find(z => z.id.Equals(item.courseId));
|
|
item.schedules.ForEach(z => {
|
|
item.schedules.ForEach(z => {
|
|
-
|
|
|
|
- CourseCheckImport courseCheckImport = new CourseCheckImport {name=courseBase?.name };
|
|
|
|
- if (z.type.Equals("class")) {
|
|
|
|
|
|
+ CourseCheckImport courseCheckImport = new CourseCheckImport {name=courseBase?.name,stime=date ,grade=courseBase.grade,courseNo=courseBase.no};
|
|
|
|
+ if (z.type.Equals("class") &&!string.IsNullOrWhiteSpace(z.groupId)) {
|
|
var clazz= classes.Find(x => x.id.Equals(z.groupId));
|
|
var clazz= classes.Find(x => x.id.Equals(z.groupId));
|
|
courseCheckImport.type=z.type;
|
|
courseCheckImport.type=z.type;
|
|
courseCheckImport.list=$"{clazz.year}-{clazz.no}";
|
|
courseCheckImport.list=$"{clazz.year}-{clazz.no}";
|
|
|
|
+ courseCheckImport.listName=clazz.name;
|
|
}
|
|
}
|
|
- if (z.type.Equals("teach"))
|
|
|
|
|
|
+ if (z.type.Equals("teach")&&!string.IsNullOrWhiteSpace(z.groupId))
|
|
{
|
|
{
|
|
var groupList = groupLists.Find(x => x.id.Equals(z.groupId));
|
|
var groupList = groupLists.Find(x => x.id.Equals(z.groupId));
|
|
courseCheckImport.type=z.type;
|
|
courseCheckImport.type=z.type;
|
|
courseCheckImport.list=$"{groupList.name}";
|
|
courseCheckImport.list=$"{groupList.name}";
|
|
|
|
+ courseCheckImport.listName=groupList.name;
|
|
|
|
+ }
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(z.teacherId)) {
|
|
|
|
+ var teacher= teachers.Find(x => x.id.Equals(z.teacherId));
|
|
|
|
+ courseCheckImport.tmdid=teacher.id;
|
|
|
|
+ courseCheckImport.tmdName=teacher?.name;
|
|
|
|
+ }
|
|
|
|
+ if (z.assistants!=null && z.assistants.Count>0) {
|
|
|
|
+ var teacher_assistants = teachers.FindAll(x =>z.assistants.Contains(x.id));
|
|
|
|
+ courseCheckImport.assistants=string.Join(",", z.assistants);
|
|
|
|
+ courseCheckImport.assistantNames=string.Join(",", teacher_assistants.Select(x => x.name));
|
|
}
|
|
}
|
|
|
|
+ imports.Add(courseCheckImport);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- break;
|
|
|
|
|
|
+ return Ok(new { export=imports,code=200 });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
await _dingDing.SendBotMsg($"{_option.Location},课程处理异常,{ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
|
|
await _dingDing.SendBotMsg($"{_option.Location},课程处理异常,{ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
|
|
|
|
+ return Ok(new { code = 500, msg = ex.Message });
|
|
}
|
|
}
|
|
return Ok();
|
|
return Ok();
|
|
}
|
|
}
|