|
@@ -245,6 +245,53 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
Logger.WriteLineInfo($"Courses record processing: {(pageIndex * pageSize * 100 / tempValue)}%");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //报名数据
|
|
|
+ var signCourseFilter = Builders<CourseStudents>.Filter.Where(x => x.IsDeleted == false && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
+ var signCourseStudentRecords = _coursesDBRepository.GetCourseStudents(signCourseFilter).ToList();
|
|
|
+ if (signCourseStudentRecords?.Count > 0)
|
|
|
+ {
|
|
|
+ var courseCodes = signCourseStudentRecords.Select(c => c.Id).Distinct().ToList();
|
|
|
+ if (courseCodes?.Count > 0)
|
|
|
+ {
|
|
|
+ filter = builder.Where(x => courseCodes.Contains(x.Id));
|
|
|
+ coursesRecords = new List<Courses>();
|
|
|
+ tempCoursesRecords = _coursesDBRepository.GetCourses(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ coursesRecords = await FilterData<Courses>(tempCoursesRecords, "CoursesData");
|
|
|
+ Logger.WriteLineInfo($"Courses totalCount:{coursesRecords.Count}");
|
|
|
+
|
|
|
+ courseAvailabilityExtensionsFilter = Builders<CourseAvailabilityExtensions>.Filter.Where(x => !string.IsNullOrEmpty(x.Id));
|
|
|
+ courseAvailabilityExtensionsRecords = _coursesDBRepository.GetCourseAvailabilityExtensions(courseAvailabilityExtensionsFilter).ToList();
|
|
|
+
|
|
|
+ courseStudentFilter = Builders<CourseStudents>.Filter.Where(x => x.IsDeleted == false);
|
|
|
+ courseStudentRecords = _coursesDBRepository.GetCourseStudents(courseStudentFilter).ToList();
|
|
|
+
|
|
|
+ pageIndex = 0;
|
|
|
+ pageSize = 10;
|
|
|
+ coursesCount = coursesRecords.Count;
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ var pendingRecords = coursesRecords.Skip(pageIndex * pageSize).Take(pageSize)?.ToList() ?? new List<Courses>();
|
|
|
+ var pendingCount = pendingRecords.Count;
|
|
|
+ if (pendingCount > 0)
|
|
|
+ {
|
|
|
+ await SendCoursesInfos(pendingRecords, courseStudentRecords, courseAvailabilityExtensionsRecords, syncType);
|
|
|
+ pageIndex++;
|
|
|
+ }
|
|
|
+ if (pageIndex * pageSize >= coursesCount)
|
|
|
+ {
|
|
|
+ Logger.WriteLineInfo($"Courses record processing: 100%");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var tempValue = coursesCount == 0 ? 1 : coursesCount;
|
|
|
+ Logger.WriteLineInfo($"Courses record processing: {(pageIndex * pageSize * 100 / tempValue)}%");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -259,8 +306,8 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
{
|
|
|
var teacherCodes = coursesRecords.Where(c => !string.IsNullOrEmpty(c.Teacher?.Id)).Select(c => c.Teacher?.Id).Distinct().ToList();
|
|
|
var teacherList = _usersDBRepository.GetUserByCodes(teacherCodes);
|
|
|
- var startTime = GetFactBeginTime(_migrateRecord.StartTime, _migrateRecord.EndTime);
|
|
|
- var endTime = _migrateRecord.EndTime;
|
|
|
+ //var startTime = GetFactBeginTime(_migrateRecord.StartTime, _migrateRecord.EndTime);
|
|
|
+ //var endTime = _migrateRecord.EndTime;
|
|
|
Logger.WriteLineInfo($"Courses Infos Migrate Starting");
|
|
|
var courseInfoList = new List<CourseMigratoryInfo>();
|
|
|
foreach (var courseItem in coursesRecords)
|