|  | @@ -4,11 +4,11 @@ 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.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 | 
	
		
			
				|  |  |  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.StudentAttendanceStatusEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.education.enums.TeachTypeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.mapper.VipGroupMapper;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.req.VipGroupReq;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.resp.VipClassAttendanceResp;
 | 
	
	
		
			
				|  | @@ -19,7 +19,6 @@ import com.ym.mec.education.utils.DateUtil;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  import java.util.ArrayList;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Objects;
 | 
	
	
		
			
				|  | @@ -50,28 +49,29 @@ public class VipGroupServiceImpl extends ServiceImpl<VipGroupMapper, VipGroup> i
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private IStudentAttendanceService studentAttendanceService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private IClassGroupTeacherMapperService classGroupTeacherMapperService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public BaseResponse getInfo(VipGroupReq vipGroupReq) {
 | 
	
		
			
				|  |  |          if (Objects.isNull(vipGroupReq.getVipGroupId())) {
 | 
	
		
			
				|  |  |              return BaseResponse.errorParam();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          VipGroupResp vipGroupResp = new VipGroupResp();
 | 
	
		
			
				|  |  | -        QueryWrapper<CourseSchedule> courseScheduleQueryWrapper = new QueryWrapper();
 | 
	
		
			
				|  |  | -        courseScheduleQueryWrapper.lambda().eq(CourseSchedule::getClassGroupId, vipGroupReq.getVipGroupId())
 | 
	
		
			
				|  |  | -                .eq(CourseSchedule::getType, CourseSchedule.CourseScheduleType.VIP.getCode());
 | 
	
		
			
				|  |  | -        CourseSchedule courseSchedule = courseScheduleService.getOne(courseScheduleQueryWrapper);
 | 
	
		
			
				|  |  | -        if (Objects.nonNull(courseSchedule)) {
 | 
	
		
			
				|  |  | -            if (Objects.nonNull(courseSchedule.getTeacherId())) {
 | 
	
		
			
				|  |  | -                Optional.ofNullable(userService.getById(courseSchedule.getTeacherId()))
 | 
	
		
			
				|  |  | -                        .ifPresent(user -> vipGroupResp.setTeacher(user.getRealName()));
 | 
	
		
			
				|  |  | +        QueryWrapper<VipGroupClassGroupMapper> vipGroupClassGroupMapperQueryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +        vipGroupClassGroupMapperQueryWrapper.lambda().eq(VipGroupClassGroupMapper::getVipGroupId, vipGroupReq.getVipGroupId());
 | 
	
		
			
				|  |  | +        VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperService.getOne(vipGroupClassGroupMapperQueryWrapper);
 | 
	
		
			
				|  |  | +        if (Objects.nonNull(vipGroupClassGroupMapper)) {
 | 
	
		
			
				|  |  | +            QueryWrapper<ClassGroupTeacherMapper> classGroupTeacherMapperQueryWrapper = new QueryWrapper();
 | 
	
		
			
				|  |  | +            classGroupTeacherMapperQueryWrapper.lambda().eq(ClassGroupTeacherMapper::getClassGroupId, vipGroupClassGroupMapper.getClassGroupId())
 | 
	
		
			
				|  |  | +                    .eq(ClassGroupTeacherMapper::getTeacherRole, TeachTypeEnum.BISHOP.getCode());
 | 
	
		
			
				|  |  | +            ClassGroupTeacherMapper classGroupTeacherMapper = classGroupTeacherMapperService.getOne(classGroupTeacherMapperQueryWrapper);
 | 
	
		
			
				|  |  | +            if (Objects.nonNull(classGroupTeacherMapper)) {
 | 
	
		
			
				|  |  | +                Optional.ofNullable(userService.getById(classGroupTeacherMapper.getUserId())).
 | 
	
		
			
				|  |  | +                        ifPresent(sysUser -> vipGroupResp.setTeacher(sysUser.getRealName()));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        QueryWrapper<ClassGroup> classGroupQueryWrapper = new QueryWrapper();
 | 
	
		
			
				|  |  | -        classGroupQueryWrapper.lambda().eq(ClassGroup::getMusicGroupId, vipGroupReq.getVipGroupId())
 | 
	
		
			
				|  |  | -                .eq(ClassGroup::getType, ClassGroupTypeEnum.VIP.getCode());
 | 
	
		
			
				|  |  | -        List<ClassGroup> classGroupList = classGroupService.list(classGroupQueryWrapper);
 | 
	
		
			
				|  |  | -        if (!CollectionUtils.isEmpty(classGroupList)) {
 | 
	
		
			
				|  |  | -            classGroupList.stream().findFirst().ifPresent(classGroup -> {
 | 
	
		
			
				|  |  | +            ClassGroup classGroupResult = classGroupService.getById(vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | +            Optional.ofNullable(classGroupResult).ifPresent(classGroup -> {
 | 
	
		
			
				|  |  |                  if (Objects.nonNull(classGroup.getCurrentClassTimes()) && Objects.nonNull(classGroup.getTotalClassTimes())) {
 | 
	
		
			
				|  |  |                      vipGroupResp.setCourseProgress(classGroup.getCurrentClassTimes() + "/" + classGroup.getTotalClassTimes());
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -93,41 +93,42 @@ public class VipGroupServiceImpl extends ServiceImpl<VipGroupMapper, VipGroup> i
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 点名记录
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  |       * @param vipGroupReq
 | 
	
		
			
				|  |  |       * @return
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageResponse courseList(VipGroupReq vipGroupReq) {
 | 
	
		
			
				|  |  |          QueryWrapper<VipGroupClassGroupMapper> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -        queryWrapper.eq("vip_group_id_",vipGroupReq.getVipGroupId());
 | 
	
		
			
				|  |  | +        queryWrapper.eq("vip_group_id_", vipGroupReq.getVipGroupId());
 | 
	
		
			
				|  |  |          VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperService.getOne(queryWrapper);
 | 
	
		
			
				|  |  | -        if(vipGroupClassGroupMapper == null){
 | 
	
		
			
				|  |  | +        if (vipGroupClassGroupMapper == null) {
 | 
	
		
			
				|  |  |              return PageResponse.errorParam();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          PageResponse response = new PageResponse();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        IPage page = new Page(vipGroupReq.getPageNo() == null ? 1: vipGroupReq.getPageNo(),vipGroupReq.getPageSize() == null ? 10: vipGroupReq.getPageSize());
 | 
	
		
			
				|  |  | +        IPage page = new Page(vipGroupReq.getPageNo() == null ? 1 : vipGroupReq.getPageNo(), vipGroupReq.getPageSize() == null ? 10 : vipGroupReq.getPageSize());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          QueryWrapper<CourseSchedule> scheduleQueryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -        scheduleQueryWrapper.eq("class_group_id_",vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | -        IPage<CourseSchedule> scheduleIPage = courseScheduleService.page(page,scheduleQueryWrapper);
 | 
	
		
			
				|  |  | +        scheduleQueryWrapper.eq("class_group_id_", vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | +        IPage<CourseSchedule> scheduleIPage = courseScheduleService.page(page, scheduleQueryWrapper);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<VipClassScheduleResp> vipClassScheduleRespList = new ArrayList<>();
 | 
	
		
			
				|  |  |          List<CourseSchedule> courseSchedules = scheduleIPage.getRecords();
 | 
	
		
			
				|  |  | -        if(!CollectionUtils.isEmpty(courseSchedules)){
 | 
	
		
			
				|  |  | +        if (!CollectionUtils.isEmpty(courseSchedules)) {
 | 
	
		
			
				|  |  |              ClassGroup classGroup = classGroupService.getById(vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | -            courseSchedules.forEach(e ->{
 | 
	
		
			
				|  |  | +            courseSchedules.forEach(e -> {
 | 
	
		
			
				|  |  |                  VipClassScheduleResp vipClassScheduleResp = new VipClassScheduleResp();
 | 
	
		
			
				|  |  |                  vipClassScheduleResp.setClassGroupId(e.getClassGroupId());
 | 
	
		
			
				|  |  |                  vipClassScheduleResp.setClassName(e.getName());
 | 
	
		
			
				|  |  | -                vipClassScheduleResp.setDateStr(DateUtil.date2String(e.getClassDate(),DateUtil.DATE_FORMAT));
 | 
	
		
			
				|  |  | -                vipClassScheduleResp.setStartTime(DateUtil.date2String(e.getStartClassTime(),DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  | -                vipClassScheduleResp.setEndTime(DateUtil.date2String(e.getEndClassTime(),DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  | +                vipClassScheduleResp.setDateStr(DateUtil.date2String(e.getClassDate(), DateUtil.DATE_FORMAT));
 | 
	
		
			
				|  |  | +                vipClassScheduleResp.setStartTime(DateUtil.date2String(e.getStartClassTime(), DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  | +                vipClassScheduleResp.setEndTime(DateUtil.date2String(e.getEndClassTime(), DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  |                  vipClassScheduleResp.setStatus(e.getStatus());
 | 
	
		
			
				|  |  |                  vipClassScheduleResp.setWeek(DateUtil.date2Week(e.getClassDate()));
 | 
	
		
			
				|  |  | -                if(classGroup != null){
 | 
	
		
			
				|  |  | +                if (classGroup != null) {
 | 
	
		
			
				|  |  |                      vipClassScheduleResp.setCurrentNum(classGroup.getCurrentClassTimes());
 | 
	
		
			
				|  |  |                      vipClassScheduleResp.setTotalNum(classGroup.getTotalClassTimes());
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -144,7 +145,6 @@ public class VipGroupServiceImpl extends ServiceImpl<VipGroupMapper, VipGroup> i
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * @param vipGroupReq
 | 
	
		
			
				|  |  |       * @return
 | 
	
	
		
			
				|  | @@ -152,45 +152,45 @@ public class VipGroupServiceImpl extends ServiceImpl<VipGroupMapper, VipGroup> i
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageResponse attendanceList(VipGroupReq vipGroupReq) {
 | 
	
		
			
				|  |  |          QueryWrapper<VipGroupClassGroupMapper> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -        queryWrapper.eq("vip_group_id_",vipGroupReq.getVipGroupId());
 | 
	
		
			
				|  |  | +        queryWrapper.eq("vip_group_id_", vipGroupReq.getVipGroupId());
 | 
	
		
			
				|  |  |          VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperService.getOne(queryWrapper);
 | 
	
		
			
				|  |  | -        if(vipGroupClassGroupMapper == null){
 | 
	
		
			
				|  |  | +        if (vipGroupClassGroupMapper == null) {
 | 
	
		
			
				|  |  |              return PageResponse.errorParam();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          PageResponse response = new PageResponse();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        IPage page = new Page(vipGroupReq.getPageNo() == null ? 1: vipGroupReq.getPageNo(),vipGroupReq.getPageSize() == null ? 10: vipGroupReq.getPageSize());
 | 
	
		
			
				|  |  | +        IPage page = new Page(vipGroupReq.getPageNo() == null ? 1 : vipGroupReq.getPageNo(), vipGroupReq.getPageSize() == null ? 10 : vipGroupReq.getPageSize());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          QueryWrapper<StudentAttendance> studentAttendanceQueryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -        studentAttendanceQueryWrapper.eq("class_group_id_",vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | -        IPage<StudentAttendance> studentAttendanceIPage = studentAttendanceService.page(page,studentAttendanceQueryWrapper);
 | 
	
		
			
				|  |  | +        studentAttendanceQueryWrapper.eq("class_group_id_", vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | +        IPage<StudentAttendance> studentAttendanceIPage = studentAttendanceService.page(page, studentAttendanceQueryWrapper);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<StudentAttendance> studentAttendanceList = studentAttendanceIPage.getRecords();
 | 
	
		
			
				|  |  | -        if(!CollectionUtils.isEmpty(studentAttendanceList)){
 | 
	
		
			
				|  |  | -            List<String> studentList =new ArrayList<>();
 | 
	
		
			
				|  |  | +        if (!CollectionUtils.isEmpty(studentAttendanceList)) {
 | 
	
		
			
				|  |  | +            List<String> studentList = new ArrayList<>();
 | 
	
		
			
				|  |  |              int leaveNum = 0;
 | 
	
		
			
				|  |  |              QueryWrapper<StudentAttendance> queryWrapper1 = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -            queryWrapper1.eq("class_group_id_",vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | +            queryWrapper1.eq("class_group_id_", vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  |              List<StudentAttendance> allList = studentAttendanceService.list(queryWrapper1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            if(!CollectionUtils.isEmpty(allList)){
 | 
	
		
			
				|  |  | +            if (!CollectionUtils.isEmpty(allList)) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                List<StudentAttendance> norList = allList.stream().filter(e ->StudentAttendanceStatusEnum.NORMAL.getCode().equals(e.getStatus())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                if(!CollectionUtils.isEmpty(norList)){
 | 
	
		
			
				|  |  | +                List<StudentAttendance> norList = allList.stream().filter(e -> StudentAttendanceStatusEnum.NORMAL.getCode().equals(e.getStatus())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                if (!CollectionUtils.isEmpty(norList)) {
 | 
	
		
			
				|  |  |                      List<Integer> userIds = norList.stream().map(StudentAttendance::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |                      QueryWrapper<SysUser> queryWrapper2 = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -                    queryWrapper2.in("id_",userIds);
 | 
	
		
			
				|  |  | +                    queryWrapper2.in("id_", userIds);
 | 
	
		
			
				|  |  |                      List<SysUser> sysUserList = userService.list(queryWrapper2);
 | 
	
		
			
				|  |  | -                    if(!CollectionUtils.isEmpty(sysUserList)){
 | 
	
		
			
				|  |  | +                    if (!CollectionUtils.isEmpty(sysUserList)) {
 | 
	
		
			
				|  |  |                          studentList = sysUserList.stream().map(SysUser::getRealName).collect(Collectors.toList());
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                List<StudentAttendance> leaveList = allList.stream().filter(e ->StudentAttendanceStatusEnum.LEAVE.getCode().equals(e.getStatus())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                if(!CollectionUtils.isEmpty(leaveList)){
 | 
	
		
			
				|  |  | +                List<StudentAttendance> leaveList = allList.stream().filter(e -> StudentAttendanceStatusEnum.LEAVE.getCode().equals(e.getStatus())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                if (!CollectionUtils.isEmpty(leaveList)) {
 | 
	
		
			
				|  |  |                      leaveNum = leaveList.size();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -198,20 +198,20 @@ public class VipGroupServiceImpl extends ServiceImpl<VipGroupMapper, VipGroup> i
 | 
	
		
			
				|  |  |              List<String> finalStudentList = studentList;
 | 
	
		
			
				|  |  |              int finalLeaveNum = leaveNum;
 | 
	
		
			
				|  |  |              List<VipClassAttendanceResp> vipClassAttendanceRespList = new ArrayList<>();
 | 
	
		
			
				|  |  | -            studentAttendanceList.forEach(e ->{
 | 
	
		
			
				|  |  | +            studentAttendanceList.forEach(e -> {
 | 
	
		
			
				|  |  |                  VipClassAttendanceResp vipClassAttendanceResp = new VipClassAttendanceResp();
 | 
	
		
			
				|  |  |                  vipClassAttendanceResp.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                CourseSchedule courseSchedule  = courseScheduleService.getById(e.getCourseScheduleId());
 | 
	
		
			
				|  |  | -                if(courseSchedule != null){
 | 
	
		
			
				|  |  | -                    vipClassAttendanceResp.setDateStr(DateUtil.date2String(courseSchedule.getClassDate(),DateUtil.DATE_FORMAT));
 | 
	
		
			
				|  |  | -                    vipClassAttendanceResp.setStartTime(DateUtil.date2String(courseSchedule.getStartClassTime(),DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  | -                    vipClassAttendanceResp.setEndTime(DateUtil.date2String(courseSchedule.getEndClassTime(),DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  | +                CourseSchedule courseSchedule = courseScheduleService.getById(e.getCourseScheduleId());
 | 
	
		
			
				|  |  | +                if (courseSchedule != null) {
 | 
	
		
			
				|  |  | +                    vipClassAttendanceResp.setDateStr(DateUtil.date2String(courseSchedule.getClassDate(), DateUtil.DATE_FORMAT));
 | 
	
		
			
				|  |  | +                    vipClassAttendanceResp.setStartTime(DateUtil.date2String(courseSchedule.getStartClassTime(), DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  | +                    vipClassAttendanceResp.setEndTime(DateUtil.date2String(courseSchedule.getEndClassTime(), DateUtil.TIME_FORMAT));
 | 
	
		
			
				|  |  |                      vipClassAttendanceResp.setWeek(DateUtil.date2Week(courseSchedule.getClassDate()));
 | 
	
		
			
				|  |  |                      vipClassAttendanceResp.setClassName(courseSchedule.getName());
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  ClassGroup classGroup = classGroupService.getById(vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | -                if(classGroup != null){
 | 
	
		
			
				|  |  | +                if (classGroup != null) {
 | 
	
		
			
				|  |  |                      vipClassAttendanceResp.setCurrentNum(classGroup.getCurrentClassTimes());
 | 
	
		
			
				|  |  |                      vipClassAttendanceResp.setTotalNum(classGroup.getTotalClassTimes());
 | 
	
		
			
				|  |  |                  }
 |