|  | @@ -5,9 +5,11 @@ 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.GroupType;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.CourseHomeworkService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.StudentCourseHomeworkService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.StudentServeService;
 | 
	
	
		
			
				|  | @@ -34,6 +36,7 @@ import java.time.LocalDateTime;
 | 
	
		
			
				|  |  |  import java.time.temporal.ChronoUnit;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Service
 | 
	
	
		
			
				|  | @@ -65,6 +68,12 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |      private SubjectDao subjectDao;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private StudentServeService studentServeService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private MusicGroupDao musicGroupDao;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private VipGroupDao vipGroupDao;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private PracticeGroupDao practiceGroupDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public BaseDAO<Long, StudentCourseHomework> getDAO() {
 | 
	
	
		
			
				|  | @@ -93,15 +102,15 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void submitHomework(StudentCourseHomework bean) {
 | 
	
		
			
				|  |  | -        if(Objects.isNull(bean.getAttachments())||StringUtils.isBlank(bean.getAttachments())){
 | 
	
		
			
				|  |  | +        if (Objects.isNull(bean.getAttachments()) || StringUtils.isBlank(bean.getAttachments())) {
 | 
	
		
			
				|  |  |              throw new BizException("请选择作业");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          StudentCourseHomework existHomework = studentCourseHomeworkDao.get(bean.getId());
 | 
	
		
			
				|  |  |          if (Objects.isNull(bean) || Objects.isNull(bean.getId()) || Objects.isNull(existHomework)) {
 | 
	
		
			
				|  |  |              throw new BizException("作业不存在");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Date now=new Date();
 | 
	
		
			
				|  |  | -        if (DateUtil.daysBetween(existHomework.getCreateTime(), now)>=14){
 | 
	
		
			
				|  |  | +        Date now = new Date();
 | 
	
		
			
				|  |  | +        if (DateUtil.daysBetween(existHomework.getCreateTime(), now) >= 14) {
 | 
	
		
			
				|  |  |              throw new BizException("该作业已超出可提交时间范围,无法提交作业。");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -122,21 +131,21 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |          LocalDate createDateTime = LocalDateTime.ofInstant(courseSchedule.getClassDate().toInstant(), DateUtil.zoneId).toLocalDate();
 | 
	
		
			
				|  |  |          LocalDate createMonday = createDateTime.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
 | 
	
		
			
				|  |  |          LocalDate homeworkCreateDateTime = LocalDateTime.ofInstant(existHomework.getCreateTime().toInstant(), DateUtil.zoneId).toLocalDate();
 | 
	
		
			
				|  |  | -        boolean isOk=false;
 | 
	
		
			
				|  |  | -        switch (createDateTime.getDayOfWeek()){
 | 
	
		
			
				|  |  | +        boolean isOk = false;
 | 
	
		
			
				|  |  | +        switch (createDateTime.getDayOfWeek()) {
 | 
	
		
			
				|  |  |              case SATURDAY:
 | 
	
		
			
				|  |  | -                if(createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS)<4){
 | 
	
		
			
				|  |  | -                    isOk=true;
 | 
	
		
			
				|  |  | +                if (createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS) < 4) {
 | 
	
		
			
				|  |  | +                    isOk = true;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case SUNDAY:
 | 
	
		
			
				|  |  | -                if(createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS)<3){
 | 
	
		
			
				|  |  | -                    isOk=true;
 | 
	
		
			
				|  |  | +                if (createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS) < 3) {
 | 
	
		
			
				|  |  | +                    isOk = true;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              default:
 | 
	
		
			
				|  |  | -                if(createDateTime.get(DateUtil.weekFields.weekOfYear())==homeworkCreateDateTime.get(DateUtil.weekFields.weekOfYear())){
 | 
	
		
			
				|  |  | -                    isOk=true;
 | 
	
		
			
				|  |  | +                if (createDateTime.get(DateUtil.weekFields.weekOfYear()) == homeworkCreateDateTime.get(DateUtil.weekFields.weekOfYear())) {
 | 
	
		
			
				|  |  | +                    isOk = true;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -146,7 +155,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |  //        CourseHomework temp = courseHomeworkService.get(courseHomework.getId());
 | 
	
		
			
				|  |  |  //        if (temp.getExpectNum().equals(courseHomework.getCompletedNum())) {
 | 
	
		
			
				|  |  |          Integer userId = bean.getUserId();
 | 
	
		
			
				|  |  | -        if(courseSchedule.getType().equals(CourseScheduleType.VIP)){
 | 
	
		
			
				|  |  | +        if (courseSchedule.getType().equals(CourseScheduleType.VIP)) {
 | 
	
		
			
				|  |  |              userId = null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -157,25 +166,25 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  //        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if(push){
 | 
	
		
			
				|  |  | +        if (push) {
 | 
	
		
			
				|  |  |              Map<Integer, String> userMap = new HashMap<>();
 | 
	
		
			
				|  |  |              userMap.put(courseSchedule.getActualTeacherId(), courseSchedule.getActualTeacherId().toString());
 | 
	
		
			
				|  |  |              SysUser user = teacherDao.getUser(bean.getUserId());
 | 
	
		
			
				|  |  |              String notifyUrl = "9?courseScheduleID=" + bean.getId() + "&userId=" + bean.getUserId() + "&studentCourseHomeworkId=" + bean.getId() + "&extra=0";
 | 
	
		
			
				|  |  |              String extra = "dayaedu?courseScheduleID=" + courseSchedule.getId() + "&userId=" + bean.getUserId() + "&studentCourseHomeworkId=" + bean.getId() + "&extra=0";
 | 
	
		
			
				|  |  |              String courseDate = DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日");
 | 
	
		
			
				|  |  | -            sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_SUBMIT_PUSH,bean.getUserId().toString(),extra,
 | 
	
		
			
				|  |  | +            sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_SUBMIT_PUSH, bean.getUserId().toString(), extra,
 | 
	
		
			
				|  |  |                      new String[]{courseSchedule.getActualTeacherId().toString()},
 | 
	
		
			
				|  |  | -                    null,courseDate,courseSchedule.getName());
 | 
	
		
			
				|  |  | +                    null, courseDate, courseSchedule.getName());
 | 
	
		
			
				|  |  |              sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_SUBMIT_PUSH,
 | 
	
		
			
				|  |  |                      userMap, null, 0, notifyUrl, "TEACHER", courseSchedule.getName(), courseDate, user.getUsername());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              Date date = new Date();
 | 
	
		
			
				|  |  | -            if(date.before(courseHomework.getExpiryDate())){
 | 
	
		
			
				|  |  | +            if (date.before(courseHomework.getExpiryDate())) {
 | 
	
		
			
				|  |  |                  ClassGroup classGroup = classGroupDao.findByCourseSchedule(existHomework.getCourseScheduleId().intValue(), 0);
 | 
	
		
			
				|  |  | -                if(classGroup != null){
 | 
	
		
			
				|  |  | +                if (classGroup != null) {
 | 
	
		
			
				|  |  |                      SysUser sysUser = sysUserFeignService.queryUserById(existHomework.getUserId());
 | 
	
		
			
				|  |  | -                    sysMessageService.batchSendImGroupMessage(MessageTypeEnum.IM_HOMEWORK_SUBMIT_PUSH_GROUP,existHomework.getUserId().toString(),null,
 | 
	
		
			
				|  |  | +                    sysMessageService.batchSendImGroupMessage(MessageTypeEnum.IM_HOMEWORK_SUBMIT_PUSH_GROUP, existHomework.getUserId().toString(), null,
 | 
	
		
			
				|  |  |                              new String[]{classGroup.getId().toString()},
 | 
	
		
			
				|  |  |                              null, sysUser.getUsername());
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -189,12 +198,12 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |              throw new BizException("作业不存在");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          CourseHomeworkStudentDetailDto courseHomeworkStudentDetail = studentCourseHomeworkDao.findCourseHomeworkStudentDetail(courseScheduleID, userId);
 | 
	
		
			
				|  |  | -        if(Objects.nonNull(courseHomeworkStudentDetail)){
 | 
	
		
			
				|  |  | +        if (Objects.nonNull(courseHomeworkStudentDetail)) {
 | 
	
		
			
				|  |  |              SysUser student = teacherDao.getUser(userId.intValue());
 | 
	
		
			
				|  |  |              courseHomeworkStudentDetail.setStudentId(userId.intValue());
 | 
	
		
			
				|  |  |              courseHomeworkStudentDetail.setStudentName(student.getUsername());
 | 
	
		
			
				|  |  |              CourseSchedule courseSchedule = courseScheduleDao.get(courseHomeworkStudentDetail.getCourseScheduleId());
 | 
	
		
			
				|  |  | -            if(Objects.nonNull(courseSchedule)){
 | 
	
		
			
				|  |  | +            if (Objects.nonNull(courseSchedule)) {
 | 
	
		
			
				|  |  |                  SysUser teacher = teacherDao.getUser(courseSchedule.getActualTeacherId());
 | 
	
		
			
				|  |  |                  courseHomeworkStudentDetail.setTeacherId(courseSchedule.getActualTeacherId());
 | 
	
		
			
				|  |  |                  courseHomeworkStudentDetail.setTeacherName(teacher.getRealName());
 | 
	
	
		
			
				|  | @@ -212,13 +221,13 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          int hours = -1;
 | 
	
		
			
				|  |  | -        if(Objects.nonNull(byStudentAndCourseHomewok.getSubmitTime())){
 | 
	
		
			
				|  |  | +        if (Objects.nonNull(byStudentAndCourseHomewok.getSubmitTime())) {
 | 
	
		
			
				|  |  |              hours = DateUtil.hoursBetween(byStudentAndCourseHomewok.getSubmitTime(), new Date());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (byStudentAndCourseHomewok.getIsReplied() == YesOrNoEnum.YES && Integer.valueOf(1).equals(byStudentAndCourseHomewok.getIsRepliedTimely())) {
 | 
	
		
			
				|  |  |              return true;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if(hours>=0&&hours<=12){
 | 
	
		
			
				|  |  | +        if (hours >= 0 && hours <= 12) {
 | 
	
		
			
				|  |  |              byStudentAndCourseHomewok.setIsRepliedTimely(1);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          CourseHomework byTeacherAndCourseHomewok = courseHomeworkDao.findByTeacherAndCourseHomewok(courseHomeworkId, teacherId);
 | 
	
	
		
			
				|  | @@ -234,25 +243,25 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |              LocalDate createMonday = createDateTime.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              LocalDate homeworkCreateDateTime = LocalDateTime.ofInstant(byStudentAndCourseHomewok.getCreateTime().toInstant(), DateUtil.zoneId).toLocalDate();
 | 
	
		
			
				|  |  | -            boolean isOk=false;
 | 
	
		
			
				|  |  | -            switch (createDateTime.getDayOfWeek()){
 | 
	
		
			
				|  |  | +            boolean isOk = false;
 | 
	
		
			
				|  |  | +            switch (createDateTime.getDayOfWeek()) {
 | 
	
		
			
				|  |  |                  case SATURDAY:
 | 
	
		
			
				|  |  | -                    if(createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS)<4){
 | 
	
		
			
				|  |  | -                        isOk=true;
 | 
	
		
			
				|  |  | +                    if (createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS) < 4) {
 | 
	
		
			
				|  |  | +                        isOk = true;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |                  case SUNDAY:
 | 
	
		
			
				|  |  | -                    if(createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS)<3){
 | 
	
		
			
				|  |  | -                        isOk=true;
 | 
	
		
			
				|  |  | +                    if (createDateTime.until(homeworkCreateDateTime, ChronoUnit.DAYS) < 3) {
 | 
	
		
			
				|  |  | +                        isOk = true;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |                  default:
 | 
	
		
			
				|  |  | -                    if(createDateTime.get(DateUtil.weekFields.weekOfYear())==homeworkCreateDateTime.get(DateUtil.weekFields.weekOfYear())){
 | 
	
		
			
				|  |  | -                        isOk=true;
 | 
	
		
			
				|  |  | +                    if (createDateTime.get(DateUtil.weekFields.weekOfYear()) == homeworkCreateDateTime.get(DateUtil.weekFields.weekOfYear())) {
 | 
	
		
			
				|  |  | +                        isOk = true;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(createDateTime.isBefore(monDayDate)&&isOk){
 | 
	
		
			
				|  |  | +            if (createDateTime.isBefore(monDayDate) && isOk) {
 | 
	
		
			
				|  |  |                  studentServeService.updateExercisesSituation(new Date(), new ArrayList<>(Arrays.asList(byStudentAndCourseHomewok.getUserId())), teacherId);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -320,7 +329,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |              pageInfo.setTotal(count);
 | 
	
		
			
				|  |  |              params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  |              dataList = studentCourseHomeworkDao.findStudentHomeworkRecord(params);
 | 
	
		
			
				|  |  | -            if(!CollectionUtils.isEmpty(dataList)){
 | 
	
		
			
				|  |  | +            if (!CollectionUtils.isEmpty(dataList)) {
 | 
	
		
			
				|  |  |                  List<Integer> teacherIds = dataList.stream().map(StudentHomeworkRecordDto::getTeacherId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |                  List<SimpleUserDto> teachers = teacherDao.findSimpleTeachers(teacherIds);
 | 
	
		
			
				|  |  |                  Map<Integer, String> idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, u -> u.getUserName()));
 | 
	
	
		
			
				|  | @@ -342,11 +351,11 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |          studentCourseHomeworkDao.insert(studentCourseHomework);
 | 
	
		
			
				|  |  |          CourseHomework courseHomework = courseHomeworkDao.get(studentCourseHomework.getCourseHomeworkId());
 | 
	
		
			
				|  |  |          Date date = new Date();
 | 
	
		
			
				|  |  | -        if(date.before(courseHomework.getExpiryDate())){
 | 
	
		
			
				|  |  | +        if (date.before(courseHomework.getExpiryDate())) {
 | 
	
		
			
				|  |  |              ClassGroup classGroup = classGroupDao.findByCourseSchedule(studentCourseHomework.getCourseScheduleId().intValue(), 0);
 | 
	
		
			
				|  |  | -            if(classGroup != null){
 | 
	
		
			
				|  |  | +            if (classGroup != null) {
 | 
	
		
			
				|  |  |                  SysUser sysUser = sysUserFeignService.queryUserById(studentCourseHomework.getUserId());
 | 
	
		
			
				|  |  | -                sysMessageService.batchSendImGroupMessage(MessageTypeEnum.IM_HOMEWORK_SUBMIT_PUSH_GROUP,studentCourseHomework.getUserId().toString(),null,
 | 
	
		
			
				|  |  | +                sysMessageService.batchSendImGroupMessage(MessageTypeEnum.IM_HOMEWORK_SUBMIT_PUSH_GROUP, studentCourseHomework.getUserId().toString(), null,
 | 
	
		
			
				|  |  |                          new String[]{classGroup.getId().toString()},
 | 
	
		
			
				|  |  |                          null, sysUser.getUsername());
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -358,7 +367,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |          Map<String, Object> result = new HashMap<>();
 | 
	
		
			
				|  |  |          CourseHomework courseHomework = courseHomeworkDao.findByCourseSchedule(queryInfo.getCourseScheduleId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if(Objects.isNull(courseHomework)){
 | 
	
		
			
				|  |  | +        if (Objects.isNull(courseHomework)) {
 | 
	
		
			
				|  |  |              result.put("countInfo", null);
 | 
	
		
			
				|  |  |              return result;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -379,14 +388,14 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |              List<Student> students = studentDao.findByStudentIds(new ArrayList<>(studentIds));
 | 
	
		
			
				|  |  |              Set<Integer> subjectIds = new HashSet<>();
 | 
	
		
			
				|  |  |              for (Student student : students) {
 | 
	
		
			
				|  |  | -                if(StringUtils.isBlank(student.getSubjectIdList())){
 | 
	
		
			
				|  |  | +                if (StringUtils.isBlank(student.getSubjectIdList())) {
 | 
	
		
			
				|  |  |                      continue;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  Set<Integer> studentSubjectIds = Arrays.stream(student.getSubjectIdList().split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toSet());
 | 
	
		
			
				|  |  |                  subjectIds.addAll(studentSubjectIds);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              List<Subject> subjects = new ArrayList<>();
 | 
	
		
			
				|  |  | -            if(!CollectionUtils.isEmpty(subjectIds)){
 | 
	
		
			
				|  |  | +            if (!CollectionUtils.isEmpty(subjectIds)) {
 | 
	
		
			
				|  |  |                  subjects = subjectDao.findBySubjectIds(new ArrayList<>(subjectIds));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              Map<Integer, SimpleUserDto> studentInfoMap = usersSimpleInfo.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, s -> s, (s1, s2) -> s1));
 | 
	
	
		
			
				|  | @@ -394,10 +403,10 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |              for (StudentCourseHomework studentCourseHomework : dataList) {
 | 
	
		
			
				|  |  |                  StudentCourseHomeworkDto s = new StudentCourseHomeworkDto();
 | 
	
		
			
				|  |  |                  s.setStudentId(studentCourseHomework.getUserId());
 | 
	
		
			
				|  |  | -                s.setStudentName(studentInfoMap.containsKey(s.getStudentId())?studentInfoMap.get(s.getStudentId()).getNickName():"");
 | 
	
		
			
				|  |  | -                s.setPhone(studentInfoMap.containsKey(s.getStudentId())?studentInfoMap.get(s.getStudentId()).getPhone():"");
 | 
	
		
			
				|  |  | -                s.setSubjectIds(studentMap.containsKey(s.getStudentId())?studentMap.get(s.getStudentId()).getSubjectIdList():"");
 | 
	
		
			
				|  |  | -                if(StringUtils.isNotBlank(s.getSubjectIds())){
 | 
	
		
			
				|  |  | +                s.setStudentName(studentInfoMap.containsKey(s.getStudentId()) ? studentInfoMap.get(s.getStudentId()).getNickName() : "");
 | 
	
		
			
				|  |  | +                s.setPhone(studentInfoMap.containsKey(s.getStudentId()) ? studentInfoMap.get(s.getStudentId()).getPhone() : "");
 | 
	
		
			
				|  |  | +                s.setSubjectIds(studentMap.containsKey(s.getStudentId()) ? studentMap.get(s.getStudentId()).getSubjectIdList() : "");
 | 
	
		
			
				|  |  | +                if (StringUtils.isNotBlank(s.getSubjectIds())) {
 | 
	
		
			
				|  |  |                      Set<Integer> studentSubjectIds = Arrays.stream(s.getSubjectIds().split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toSet());
 | 
	
		
			
				|  |  |                      List<String> subjectNames = subjects.stream().filter(sj -> studentSubjectIds.contains(sj.getId())).map(Subject::getName).collect(Collectors.toList());
 | 
	
		
			
				|  |  |                      s.setSubjectNames(StringUtils.join(subjectNames, ","));
 | 
	
	
		
			
				|  | @@ -411,7 +420,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          pageInfo.setRows(studentCourseHomeworkDtos);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if(queryInfo.getPage()==1){
 | 
	
		
			
				|  |  | +        if (queryInfo.getPage() == 1) {
 | 
	
		
			
				|  |  |              params.put("isReplied", 1);
 | 
	
		
			
				|  |  |              int repliedNum = studentCourseHomeworkDao.countAll(params);
 | 
	
		
			
				|  |  |              CourseHomeworkDto courseHomeworkDto = new CourseHomeworkDto();
 | 
	
	
		
			
				|  | @@ -426,4 +435,58 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return result;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * MUSIC("乐团课"),
 | 
	
		
			
				|  |  | +     * VIP("VIP课"),
 | 
	
		
			
				|  |  | +     * DEMO("试听课"),
 | 
	
		
			
				|  |  | +     * SPORADIC("零星收费"),
 | 
	
		
			
				|  |  | +     * PRACTICE("网管课"),
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param queryInfo
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public PageInfo<StudentVisitCourseHomeWorkDto> getStudentHomeWorks(StudentCourseHomeWorkQueryInfo queryInfo) {
 | 
	
		
			
				|  |  | +        PageInfo<StudentVisitCourseHomeWorkDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 | 
	
		
			
				|  |  | +        Map<String, Object> params = new HashMap<>();
 | 
	
		
			
				|  |  | +        MapUtil.populateMap(params, queryInfo);
 | 
	
		
			
				|  |  | +        List<StudentVisitCourseHomeWorkDto> dataList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        int count = studentCourseHomeworkDao.getStudentCourseHomeWorksCount(params);
 | 
	
		
			
				|  |  | +        if (count > 0) {
 | 
	
		
			
				|  |  | +            pageInfo.setTotal(count);
 | 
	
		
			
				|  |  | +            params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  | +            dataList = studentCourseHomeworkDao.getStudentCourseHomeWorks(params);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            List<String> musicGroupIds = dataList.stream().filter(e -> e.getGroupType().equals(GroupType.MUSIC)).map(StudentVisitCourseHomeWorkDto::getGroupId).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +            List<Long> vipGroupIds = dataList.stream().filter(e -> e.getGroupType().equals(GroupType.VIP)).map(e -> Long.parseLong(e.getGroupId())).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +            List<Long> practiceGroupIds = dataList.stream().filter(e -> e.getGroupType().equals(GroupType.PRACTICE)).map(e -> Long.parseLong(e.getGroupId())).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            Map<String, List<MusicGroup>> musicGroupMap = new HashMap<>();
 | 
	
		
			
				|  |  | +            Map<Long, List<VipGroup>> vipGroupMap = new HashMap<>();
 | 
	
		
			
				|  |  | +            Map<Long, List<PracticeGroup>> practiceGroupMap = new HashMap<>();
 | 
	
		
			
				|  |  | +            if (musicGroupIds.size() > 0) {
 | 
	
		
			
				|  |  | +                musicGroupMap = musicGroupDao.getMusicGroupByIds(musicGroupIds).stream().collect(Collectors.groupingBy(MusicGroup::getId));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (vipGroupIds.size() > 0) {
 | 
	
		
			
				|  |  | +                vipGroupMap = vipGroupDao.getVipGroupByIds(vipGroupIds).stream().collect(Collectors.groupingBy(VipGroup::getId));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (practiceGroupIds.size() > 0) {
 | 
	
		
			
				|  |  | +                practiceGroupMap = practiceGroupDao.getWithIds(practiceGroupIds).stream().collect(Collectors.groupingBy(PracticeGroup::getId));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            for (StudentVisitCourseHomeWorkDto homeWork : dataList) {
 | 
	
		
			
				|  |  | +                if (homeWork.getGroupType().equals(GroupType.MUSIC) && musicGroupMap.get(homeWork.getGroupId()).size() > 0) {
 | 
	
		
			
				|  |  | +                    homeWork.setGroupName(musicGroupMap.get(homeWork.getGroupId()).get(0).getName());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (homeWork.getGroupType().equals(GroupType.VIP) && vipGroupMap.get(Long.parseLong(homeWork.getGroupId())).size() > 0) {
 | 
	
		
			
				|  |  | +                    homeWork.setGroupName(vipGroupMap.get(Long.parseLong(homeWork.getGroupId())).get(0).getName());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (homeWork.getGroupType().equals(GroupType.PRACTICE) && practiceGroupMap.get(Long.parseLong(homeWork.getGroupId())).size() > 0) {
 | 
	
		
			
				|  |  | +                    homeWork.setGroupName(practiceGroupMap.get(Long.parseLong(homeWork.getGroupId())).get(0).getName());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  | +        return pageInfo;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |