|  | @@ -1,15 +1,69 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.math.BigDecimal;
 | 
	
		
			
				|  |  | +import java.time.DayOfWeek;
 | 
	
		
			
				|  |  | +import java.time.LocalDate;
 | 
	
		
			
				|  |  | +import java.time.LocalDateTime;
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  | +import java.util.Arrays;
 | 
	
		
			
				|  |  | +import java.util.Comparator;
 | 
	
		
			
				|  |  | +import java.util.Date;
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.HashSet;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +import java.util.Objects;
 | 
	
		
			
				|  |  | +import java.util.Set;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | +import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | +import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | +import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.*;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dto.*;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.*;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.ClassGroupDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.CourseHomeworkDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.CourseScheduleStatisticsDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.StudentDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.SubjectDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.TeacherDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.TeacherRemindDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.SimpleUserDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.StudentServiceDetailDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.TeacherServeDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.TeacherServeExtraDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.TeacherServeHomeworkDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dto.TeacherServeHomeworkPojo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.ClassGroup;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.CourseHomework;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.CourseSchedule;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.Student;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.Subject;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.TeacherRemind;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.GroupType;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.TeacherRemindTypeEnum;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.page.*;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.page.StudentExerciseMusicGroupQueryInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.SysMessageService;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.constant.CommonConstants;
 | 
	
	
		
			
				|  | @@ -21,21 +75,6 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 | 
	
		
			
				|  |  |  import com.ym.mec.util.collection.MapUtil;
 | 
	
		
			
				|  |  |  import com.ym.mec.util.date.DateUtil;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | -import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  | -import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | -import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | -import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | -import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import java.math.BigDecimal;
 | 
	
		
			
				|  |  | -import java.time.DayOfWeek;
 | 
	
		
			
				|  |  | -import java.time.LocalDate;
 | 
	
		
			
				|  |  | -import java.time.LocalDateTime;
 | 
	
		
			
				|  |  | -import java.time.temporal.ChronoUnit;
 | 
	
		
			
				|  |  | -import java.util.*;
 | 
	
		
			
				|  |  | -import java.util.stream.Collectors;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class StudentExtracurricularExercisesSituationServiceImpl extends BaseServiceImpl<Long, StudentExtracurricularExercisesSituation> implements StudentExtracurricularExercisesSituationService {
 | 
	
		
			
				|  |  |  	
 | 
	
	
		
			
				|  | @@ -78,6 +117,26 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  | +	public PageInfo<MusicGroupExtracurricularSummaryDto> queryStudentExerciseMusicGroupList(StudentExerciseMusicGroupQueryInfo queryInfo) {
 | 
	
		
			
				|  |  | +		PageInfo<MusicGroupExtracurricularSummaryDto> pageInfo = new PageInfo<MusicGroupExtracurricularSummaryDto>(queryInfo.getPage(), queryInfo.getRows());
 | 
	
		
			
				|  |  | +		Map<String, Object> params = new HashMap<String, Object>();
 | 
	
		
			
				|  |  | +		MapUtil.populateMap(params, queryInfo);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		List<MusicGroupExtracurricularSummaryDto> dataList = null;
 | 
	
		
			
				|  |  | +		int count = studentExtracurricularExercisesSituationDao.queryStudentExerciseMusicGroupListCount(params);
 | 
	
		
			
				|  |  | +		if (count > 0) {
 | 
	
		
			
				|  |  | +			pageInfo.setTotal(count);
 | 
	
		
			
				|  |  | +			params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  | +			dataList = studentExtracurricularExercisesSituationDao.queryStudentExerciseMusicGroupList(params);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if (count == 0) {
 | 
	
		
			
				|  |  | +			dataList = new ArrayList<MusicGroupExtracurricularSummaryDto>();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  | +		return pageInfo;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  |  	public PageInfo<StudentExercisesSituationDto> findStudentExtracurricularExercisesSituations(StudentExercisesSituationQueryInfo queryInfo) {
 | 
	
		
			
				|  |  |  		PageInfo<StudentExercisesSituationDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 | 
	
		
			
				|  |  |  		Map<String, Object> params = new HashMap<>();
 | 
	
	
		
			
				|  | @@ -96,14 +155,14 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 | 
	
		
			
				|  |  |  			List<Map<Integer, Long>> studentPracticeCoursesMaps = courseScheduleDao.countStudentPayPracticeCoursesWithDate(studentIds, queryInfo.getMonday(), queryInfo.getSunday());
 | 
	
		
			
				|  |  |  			Map<Integer, Long> studentPracticeCourseMap = MapUtil.convertIntegerMap(studentPracticeCoursesMaps);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -			List<StudentEduTeacherDto> studentEducationalTeachers = classGroupStudentMapperDao.getStudentEducationalTeachers(studentIds);
 | 
	
		
			
				|  |  | +			/*List<StudentEduTeacherDto> studentEducationalTeachers = classGroupStudentMapperDao.getStudentEducationalTeachers(studentIds);
 | 
	
		
			
				|  |  |  			Map<Integer, List<StudentEduTeacherDto>> studentEduTeachersMap = studentEducationalTeachers.stream().collect(Collectors.groupingBy(StudentEduTeacherDto::getStudentId));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			List<UserGroupDto> allUserGroups = studentRegistrationDao.getUserGroups(studentIds);
 | 
	
		
			
				|  |  | +*/
 | 
	
		
			
				|  |  | +			/*List<UserGroupDto> allUserGroups = studentRegistrationDao.getUserGroups(studentIds);
 | 
	
		
			
				|  |  |  			Map<Integer, List<UserGroupDto>> userGroupsMap = new HashMap<>();
 | 
	
		
			
				|  |  |  			if(!CollectionUtils.isEmpty(allUserGroups)){
 | 
	
		
			
				|  |  |  				userGroupsMap = allUserGroups.stream().collect(Collectors.groupingBy(UserGroupDto::getUserId));
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | +			}*/
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			for (StudentExercisesSituationDto exercisesSituationDto : dataList) {
 | 
	
		
			
				|  |  |  				Long vipCourses=studentVipCourseMap.get(exercisesSituationDto.getStudentId());
 | 
	
	
		
			
				|  | @@ -111,11 +170,11 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 | 
	
		
			
				|  |  |  				Long practiceCourses=studentPracticeCourseMap.get(exercisesSituationDto.getStudentId());
 | 
	
		
			
				|  |  |  				exercisesSituationDto.setExistPracticeCourse(Objects.isNull(practiceCourses)?0:practiceCourses.intValue());
 | 
	
		
			
				|  |  |  //				exercisesSituationDto.setExpectExercisesNum((int) until+1);
 | 
	
		
			
				|  |  | -				List<UserGroupDto> userGroupDtos = userGroupsMap.get(exercisesSituationDto.getStudentId());
 | 
	
		
			
				|  |  | +				/*List<UserGroupDto> userGroupDtos = userGroupsMap.get(exercisesSituationDto.getStudentId());
 | 
	
		
			
				|  |  |  				if(!CollectionUtils.isEmpty(userGroupDtos)){
 | 
	
		
			
				|  |  |  					exercisesSituationDto.setGroupNames(userGroupDtos.stream().filter(ug->StringUtils.isNotBlank(ug.getGroupName())).map(UserGroupDto::getGroupName).sorted().collect(Collectors.joining(",")));
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -				List<StudentEduTeacherDto> studentEduTeachers = studentEduTeachersMap.get(exercisesSituationDto.getStudentId());
 | 
	
		
			
				|  |  | +				}*/
 | 
	
		
			
				|  |  | +				/*List<StudentEduTeacherDto> studentEduTeachers = studentEduTeachersMap.get(exercisesSituationDto.getStudentId());
 | 
	
		
			
				|  |  |  				if(!CollectionUtils.isEmpty(studentEduTeachers)){
 | 
	
		
			
				|  |  |  					List<StudentEduTeacherDto> t1 = studentEduTeachers.stream().filter(set -> set.getGroupType().equals(GroupType.VIP.getCode())||set.getGroupType().equals(GroupType.PRACTICE.getCode())).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  					if(!CollectionUtils.isEmpty(t1)){
 | 
	
	
		
			
				|  | @@ -140,7 +199,7 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | +				}*/
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		if (count == 0) {
 |