|
@@ -1,4 +1,4 @@
|
|
|
-using System;
|
|
|
+using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Threading.Tasks;
|
|
@@ -96,42 +96,64 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
List<CoursePlan> coursePlans = new List<CoursePlan>();
|
|
|
- foreach (IGrouping<dynamic, CoursePlanDto> group in request.@params.GroupBy(c => new { c.courseId, c.code })) {
|
|
|
- List<CoursePlan> datas = await _cosmos.FindByDict<CoursePlan>(new Dictionary<string, object>
|
|
|
- { { "id",group.Key.courseId }, { "code", group.Key.code } });
|
|
|
- var list = request.@params.Where(x => x.code == group.Key.code && x.courseId == group.Key.courseId).ToList();
|
|
|
- if (datas.IsNotEmpty())
|
|
|
+ var codeCourses= request.@params.GroupBy(x => x.code+"::"+ x.courseId);
|
|
|
+ foreach (var codeCourse in codeCourses) {
|
|
|
+ string[] val= codeCourse.Key.Split("::");
|
|
|
+ var codeabc =new { code=val[0], courseId = val[1]} ;
|
|
|
+ var list = codeCourse.ToList();
|
|
|
+ CoursePlan datas = await _cosmos.FindByIdPk<CoursePlan>(codeabc.courseId,codeabc.code );
|
|
|
+ if (datas!=null)
|
|
|
{
|
|
|
- CoursePlan data = datas[0];
|
|
|
-
|
|
|
- foreach (IGrouping<string, CoursePlanDto> groupClass in list.GroupBy(c => c.classroomCode)) {
|
|
|
- var listclass = request.@params.Where(x => x.code == group.Key.code &&x.classroomCode==groupClass.Key && x.courseId == group.Key.courseId).ToList();
|
|
|
+ CoursePlan data = datas;
|
|
|
+ var groupClasses = list.GroupBy(x => x.classroomCode);
|
|
|
+ foreach (var groupClass in groupClasses)
|
|
|
+ {
|
|
|
+ var listclass = groupClass.ToList();
|
|
|
if (listclass.IsNotEmpty()) {
|
|
|
List<CourseTime> courseTimes = new List<CourseTime>();
|
|
|
listclass.ForEach(x => {
|
|
|
- if (data.classes.Select(m=>m.classroomCode).Contains(x.classroomCode)) {
|
|
|
+ ///如果不相同则可以继续设置
|
|
|
+ if (!data.classes.Select(m => m.classroomCode).Contains(x.classroomCode))
|
|
|
+ {
|
|
|
courseTimes.Add(x.courseTime);
|
|
|
+ }//如果相同则判断是否在同一个时间段
|
|
|
+ else {
|
|
|
+ data.classes.ForEach(y => {
|
|
|
+ if (y.classroomCode == x.classroomCode) {
|
|
|
+ //判断当天课时段是否一致 ,如果一致则false,则不能重复添加
|
|
|
+ bool flag = true;
|
|
|
+ y.courseTimes.ForEach(z => {
|
|
|
+ if (z.time == x.courseTime.time && z.day==x.courseTime.day) {
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (flag) {
|
|
|
+ courseTimes.Add(x.courseTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
- if (courseTimes.IsNotEmpty()) {
|
|
|
+ if (courseTimes.IsNotEmpty())
|
|
|
+ {
|
|
|
data.classes.Add(new CourseClass { classroomCode = groupClass.Key, courseTimes = courseTimes });
|
|
|
coursePlans.Add(data);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
+ else
|
|
|
+ {
|
|
|
|
|
|
- CoursePlan data = new CoursePlan {
|
|
|
- id = group.Key.courseId,
|
|
|
- code = group.Key.code,
|
|
|
- // courseId = group.Key.courseId ,
|
|
|
-
|
|
|
+ CoursePlan data = new CoursePlan
|
|
|
+ {
|
|
|
+ id = codeabc.courseId,
|
|
|
+ code = codeabc.code,
|
|
|
};
|
|
|
- foreach (IGrouping<string, CoursePlanDto> groupClass in list.GroupBy(c => c.classroomCode))
|
|
|
+ var groupClasses = list.GroupBy(x => x.classroomCode);
|
|
|
+ foreach (var groupClass in groupClasses)
|
|
|
{
|
|
|
- var listclass = request.@params.Where(x => x.code == group.Key.code && x.classroomCode == groupClass.Key && x.courseId == group.Key.courseId).ToList();
|
|
|
+ var listclass = groupClass.ToList();
|
|
|
if (listclass.IsNotEmpty())
|
|
|
{
|
|
|
List<CourseTime> courseTimes = new List<CourseTime>();
|