/// <summary> /// 添加一个课程 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-09-14</para> /// </summary> /// <param name="request">课程添加的数据源</param> public void Add(CourseAddRequest request) { //校验 Validate(request); //准备课程数据 TblDatCourse course = AutoMapper.Mapper.Map <TblDatCourse>(request); course.CourseId = IdGenerator.NextId(); course.CompanyId = _companyId; course.CreateTime = course.UpdateTime = DateTime.Now; course.IsDisabled = false; //准备课程级别数据 List <TblDatCourseLevelMiddle> courseLevelMiddles = request.CourseLevels.Select(c => new TblDatCourseLevelMiddle { CourseLevelMiddleId = IdGenerator.NextId(), CourseId = course.CourseId, BeginAge = c.SAge, EndAge = c.EAge, CourseLevelId = c.CourseLevelId, Duration = c.Duration, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, }).ToList(); new TblDatCourseRepository().Add(course); new TblDatCourseLevelMiddleRepository().Add(courseLevelMiddles); }
/// <summary> /// 修改课程 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-09-14</para> /// </summary> /// <param name="dto">课程修改的数据</param> /// <exception cref="BussinessException"> /// 异常ID:1,异常描述:课程对象为空 /// </exception> public async Task ModifyAsync(CourseAddRequest dto) { //校验 var oldCourse = await _courseRepository.Value.LoadTaskByCourseId(_companyId, dto.CourseId); if (oldCourse == null) { throw new BussinessException(ModelType.Default, 1); } Validate(dto, dto.CourseId); bool isAsyncCourseName = !dto.ShortName.Equals(oldCourse.ShortName); //准备课程数据 TblDatCourse course = AutoMapper.Mapper.Map <TblDatCourse>(dto); course.CreateTime = oldCourse.CreateTime; course.UpdateTime = DateTime.Now; course.IsDisabled = oldCourse.IsDisabled; course.CourseId = oldCourse.CourseId; //准备课程级别数据 List <TblDatCourseLevelMiddle> courseLevelMiddles = dto.CourseLevels.Select(c => new TblDatCourseLevelMiddle { CourseLevelMiddleId = IdGenerator.NextId(), CourseId = course.CourseId, BeginAge = c.SAge, EndAge = c.EAge, CourseLevelId = c.CourseLevelId, Duration = c.Duration, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, }).ToList(); await _courseRepository.Value.UpdateTask(course); await _courseLevelMiddleRepository.Value.BatchDeleteByCourseId(course.CourseId); await _courseLevelMiddleRepository.Value.AddTask(courseLevelMiddles); //课程简称发生变化,则学习计划同步课程简称 if (isAsyncCourseName) { Dictionary <long, string> keyValues = new Dictionary <long, string>(); keyValues.Add(course.CourseId, course.ShortName); //学习计划同步课程简称 StudyPlanService.AsyncCourseName(keyValues); } }
/// <summary> /// 获取的排课详情 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-06</para> /// </summary> /// <param name="enrollOrderItemId">报名课程订单Id</param> /// <returns>学生报名一个课程的排课详细信息</returns> public MakeLessonDetailResponse GetMakeLessonDetail(long enrollOrderItemId) { MakeLessonDetailResponse res = new MakeLessonDetailResponse { CourseInfos = new List <CourseInformation>() }; TblOdrEnrollOrderItem enrollOrderItem = _enrollOrderItemRepository.Load(enrollOrderItemId); TblOdrEnrollOrder enrollOrder = _enrollOrderRepository.Load(enrollOrderItem.EnrollOrderId); TblDatCourse course = CourseService.GetByCourseId(enrollOrderItem.CourseId); res.RegisterInfo = new RegisterInformation() { ClassTimes = enrollOrderItem.ClassTimes, ClassTimesUse = enrollOrderItem.ClassTimesUse, CourseName = string.Empty, LevelName = CourseLevelService.GetById(enrollOrderItem.CourseLevelId)?.LevelCnName ?? string.Empty, Year = enrollOrderItem.Year, CourseType = CourseType.Elective, TermTypeId = enrollOrderItem.TermTypeId, TermTypeName = TermTypeService.GetTermTypeName(enrollOrderItem.TermTypeId), EnrollDate = enrollOrder.CreateTime }; if (course != null) { res.RegisterInfo.CourseName = course.ShortName; res.RegisterInfo.CourseType = CourseType.Compulsory; } List <TblTimMakeLesson> makeLessons = _makeLessonRepository.GetUnconfirmedMakeLessonList(enrollOrderItem.EnrollOrderItemId); if (makeLessons.Any()) { List <long> classIds = makeLessons.Select(x => x.ClassId).ToList(); List <TblDatClass> classes = DefaultClassService.GetClassByClassIdAsync(classIds).Result; List <ViewRoomCourse> classRooms = ClassRoomService.GetClassRoomBySchoolId(enrollOrder.SchoolId); //老师 var teacherList = TeachService.GetTeachers(); foreach (var makeLesson in makeLessons) { var classInfo = classes.FirstOrDefault(x => x.ClassId == makeLesson.ClassId); var classSchoolTimes = new DefaultClassService(classInfo.ClassId).ClassSchoolTimes; //老师信息 var teacher = teacherList.FirstOrDefault(x => x.TeacherId == classInfo.TeacherId); CourseInformation courseInformation = new CourseInformation { ClassId = classInfo.ClassId, Year = enrollOrderItem.Year, ClassNo = classInfo.ClassNo, ClassTimesUse = makeLesson.ClassTimes, CourseName = course?.ShortName ?? string.Empty, FirstClassTime = makeLesson.FirstClassTime, RoomNo = classRooms.FirstOrDefault(x => x.ClassRoomId == classInfo.ClassRoomId)?.RoomNo ?? string.Empty, LevelName = CourseLevelService.GetById(classInfo.CourseLeveId)?.LevelCnName ?? string.Empty, TeacherName = teacher?.TeacherName ?? string.Empty, TermName = TermService.GetTermByTermId(classInfo.TermId)?.TermName ?? string.Empty, Week = classSchoolTimes.Select(x => x.WeekDay) .Distinct() .OrderBy(x => x) .Select(x => WeekDayConvert.IntToString(x)) .ToList(), PeriodTime = new List <string>() }; foreach (var item in classSchoolTimes) { string time = item.BeginTime + "-" + item.EndTime; if (courseInformation.PeriodTime.Any(x => x == time)) { continue; } courseInformation.PeriodTime.Add(time); } res.CourseInfos.Add(courseInformation); } } return(res); }