|  | @@ -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);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |