Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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);
        }