|
@@ -1,47 +1,15 @@
|
|
|
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.time.temporal.ChronoUnit;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.LinkedHashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.Set;
|
|
|
-import java.util.function.Function;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
+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.ELessonTrainingType;
|
|
|
-import com.ym.mec.biz.dal.enums.StandardEnum;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.jetbrains.annotations.NotNull;
|
|
|
-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.entity.CourseSchedule.CourseScheduleType;
|
|
|
-import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
@@ -52,66 +20,73 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import javax.annotation.Resource;
|
|
|
+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.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, StudentCourseHomework> implements StudentCourseHomeworkService {
|
|
|
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private StudentCourseHomeworkDao studentCourseHomeworkDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private CourseHomeworkService courseHomeworkService;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private CourseHomeworkDao courseHomeworkDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private CourseScheduleDao courseScheduleDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private ClassGroupDao classGroupDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private SysMessageService sysMessageService;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private CourseScheduleReviewDao courseScheduleReviewDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private TeacherDao teacherDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private StudentDao studentDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private SubjectDao subjectDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private StudentServeService studentServeService;
|
|
|
- @Autowired
|
|
|
- private MusicGroupDao musicGroupDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private StudentRegistrationDao studentRegistrationDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private VipGroupDao vipGroupDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private PracticeGroupDao practiceGroupDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private ExtracurricularExercisesReplyDao extracurricularExercisesReplyDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private SysConfigDao sysConfigDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private SysMusicScoreDao sysMusicScoreDao;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private MusicGroupTrainPlanService musicGroupTrainPlanService;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
|
|
|
-
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private ExtracurricularExercisesReplyService extracurricularExercisesReplyService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private MusicGroupService musicGroupService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private StudentLessonExaminationDao studentLessonExaminationDao;
|
|
|
-
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private StudentLessonTrainingDetailService studentLessonTrainingDetailService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private ExtracurricularExercisesDao extracurricularExercisesDao;
|
|
|
|
|
|
@Override
|
|
@@ -194,7 +169,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
String courseDate = DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日");
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_HOMEWORK_SUBMIT,
|
|
|
userMap, null, 0, notifyUrl, "TEACHER", courseSchedule.getName(), courseDate, user.getUsername());
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
|
|
|
+ MusicGroup musicGroup = musicGroupService.get(courseSchedule.getMusicGroupId());
|
|
|
|
|
|
sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_SUBMIT_PUSH, bean.getUserId().toString(), extra,
|
|
|
new String[]{courseSchedule.getActualTeacherId().toString()},
|
|
@@ -608,7 +583,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
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));
|
|
|
+ musicGroupMap = musicGroupService.getDao().getMusicGroupByIds(musicGroupIds).stream().collect(Collectors.groupingBy(MusicGroup::getId));
|
|
|
}
|
|
|
if (vipGroupIds.size() > 0) {
|
|
|
vipGroupMap = vipGroupDao.getVipGroupByIds(vipGroupIds).stream().collect(Collectors.groupingBy(VipGroup::getId));
|
|
@@ -654,11 +629,11 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
MapUtil.populateMap(params, queryInfo);
|
|
|
params.put("musicGroupStatus", MusicGroupStatusEnum.PROGRESS.getCode());
|
|
|
|
|
|
- int count = musicGroupDao.queryCount(params);
|
|
|
+ int count = musicGroupService.getDao().queryCount(params);
|
|
|
pageInfo.setTotal(count);
|
|
|
params.put("offset", pageInfo.getOffset());
|
|
|
// StudentService
|
|
|
- List<MusicGroup> musicGroups = musicGroupDao.queryPage(params);
|
|
|
+ List<MusicGroup> musicGroups = musicGroupService.getDao().queryPage(params);
|
|
|
|
|
|
List<EduHomeworkStatDto> dataList = new ArrayList<>();
|
|
|
if(!CollectionUtils.isEmpty(musicGroups)){
|
|
@@ -709,7 +684,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
@Override
|
|
|
public List<EduHomeworkStatDto> queryEduHomeworkStatDetail(StudentCourseHomeWorkQueryInfo queryInfo) {
|
|
|
List<EduHomeworkStatDto> dataList = new ArrayList<>();
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(queryInfo.getGroupId());
|
|
|
+ MusicGroup musicGroup = musicGroupService.get(queryInfo.getGroupId());
|
|
|
if(Objects.isNull(musicGroup)){
|
|
|
return dataList;
|
|
|
}
|
|
@@ -717,7 +692,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
Map<Integer, Long> subjectStudentNumMap = studentRegistrations.stream().collect(Collectors.groupingBy(StudentRegistration::getActualSubjectId, Collectors.counting()));
|
|
|
|
|
|
Map<Integer, Subject> idSubjectMap = new HashMap<>();
|
|
|
- if(!CollectionUtils.isEmpty(subjectStudentNumMap)){
|
|
|
+ if(!subjectStudentNumMap.isEmpty()){
|
|
|
List<Subject> subjects = subjectDao.findBySubjectIds(new ArrayList<>(subjectStudentNumMap.keySet()));
|
|
|
idSubjectMap = subjects.stream().collect(Collectors.toMap(Subject::getId, s -> s, (s1, s2) -> s1));
|
|
|
}
|
|
@@ -814,11 +789,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
// 设置声部
|
|
|
-
|
|
|
- // 获取声部id集合
|
|
|
List<Integer> voicePartIds = studentCourseHomeworkByCourse.stream().map(o -> o.getSubjectId()).collect(Collectors.toList());
|
|
|
|
|
|
if (CollectionUtils.isEmpty(voicePartIds)) {
|
|
@@ -853,7 +824,9 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetails = studentCourseHomeworkDao
|
|
|
.findByStudentIdsAndCourseScheduleId(studentIds, studentCourseHomework.getCourseHomeworkId(),studentCourseHomework.getType());
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(studentLessonTrainingDetails)) {
|
|
|
+ if (CollectionUtils.isNotEmpty(studentLessonTrainingDetails)) {
|
|
|
+ //设置曲目名称
|
|
|
+ studentLessonTrainingDetailService.updateMusicScoreName(studentLessonTrainingDetails);
|
|
|
// 按userid分组 ,
|
|
|
Map<Long, List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail>> studentLessonTrainingDetailMap = studentLessonTrainingDetails.stream()
|
|
|
.collect(Collectors.groupingBy(StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail::getUserId,
|
|
@@ -877,9 +850,9 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
List<StudentCourseHomework> studentCourseHomeworks = getStudentCourseHomeworks(extraExerciseStudents);
|
|
|
if (query.getSubjectId() != null) {
|
|
|
studentCourseHomeworks = studentCourseHomeworks.stream()
|
|
|
- .filter(o ->o.getSubjectId() != null)
|
|
|
- .filter(o -> o.getSubjectId().equals(query.getSubjectId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
+ .filter(o ->o.getSubjectId() != null)
|
|
|
+ .filter(o -> o.getSubjectId().equals(query.getSubjectId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
}
|
|
|
return studentCourseHomeworks;
|
|
|
}
|
|
@@ -914,7 +887,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
|
|
|
// 获取作业信息
|
|
|
List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> detailList = studentLessonTrainingDetailService.getBaseLessonTrainingDetail(
|
|
|
- courseHomeworkDetail.getCourseHomeworkId(), query.getType(), query.getUserId());
|
|
|
+ courseHomeworkDetail.getCourseHomeworkId(), query.getType(), query.getUserId(),null);
|
|
|
|
|
|
long count = detailList.stream().filter(o -> o.getTrainingTimes() < o.getTimes()).count();
|
|
|
if (count >0) {
|
|
@@ -928,6 +901,11 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> findStudentHomeworkCourseware(CourseHomeworkWrapper.StudentCourseHomeworkQuery query) {
|
|
|
+ return studentLessonTrainingDetailService.getBaseLessonTrainingDetail(query.getCourseScheduleId().longValue(), query.getType(), query.getUserId(),"VIDEO");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 添加学生作业练习记录
|
|
|
*
|