/// <summary> /// 获取已安排补课或调课的详情 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2019-03-12</para> /// </summary> /// <param name="studentId">学生Id</param> /// <param name="lessonId">课次ID</param> /// <returns>调课详情/补课详情</returns> public StudentReplenishLessonsResponse GetStudentReplenishLessons(long studentId, long lessonId) { var studentAttendance = _viewCompleteStudentAttendanceRepository.Value.GetLesson(lessonId); if (studentAttendance == null) { //未找到该学生的补课信息 throw new BussinessException(ModelType.Timetable, 47); } if (studentAttendance.StudentId != studentId) { //未找到该学生的补课信息 throw new BussinessException(ModelType.Timetable, 47); } //获取一个班级学生的课次信息 var stuDayAttendances = _viewCompleteStudentAttendanceRepository.Value.GetStudetnDayLessonList( studentAttendance.SchoolId, studentAttendance.ClassId, studentAttendance.ClassDate, studentId, LessonType.RegularCourse); var lessonIds = stuDayAttendances.Select(x => x.LessonId).ToList(); var stuLessons = _viewTimReplenishLessonStudentRepository.Value.GetLessonListByParentLessonId(lessonIds); if (stuLessons == null || !stuLessons.Any()) { //未找到该学生的补课信息 throw new BussinessException(ModelType.Timetable, 47); } var stuLesson = stuLessons.OrderBy(x => x.ClassBeginTime).FirstOrDefault(); string classTime = string.Join(" ", stuLessons.Select(x => x.ClassBeginTime + "-" + x.ClassEndTime)); var classInfo = new DefaultClassService(stuLesson.ClassId).TblDatClass; StudentReplenishLessonsResponse res = new StudentReplenishLessonsResponse { ClassId = stuLesson.ClassId, ClassName = CourseService.GetByCourseId(stuLesson.CourseId)?.ClassCnName, ClassRoom = new ClassRoomService(stuLesson.ClassRoomId).ClassRoomInfo?.RoomNo, ClassTime = classTime, ClassDate = stuLesson.ClassDate.ToString("yyyy.MM.dd"), ClassNo = new DefaultClassService(stuLesson.ClassId).TblDatClass?.ClassNo, TeacherName = TeachService.GetTeacher(stuLesson.TeacherId)?.TeacherName, Week = WeekDayConvert.DayOfWeekToString(stuLesson.ClassDate.DayOfWeek) }; return(res); }
/// <summary> /// 获取班级信息 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-11-02</para> /// </summary> /// <param name="datClass">班级信息</param> /// <param name="companyId">公司编号</param> /// <returns>返回班级详细信息</returns> /// <exception cref="BussinessException"> /// 异常ID:7,数据异常 /// </exception> private static ClassDetailResponse GetClassInfo(TblDatClass datClass, string companyId) { ClassDetailResponse dto = new ClassDetailResponse { ClassId = datClass.ClassId, ClassNo = datClass.ClassNo, RoomCourseId = datClass.RoomCourseId, ClassRoomId = datClass.ClassRoomId, CourseId = datClass.CourseId, CourseLeveId = datClass.CourseLeveId, TermId = datClass.TermId, CourseNum = datClass.CourseNum, StudentsNum = datClass.StudentsNum, SurplusNum = datClass.StudentsNum, }; if (dto == null) { throw new BussinessException((byte)ModelType.SignUp, 7); } //1、课程名称,课程等级 CourseResponse course = new CourseService(companyId).GetCourseDetailsAsync(dto.CourseId).Result; if (course != null) { dto.CourseName = course.CourseCnName; dto.CourseLeveName = course.CourseLevels.FirstOrDefault(m => m.CourseLevelId == dto.CourseLeveId) ?.CourseLevelName; } dto.TeachName = TeachService.GetTeacher(datClass.TeacherId)?.TeacherName; dto.TermName = TermService.GetTermByTermId(dto.TermId)?.TermName; //2、门牌号 dto.ClassRoomName = new ClassRoomService(dto.ClassRoomId).ClassRoomInfo?.RoomNo; //、计算出剩余学位数 dto.SurplusNum = dto.StudentsNum - MakeLessonService.GetClassScheduleNum(dto.ClassId); //3、获取上课时间段数据 dto.SchoolTimeList = GetDatSchoolTimeInfo(dto.ClassId); dto.ClassTime = GetSchoolTime(datClass.ClassId); return(dto); }
/// <summary> /// 微信通知 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2019-03-15</para> /// </summary> private void PushWeChatNotice() { var stuInfo = StudentService.GetStudentInfo(_request.StudentId); var inLesson = this._inLessonList.FirstOrDefault(); string pushClassTime = this._outLessonList .Select(x => DateTime.Parse(x.ClassDate.ToString("yyyy-MM-dd") + " " + x.ClassBeginTime)) .Min().ToString("yyyy.MM.dd HH:mm"); //first={0}家长,您好!因{1}于{2}请假,为了保证孩子的学习效果,我们特别为孩子安排了补课,具体时间如下: string title = string.Format( ClientConfigManager.HssConfig.WeChatTemplateTitle.MakeupNotice, stuInfo.StudentName, stuInfo.StudentName, pushClassTime); //keyword1=上课时间 var classTimeList = this._inLessonList.Select(x => x.ClassBeginTime + "-" + x.ClassEndTime); string classTime = $"{inLesson.ClassDate.ToString("yyyy.MM.dd")} {string.Join("、", classTimeList)}"; //keyword2=班级名称 string className = CourseService.GetByCourseId(inLesson.CourseId)?.ClassCnName ?? string.Empty; //keyword3=教室 string classRoom = new ClassRoomService(inLesson.ClassRoomId)?.ClassRoomInfo?.RoomNo ?? string.Empty; //keyword4=老师名称 string teacherName = TeachService.GetTeacher(inLesson.TeacherId)?.TeacherName ?? string.Empty; //remark=校区名称 string schoolName = OrgService.GetSchoolBySchoolId(_schoolId)?.SchoolName ?? string.Empty; WxNotifyProducerService wxNotifyProducerService = WxNotifyProducerService.Instance; WxNotifyInDto wxNotify = new WxNotifyInDto { Data = new List <WxNotifyItemInDto> { new WxNotifyItemInDto { DataKey = "first", Value = title }, new WxNotifyItemInDto { DataKey = "keyword1", Value = classTime }, new WxNotifyItemInDto { DataKey = "keyword2", Value = className }, new WxNotifyItemInDto { DataKey = "keyword3", Value = classRoom }, new WxNotifyItemInDto { DataKey = "keyword4", Value = teacherName }, new WxNotifyItemInDto { DataKey = "remark", Value = schoolName } }, ToUser = StudentService.GetWxOpenId(stuInfo), TemplateId = WeChatTemplateConstants.MakeupNotice, Url = string.Empty }; wxNotifyProducerService.Publish(wxNotify); }