コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }