浏览代码

添加日程安排

肖玮 5 年之前
父节点
当前提交
bd6ea4a48d

+ 12 - 3
mec-education/src/main/java/com/ym/mec/education/controller/TeacherController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.education.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.req.HomeWorkReq;
@@ -44,7 +45,6 @@ public class TeacherController {
 
 
     /**
-     *
      * @param req
      * @return
      */
@@ -60,12 +60,21 @@ public class TeacherController {
     }
 
     /**
-     *
      * @return
      */
     @PostMapping(value = "/teacherVipClass")
-    public PageResponse teacherVipClass(@RequestBody TeacherReq req){
+    public PageResponse teacherVipClass(@RequestBody TeacherReq req) {
 
         return teacherService.teacherVipClass(req);
     }
+
+    /**
+     * 老师的日程安排
+     * @param teacherReq
+     * @return
+     */
+    @PostMapping("/dailySchedule")
+    public PageResponse dailySchedule(@RequestBody TeacherReq teacherReq) {
+        return teacherService.dailySchedule(teacherReq);
+    }
 }

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/enums/SignStatusEnum.java

@@ -3,7 +3,7 @@ package com.ym.mec.education.enums;
 import com.ym.mec.common.enums.BaseEnum;
 import java.util.Arrays;
 
-//状态(1正常签到,0异常签到,2正常签退)
+//老师签到状态(1正常签到,0异常签到,2正常签退)
 public enum SignStatusEnum implements BaseEnum<Integer, SignStatusEnum> {
     SIGN(1,"正常签到"),
     EXCEPTION(0,"异常签到"),

+ 4 - 0
mec-education/src/main/java/com/ym/mec/education/req/TeacherReq.java

@@ -4,6 +4,7 @@ import com.ym.mec.education.base.BaseQuery;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.ToString;
+import java.util.Date;
 
 /**
  * @version V1.0
@@ -18,4 +19,7 @@ public class TeacherReq extends BaseQuery {
 
     @ApiModelProperty(value = "老师编号")
     private Integer userId;
+
+    @ApiModelProperty(value = "日程安排时间")
+    private Date date;
 }

+ 34 - 0
mec-education/src/main/java/com/ym/mec/education/resp/TeacherDailyScheduleResp.java

@@ -0,0 +1,34 @@
+package com.ym.mec.education.resp;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+
+/**
+ * @program: mec
+ * @description: 老师日程安排
+ * @author: xw
+ * @create: 2019-10-08 17:24
+ */
+@Data
+@ApiModel(description = "老师日程安排")
+@Accessors(chain = true)
+public class TeacherDailyScheduleResp implements Serializable {
+
+    @ApiModelProperty(value = "课程类型")
+    private String courseType;
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+    @ApiModelProperty(value = "老师签到情况")
+    private String signInStatus;
+    @ApiModelProperty(value = "到课比")
+    private String attendanceRate;
+    @ApiModelProperty(value = "请假人数")
+    private Integer leaveNum;
+    @ApiModelProperty(value = "上课时间")
+    private String classTime;
+    @ApiModelProperty(value = "学校名称")
+    private String schoolName;
+}

+ 2 - 0
mec-education/src/main/java/com/ym/mec/education/service/ITeacherService.java

@@ -21,4 +21,6 @@ public interface ITeacherService extends IService<Teacher> {
     BaseResponse teacherDetail(TeacherReq req);
 
     PageResponse teacherVipClass(TeacherReq req);
+
+    PageResponse dailySchedule(TeacherReq req);
 }

+ 2 - 1
mec-education/src/main/java/com/ym/mec/education/service/impl/StudentAttendanceServiceImpl.java

@@ -76,7 +76,8 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceM
         QueryWrapper<StudentAttendance> leaveWrapper = new QueryWrapper<>();
         QueryWrapper<StudentAttendance> normalWrapper = new QueryWrapper<>();
         //总人数
-        Integer totalCount = count();
+        queryWrapper.lambda().eq(StudentAttendance::getClassGroupId, classGroupReq.getGroupId());
+        Integer totalCount = count(queryWrapper);
         //请假
         leaveWrapper.lambda().eq(true, StudentAttendance::getClassGroupId, classGroupReq.getGroupId())
                 .eq(true, StudentAttendance::getStatus, StudentAttendanceStatusEnum.LEAVE.getCode());

+ 148 - 69
mec-education/src/main/java/com/ym/mec/education/service/impl/TeacherServiceImpl.java

@@ -4,19 +4,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.ym.mec.common.security.AuthUser;
+import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.entity.*;
-import com.ym.mec.education.enums.ClassGroupTypeEnum;
-import com.ym.mec.education.enums.CourseStatusEnum;
-import com.ym.mec.education.enums.ReturnCodeEnum;
+import com.ym.mec.education.enums.*;
 import com.ym.mec.education.mapper.TeacherMapper;
 import com.ym.mec.education.req.TeacherReq;
+import com.ym.mec.education.resp.TeacherDailyScheduleResp;
 import com.ym.mec.education.resp.TeacherDetailResp;
 import com.ym.mec.education.resp.TeacherResp;
 import com.ym.mec.education.resp.VipGroupClassResp;
 import com.ym.mec.education.service.*;
 import com.ym.mec.education.utils.DateUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -65,34 +68,43 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
 
     @Autowired
     private ICourseScheduleService courseScheduleService;
+    @Autowired
+    private ITeacherAttendanceService teacherAttendanceService;
+    @Autowired
+    private IStudentAttendanceService studentAttendanceService;
 
 
     @Autowired
     private IVipGroupDefaultClassesCycleService vipGroupDefaultClassesCycleService;
+    @Autowired
+    private IMusicGroupService musicGroupService;
+    @Autowired
+    private ISchoolService schoolService;
+
     @Override
     public PageResponse teacherList(TeacherReq req) {
         PageResponse response = new PageResponse();
         QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<>();
         List<SysUser> userList = null;
-        if(req != null && StringUtils.isEmpty(req.getName())){
-            userQueryWrapper.like("real_name_",req.getName());
+        if (req != null && StringUtils.isEmpty(req.getName())) {
+            userQueryWrapper.like("real_name_", req.getName());
             userList = sysUserService.list(userQueryWrapper);
         }
         QueryWrapper<Teacher> queryWrapper = new QueryWrapper<>();
         List<Integer> userIds = null;
-        if(!CollectionUtils.isEmpty(userList)){
+        if (!CollectionUtils.isEmpty(userList)) {
             userIds = userList.stream().map(SysUser::getId).collect(Collectors.toList());
-            queryWrapper.in("id_",userIds);
+            queryWrapper.in("id_", userIds);
         }
 
 
-        IPage<Teacher> page = new Page(req.getPageNo() == null ? 1 : req.getPageNo(),req.getPageSize() == null ? 10 : req.getPageSize());
-        IPage<Teacher> teacherIPage = this.page(page,queryWrapper);
+        IPage<Teacher> page = new Page(req.getPageNo() == null ? 1 : req.getPageNo(), req.getPageSize() == null ? 10 : req.getPageSize());
+        IPage<Teacher> teacherIPage = this.page(page, queryWrapper);
 
         List<Teacher> teacherList = teacherIPage.getRecords();
         List<TeacherResp> teacherRespList = new ArrayList<>();
-        if(!CollectionUtils.isEmpty(teacherList)){
-            teacherList.forEach(e ->{
+        if (!CollectionUtils.isEmpty(teacherList)) {
+            teacherList.forEach(e -> {
                 TeacherResp teacherResp = new TeacherResp();
                 String ids[] = e.getSubjectId().split(",");
                 List<String> stringB = Arrays.asList(ids);
@@ -105,19 +117,19 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
                 }
                 teacherResp.setUserId(e.getId());
                 SysUser sysUser = sysUserService.getById(e.getId());
-                if(sysUser != null){
+                if (sysUser != null) {
                     teacherResp.setAvatar(sysUser.getAvatar());
                     teacherResp.setName(sysUser.getRealName());
                 }
                 QueryWrapper<ClassGroupTeacherMapper> queryWrapper1 = new QueryWrapper<>();
-                queryWrapper1.eq("user_id_",e.getId());
+                queryWrapper1.eq("user_id_", e.getId());
                 List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperService.list(queryWrapper1);
-                if(!CollectionUtils.isEmpty(classGroupTeacherMappers)){
+                if (!CollectionUtils.isEmpty(classGroupTeacherMappers)) {
                     List<Integer> classId = classGroupTeacherMappers.stream().map(ClassGroupTeacherMapper::getClassGroupId).collect(Collectors.toList());
                     QueryWrapper<ClassGroup> groupQueryWrapper = new QueryWrapper<>();
-                    groupQueryWrapper.eq("id_",classId);
+                    groupQueryWrapper.eq("id_", classId);
                     List<ClassGroup> classGroups = classGroupService.list(groupQueryWrapper);
-                    if(!CollectionUtils.isEmpty(classGroups)){
+                    if (!CollectionUtils.isEmpty(classGroups)) {
                         List<String> className = classGroups.stream().map(ClassGroup::getName).collect(Collectors.toList());
 
                         teacherResp.setClassName(className);
@@ -139,61 +151,60 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
     public BaseResponse teacherDetail(TeacherReq req) {
 
         TeacherDetailResp teacherDetailResp = new TeacherDetailResp();
-        if(req == null || req.getUserId() == null){
-            return  BaseResponse.errorParam();
+        if (req == null || req.getUserId() == null) {
+            return BaseResponse.errorParam();
         }
         QueryWrapper<ClassGroupTeacherMapper> mapperQueryWrapper = new QueryWrapper<>();
-        mapperQueryWrapper.eq("user_id_",req.getUserId());
-        List<ClassGroupTeacherMapper> groupTeacherMapperList =  classGroupTeacherMapperService.list(mapperQueryWrapper);
+        mapperQueryWrapper.eq("user_id_", req.getUserId());
+        List<ClassGroupTeacherMapper> groupTeacherMapperList = classGroupTeacherMapperService.list(mapperQueryWrapper);
 
-        if(!CollectionUtils.isEmpty(groupTeacherMapperList)){
-            List<Integer> classIds = groupTeacherMapperList.stream().map(ClassGroupTeacherMapper :: getClassGroupId).collect(Collectors.toList());
+        if (!CollectionUtils.isEmpty(groupTeacherMapperList)) {
+            List<Integer> classIds = groupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getClassGroupId).collect(Collectors.toList());
             QueryWrapper<ClassGroup> queryWrapper = new QueryWrapper<>();
-            queryWrapper.in("id_",classIds);
+            queryWrapper.in("id_", classIds);
             List<ClassGroup> classGroups = classGroupService.list(queryWrapper);
-            if(!CollectionUtils.isEmpty(classGroups)){
+            if (!CollectionUtils.isEmpty(classGroups)) {
                 List<ClassGroup> norClass = classGroups.stream().filter(e -> ClassGroupTypeEnum.NORMAL.getCode().equalsIgnoreCase(e.getType()) ||
-                                ClassGroupTypeEnum.MIX.getCode().equalsIgnoreCase(e.getType()) ||  ClassGroupTypeEnum.HIGH.getCode().equalsIgnoreCase(e.getType())).collect(Collectors.toList());
+                    ClassGroupTypeEnum.MIX.getCode().equalsIgnoreCase(e.getType()) || ClassGroupTypeEnum.HIGH.getCode().equalsIgnoreCase(e.getType())).collect(Collectors.toList());
 
                 List<ClassGroup> vipClass = classGroups.stream().filter(e -> ClassGroupTypeEnum.VIP.getCode().equalsIgnoreCase(e.getType())).collect(Collectors.toList());
-                if(!CollectionUtils.isEmpty(norClass)){
+                if (!CollectionUtils.isEmpty(norClass)) {
                     Integer norCount = norClass.stream().mapToInt(ClassGroup::getTotalClassTimes).sum();
                     teacherDetailResp.setGroupClassNum(norCount * norClass.size());
                 }
 
-                if(!CollectionUtils.isEmpty(vipClass)){
+                if (!CollectionUtils.isEmpty(vipClass)) {
                     Integer vipCount = vipClass.stream().mapToInt(ClassGroup::getTotalClassTimes).sum();
                     teacherDetailResp.setVipClassNum(vipCount * vipClass.size());
                 }
                 QueryWrapper<DemoGroup> demoGroupQueryWrapper = new QueryWrapper<>();
-                demoGroupQueryWrapper.eq("user_id_",req.getUserId());
+                demoGroupQueryWrapper.eq("user_id_", req.getUserId());
                 List<DemoGroup> demoGroupList = demoGroupService.list(demoGroupQueryWrapper);
-                if(!CollectionUtils.isEmpty(demoGroupList)){
-                    List<Long> demoId = demoGroupList.stream().map(e ->e.getId()).collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(demoGroupList)) {
+                    List<Long> demoId = demoGroupList.stream().map(e -> e.getId()).collect(Collectors.toList());
                     QueryWrapper<DemoGroupCoursesPlan> planQueryWrapper = new QueryWrapper<>();
-                    planQueryWrapper.in("demo_group_id_",demoId);
-                    List<DemoGroupCoursesPlan> demoGroupCoursesPlans =  iDemoGroupCoursesPlanService.list(planQueryWrapper);
-                    if(!CollectionUtils.isEmpty(demoGroupCoursesPlans)){
+                    planQueryWrapper.in("demo_group_id_", demoId);
+                    List<DemoGroupCoursesPlan> demoGroupCoursesPlans = iDemoGroupCoursesPlanService.list(planQueryWrapper);
+                    if (!CollectionUtils.isEmpty(demoGroupCoursesPlans)) {
                         Map<Date, List<DemoGroupCoursesPlan>> collect = demoGroupCoursesPlans.stream()
-                                .collect(
-                                        Collectors.groupingBy(DemoGroupCoursesPlan::getCourseDate));
-
+                            .collect(
+                                Collectors.groupingBy(DemoGroupCoursesPlan::getCourseDate));
 
 
-                        if(!CollectionUtils.isEmpty(collect)) {
+                        if (!CollectionUtils.isEmpty(collect)) {
                             List<TeacherDetailResp.InnerDemoGroup> innerDemoGroups = new ArrayList<>();
                             for (Date key : collect.keySet()) {
                                 TeacherDetailResp.InnerDemoGroup demoGroup = new TeacherDetailResp.InnerDemoGroup();
-                                demoGroup.setDateStr(DateUtil.date2String(key,DateUtil.DATE_FORMAT));
+                                demoGroup.setDateStr(DateUtil.date2String(key, DateUtil.DATE_FORMAT));
                                 demoGroup.setWeek(DateUtil.date2Week(key));
 
                                 List<DemoGroupCoursesPlan> demoGroupCoursesPlans1 = collect.get(key);
-                                if(!CollectionUtils.isEmpty(demoGroupCoursesPlans1)){
+                                if (!CollectionUtils.isEmpty(demoGroupCoursesPlans1)) {
                                     List<TeacherDetailResp.DemoGroupPlan> planList = new ArrayList<>();
-                                    demoGroupCoursesPlans1.forEach(e ->{
+                                    demoGroupCoursesPlans1.forEach(e -> {
                                         TeacherDetailResp.DemoGroupPlan demoGroupPlan = new TeacherDetailResp.DemoGroupPlan();
-                                        demoGroupPlan.setStartTime(DateUtil.date2String(e.getStartTime(),DateUtil.TIME_FORMAT));
-                                        demoGroupPlan.setEndTime(DateUtil.date2String(e.getEndTime(),DateUtil.TIME_FORMAT));
+                                        demoGroupPlan.setStartTime(DateUtil.date2String(e.getStartTime(), DateUtil.TIME_FORMAT));
+                                        demoGroupPlan.setEndTime(DateUtil.date2String(e.getEndTime(), DateUtil.TIME_FORMAT));
                                         planList.add(demoGroupPlan);
                                     });
                                     demoGroup.setDemoGroupPlans(planList);
@@ -202,12 +213,12 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
                             }
 
                             QueryWrapper<CourseSchedule> scheduleQueryWrapper = new QueryWrapper<>();
-                            scheduleQueryWrapper.eq("teacher_id_",req.getUserId());
+                            scheduleQueryWrapper.eq("teacher_id_", req.getUserId());
                             scheduleQueryWrapper.eq("status_", CourseStatusEnum.OVER.getCode());
                             List<CourseSchedule> courseSchedules = courseScheduleService.list(scheduleQueryWrapper);
-                            if(!CollectionUtils.isEmpty(courseSchedules)){
+                            if (!CollectionUtils.isEmpty(courseSchedules)) {
                                 teacherDetailResp.setUsed(courseSchedules.size());
-                            }else{
+                            } else {
                                 teacherDetailResp.setUsed(0);
                             }
 
@@ -221,14 +232,14 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
             }
 
             QueryWrapper<TeacherLeaveRecord> teacherLeaveRecordQueryWrapper = new QueryWrapper<>();
-            teacherLeaveRecordQueryWrapper.eq("user_id_",req.getUserId());
+            teacherLeaveRecordQueryWrapper.eq("user_id_", req.getUserId());
             List<TeacherLeaveRecord> teacherLeaveRecordList = teacherLeaveRecordService.list(teacherLeaveRecordQueryWrapper);
-            if(!CollectionUtils.isEmpty(teacherLeaveRecordList)){
+            if (!CollectionUtils.isEmpty(teacherLeaveRecordList)) {
                 AtomicReference<Integer> count = new AtomicReference<>(0);
-                teacherLeaveRecordList.forEach(e ->{
+                teacherLeaveRecordList.forEach(e -> {
 
-                    Integer hour = DateUtil.subMin(e.getStartTime(),e.getEndTime());
-                    if (hour != null){
+                    Integer hour = DateUtil.subMin(e.getStartTime(), e.getEndTime());
+                    if (hour != null) {
                         count.set(count.get() + hour);
                     }
                 });
@@ -243,56 +254,56 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
     public PageResponse teacherVipClass(TeacherReq req) {
 
         PageResponse response = new PageResponse();
-        if(req == null && req.getUserId() == null){
+        if (req == null && req.getUserId() == null) {
             return PageResponse.errorParam();
         }
 
-        IPage page = new Page(req.getPageNo() == null ? 1 : req.getPageNo(),req.getPageSize() == null ? 10 : req.getPageSize());
+        IPage page = new Page(req.getPageNo() == null ? 1 : req.getPageNo(), req.getPageSize() == null ? 10 : req.getPageSize());
         QueryWrapper<VipGroup> vipGroupQueryWrapper = new QueryWrapper<>();
-        vipGroupQueryWrapper.eq("user_id_",req.getUserId());
-        IPage<VipGroup> vipGroupPage = vipGroupService.page(page,vipGroupQueryWrapper);
+        vipGroupQueryWrapper.eq("user_id_", req.getUserId());
+        IPage<VipGroup> vipGroupPage = vipGroupService.page(page, vipGroupQueryWrapper);
 
         List<VipGroup> vipGroupList = vipGroupPage.getRecords();
         List<VipGroupClassResp> vipGroupClassRespList = new ArrayList<>();
-        if(!CollectionUtils.isEmpty(vipGroupList)){
+        if (!CollectionUtils.isEmpty(vipGroupList)) {
 
-            vipGroupList.forEach(e ->{
+            vipGroupList.forEach(e -> {
                 VipGroupClassResp vipGroupClassResp = new VipGroupClassResp();
                 vipGroupClassResp.setVipGroupName(e.getName());
 
-                VipGroupCategory vipGroupCategory =  vipGroupCategoryService.getById(e.getVipGroupCategoryId());
-                if(vipGroupCategory != null){
+                VipGroupCategory vipGroupCategory = vipGroupCategoryService.getById(e.getVipGroupCategoryId());
+                if (vipGroupCategory != null) {
                     vipGroupClassResp.setVipClassType(vipGroupCategory.getName());
                 }
 
                 QueryWrapper<CourseSchedule> scheduleQueryWrapper = new QueryWrapper<>();
-                scheduleQueryWrapper.eq("teacher_id_",req.getUserId());
+                scheduleQueryWrapper.eq("teacher_id_", req.getUserId());
                 List<CourseSchedule> courseSchedules = courseScheduleService.list(scheduleQueryWrapper);
-                if(!CollectionUtils.isEmpty(courseSchedules)){
-                    courseSchedules.forEach(c ->{
-                        c.setClassDateStr(DateUtil.date2String(c.getClassDate(),DateUtil.DATE_FORMAT_EXTRA));
+                if (!CollectionUtils.isEmpty(courseSchedules)) {
+                    courseSchedules.forEach(c -> {
+                        c.setClassDateStr(DateUtil.date2String(c.getClassDate(), DateUtil.DATE_FORMAT_EXTRA));
 
                     });
-                    Map<String,List<CourseSchedule>> map = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassDateStr));
+                    Map<String, List<CourseSchedule>> map = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassDateStr));
 
-                    if(!CollectionUtils.isEmpty(map)){
+                    if (!CollectionUtils.isEmpty(map)) {
 
                         int count1 = map.size();
-                        int count2 =0;
+                        int count2 = 0;
                         for (Map.Entry<String, List<CourseSchedule>> entry : map.entrySet()) {
 
-                            if(!CollectionUtils.isEmpty(entry.getValue())){
+                            if (!CollectionUtils.isEmpty(entry.getValue())) {
                                 count2 = count2 + entry.getValue().size();
                             }
 
                         }
                         //月平均排課
 
-                        if(count1 <= count2){
+                        if (count1 <= count2) {
                             vipGroupClassResp.setClassNum(1);
-                        }else{
+                        } else {
 
-                            vipGroupClassResp.setClassNum(count2%count1);
+                            vipGroupClassResp.setClassNum(count2 % count1);
                         }
 
                     }
@@ -306,4 +317,72 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
         response.setMessage(ReturnCodeEnum.CODE_200.getValue());
         return response;
     }
+
+    @Override
+    public PageResponse dailySchedule(TeacherReq req) {
+        AuthUser user = SecurityUtils.getUser();
+        Optional<AuthUser> optional = Optional.ofNullable(user);
+        Page<TeacherDailyScheduleResp> pageResult = new Page<>();
+        Integer userId;
+        if (optional.isPresent()) {
+            userId = optional.get().getUserId();
+        } else {
+            if (Objects.isNull(req.getUserId())) {
+                return PageResponse.errorParam();
+            }
+            userId = req.getUserId();
+        }
+        List<TeacherDailyScheduleResp> list = Lists.newArrayList();
+        Page<CourseSchedule> courseSchedulePage = new Page<>(req.getPageNo(), req.getPageSize());
+        QueryWrapper<CourseSchedule> courseScheduleQueryWrapper = new QueryWrapper<>();
+        courseScheduleQueryWrapper.lambda().eq(CourseSchedule::getTeacherId, userId)
+            .eq(Objects.isNull(req.getDate()), CourseSchedule::getClassDate, req.getDate());
+        IPage<CourseSchedule> page = courseScheduleService.page(courseSchedulePage, courseScheduleQueryWrapper);
+        BeanUtils.copyProperties(page, pageResult);
+        if (!CollectionUtils.isEmpty(page.getRecords())) {
+            page.getRecords().forEach(courseSchedule -> {
+                TeacherDailyScheduleResp teacherDailyScheduleResp = new TeacherDailyScheduleResp();
+                teacherDailyScheduleResp.setCourseName(courseSchedule.getName())
+                    .setCourseType(CourseSchedule.CourseScheduleType.getMsgByCode(courseSchedule.getType()));
+                if (Objects.nonNull(courseSchedule.getStartClassTime()) && Objects.nonNull(courseSchedule.getEndClassTime())) {
+                    teacherDailyScheduleResp.setClassTime(DateUtil.time2String(courseSchedule.getStartClassTime()) + "-" +
+                        DateUtil.time2String(courseSchedule.getEndClassTime()));
+                }
+                QueryWrapper<TeacherAttendance> teacherAttendanceQueryWrapper = new QueryWrapper<>();
+                teacherAttendanceQueryWrapper.lambda().eq(TeacherAttendance::getCourseScheduleId, courseSchedule.getId())
+                    .eq(TeacherAttendance::getTeacherId, courseSchedule.getTeacherId())
+                    .eq(TeacherAttendance::getClassGroupId, courseSchedule.getClassGroupId());
+                TeacherAttendance teacherAttendance = teacherAttendanceService.getOne(teacherAttendanceQueryWrapper);
+                Optional.ofNullable(teacherAttendance).ifPresent(attendance -> teacherDailyScheduleResp.setSignInStatus
+                    (SignStatusEnum.getMsgByCode(attendance.getSignInStatus())));
+                //考勤总人数
+                QueryWrapper<StudentAttendance> totalQueryWrapper = new QueryWrapper<>();
+                totalQueryWrapper.lambda().eq(StudentAttendance::getCourseScheduleId, courseSchedule.getId());
+                int totalCount = studentAttendanceService.count(totalQueryWrapper);
+                QueryWrapper<StudentAttendance> leaveWrapper = new QueryWrapper<>();
+                //请假人数
+                leaveWrapper.lambda().eq(StudentAttendance::getCourseScheduleId, courseSchedule.getId())
+                    .eq(StudentAttendance::getStatus, StudentAttendanceStatusEnum.LEAVE.getCode());
+                Integer leaveCount = studentAttendanceService.count(leaveWrapper);
+                //已到人数
+                QueryWrapper<StudentAttendance> normalWrapper = new QueryWrapper<>();
+                normalWrapper.lambda().eq(StudentAttendance::getCourseScheduleId, courseSchedule.getId())
+                    .eq(StudentAttendance::getStatus, StudentAttendanceStatusEnum.NORMAL.getCode());
+                Integer normalCount = studentAttendanceService.count(normalWrapper);
+                teacherDailyScheduleResp.setAttendanceRate(normalCount + "/" + totalCount)
+                    .setLeaveNum(leaveCount);
+                ClassGroup classGroup = classGroupService.getById(courseSchedule.getClassGroupId());
+                if (Objects.nonNull(classGroup)) {
+                    MusicGroup musicGroup = musicGroupService.getById(classGroup.getMusicGroupId());
+                    if (Objects.nonNull(musicGroup)) {
+                        School school = schoolService.getById(musicGroup.getSchoolId());
+                        Optional.ofNullable(school).ifPresent(value -> teacherDailyScheduleResp.setSchoolName(value.getName()));
+                    }
+                }
+                list.add(teacherDailyScheduleResp);
+                pageResult.setRecords(list);
+            });
+        }
+        return PageResponse.success(pageResult);
+    }
 }