/// <summary> /// 生成课程学习计划(包括寒假特训营和暑假特训营) /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-05</para> /// </summary> /// <param name="term">课程学习计划详情对象</param> /// <param name="numbers">个数</param> /// <param name="seasonName">季节名称</param> /// <returns>学习课程计划详细信息</returns> private StudyPlanTermResponse GenerateStudyPlanTerm(TblOdrStudyPlanTerm term, int numbers, string seasonName) { StudyPlanTermResponse termResponse = new StudyPlanTermResponse { Season = seasonName }; //校区存在学习计划学期,则生成寒假特训营(包括一个和两个的课程)/暑假特训营(包括一个、两个和三个的课程)的课程 if (term != null) { for (int j = 1; j < numbers; j++) { StudyPlanTermItemResponse termItem = new StudyPlanTermItemResponse { ClassTimes = term.Classes90 * j, Name = j.GetNumberCnName() + OrdersConstants.Piece, TermTypeId = term.TermTypeId, MaterialFee = term.MaterialFee, TuitionFee = term.TuitionFee, Duration = 90 }; termResponse.Data.Add(termItem); } } return(termResponse); }
/// <summary> /// 根据出生日期,生成每季节对应的学习计划 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-29</para> /// </summary> /// <param name="studyPlanTermList">获取校区学期类型信息</param> /// <param name="birthday">出生日期</param> /// <returns>学生课程计划列表</returns> private List <StudyPlanResponse> GetStudyPlanBySeasons(IEnumerable <TblOdrStudyPlanTerm> studyPlanTermList, DateTime birthday) { List <StudyPlanResponse> result = new List <StudyPlanResponse>(); //学生课程计划列表 var studyPlanList = _repository.Value.GetList(_schoolId).Result; //校区课程信息 List <SeasonType> seasonList = GetSeasonList(); //季节 TblOdrStudyPlanTerm term = null; //报名学习计划学期信息 int year = 0; //年份 int maxValue = 3; //年份界限值 //从当前年份开始,以年份界限进行循环,生成年份的学习计划课程 for (int i = 0; i < maxValue; i++) { year = DateTime.Now.Year + i; var studyPlanTerms = studyPlanTermList.Where(a => a.Year == year); StudyPlanResponse studyPlanResponse = new StudyPlanResponse { Year = year }; //循环四个季节,生成季节的学习计划课程 foreach (var season in seasonList) { switch (season) { case SeasonType.Spring: //春 term = studyPlanTerms.FirstOrDefault(a => a.Year == year && a.TermTypeId == ClientConfigManager.AppsettingsConfig.TermType.Spring); studyPlanResponse.Data.Add(GenerateStudyPlanTerm(term, studyPlanList, birthday, season.ToString())); break; case SeasonType.Summer: //夏 term = studyPlanTerms.FirstOrDefault(a => a.Year == year && a.TermTypeId == ClientConfigManager.AppsettingsConfig.TermType.Summer); studyPlanResponse.Data.Add(GenerateStudyPlanTerm(term, 4, season.ToString())); break; case SeasonType.Autumn: //秋 term = studyPlanTerms.FirstOrDefault(a => a.Year == year && a.TermTypeId == ClientConfigManager.AppsettingsConfig.TermType.Autumn); studyPlanResponse.Data.Add(GenerateStudyPlanTerm(term, studyPlanList, birthday, season.ToString())); break; case SeasonType.Winter: //冬 term = studyPlanTerms.FirstOrDefault(a => a.Year == year && a.TermTypeId == ClientConfigManager.AppsettingsConfig.TermType.Winter); studyPlanResponse.Data.Add(GenerateStudyPlanTerm(term, 3, season.ToString())); break; default: break; } } result.Add(studyPlanResponse); } return(result); }
/// <summary> /// 根据分钟获取对应的课次 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-05</para> /// </summary> /// <param name="duration"></param> /// <param name="term"></param> /// <returns>课次</returns> private int GetClassTimesByMinutes(TblOdrStudyPlanTerm term, int duration) { switch (duration) { case 60: return(term.Classes60); case 90: return(term.Classes90); case 180: return(term.Classes180); default: return(0); } }
/// <summary> /// 生成课程学习计划(包括春季班和秋季班) /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-05</para> /// </summary> /// <param name="term">课程学习计划详情对象</param> /// <param name="studyPlanList">课程学习计划对象</param> /// <param name="birthday">出生日期</param> /// <param name="seasonName">季节名称</param> /// <returns>学习课程计划详细信息</returns> private StudyPlanTermResponse GenerateStudyPlanTerm(TblOdrStudyPlanTerm term, List <TblOdrStudyPlan> studyPlanList, DateTime birthday, string seasonName) { StudyPlanTermResponse springTermResponse = new StudyPlanTermResponse { Season = seasonName }; //校区存在学习计划学期,则生成春季班/秋季班的课程(包括必修课和选修课) if (term != null) { int age = Age.GetAgeByDate(birthday, term.BeginDate);//学生年龄 //根据学生年龄,获取对应的学习计划课程 var studyPlan = studyPlanList.FirstOrDefault(a => a.Age == age); if (studyPlan != null) { //必修课 StudyPlanTermItemResponse requiredItem = new StudyPlanTermItemResponse { ClassTimes = GetClassTimesByMinutes(term, studyPlan.Duration),//计算出课次 Name = studyPlan.CourseName + (studyPlan.CourseLevelName == OrdersConstants.Nothing ? "" : studyPlan.CourseLevelName.Replace(OrdersConstants.Level, "")), CourseId = studyPlan.CourseId, CourseLevelId = studyPlan.CourseLevelId, CourseType = CourseType.Compulsory, TermTypeId = term.TermTypeId, MaterialFee = term.MaterialFee, TuitionFee = term.TuitionFee, Duration = studyPlan.Duration }; springTermResponse.Data.Add(requiredItem); } //选修课 StudyPlanTermItemResponse optionalItem = new StudyPlanTermItemResponse { Name = OrdersConstants.OptionalLesson, ClassTimes = term.Classes90, CourseType = CourseType.Elective, TermTypeId = term.TermTypeId, MaterialFee = term.MaterialFee, TuitionFee = term.TuitionFee, Duration = 90 }; springTermResponse.Data.Add(optionalItem); } return(springTermResponse); }