|
@@ -107,10 +107,11 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
|
|
|
dataList = baseMapper.queryPage(params);
|
|
|
if(queryInfo.getLessonExaminationId() != null){
|
|
|
Map<Integer, StudentLessonExaminationDetail> examinationIdMap = new HashMap<>();
|
|
|
- if(queryInfo.getLessonExaminationId() != null){
|
|
|
+ LessonExamination lessonExamination = lessonExaminationService.getById(queryInfo.getLessonExaminationId());
|
|
|
+ if(queryInfo.getLessonExaminationId() != null && lessonExamination !=null){
|
|
|
List<StudentLessonExaminationDetail> list = studentLessonExaminationDetailService.lambdaQuery().
|
|
|
eq(StudentLessonExaminationDetail::getLessonExaminationId, queryInfo.getLessonExaminationId()).list();
|
|
|
- String musicScoreIds = list.stream().filter(o-> "MUSIC_SCORE".equals(o.getType())).map(e->e.getMusicScoreId().toString()).collect(Collectors.joining(","));
|
|
|
+ String musicScoreIds = list.stream().filter(o-> "MUSIC_SCORE".equals(o.getHomeworkType())).map(e->e.getMusicScoreId().toString()).collect(Collectors.joining(","));
|
|
|
Map<Integer, SysMusicScore> musicScoreMap = new HashMap<>();
|
|
|
if (StringUtils.isNotEmpty(musicScoreIds)) {
|
|
|
List<SysMusicScore> musicScores = sysMusicScoreDao.findByIds(musicScoreIds);
|
|
@@ -120,16 +121,23 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
|
|
|
}
|
|
|
examinationIdMap = list.stream().collect(Collectors.groupingBy(StudentLessonExaminationDetail::getUserId,
|
|
|
Collectors.collectingAndThen(Collectors.toList(), e -> e.get(0))));
|
|
|
+ boolean expireFlag = false;
|
|
|
+ if (lessonExamination.getFileExpireDay() != null && lessonExamination.getFileExpireDay() >0) {
|
|
|
+ expireFlag = DateUtil.addDays(lessonExamination.getExpireDate(), lessonExamination.getFileExpireDay()).before(new Date());
|
|
|
+ }
|
|
|
for (StudentLessonExaminationDto dto : dataList) {
|
|
|
StudentLessonExaminationDetail detail = examinationIdMap.get(dto.getUserId());
|
|
|
if (detail != null ) {
|
|
|
StudentLessonExaminationDetailDto detailDto = JSON.parseObject(JSON.toJSONString(detail), StudentLessonExaminationDetailDto.class);
|
|
|
- if(detail.getMusicScoreId() != null && "MUSIC_SCORE".equals(detail.getType())){
|
|
|
+ if(detail.getMusicScoreId() != null && "MUSIC_SCORE".equals(detail.getHomeworkType())){
|
|
|
SysMusicScore musicScore = musicScoreMap.get(detail.getMusicScoreId().intValue());
|
|
|
if (musicScore != null){
|
|
|
detailDto.setMusicScoreName(musicScore.getName());
|
|
|
}
|
|
|
}
|
|
|
+ if (detailDto.getFileJson() != null) {
|
|
|
+ detailDto.getFileJson().setExpireFlag(expireFlag);
|
|
|
+ }
|
|
|
dto.setStudentLessonExaminationDetail(detailDto);
|
|
|
dto.setMemo(detailDto.getMemo());
|
|
|
}
|
|
@@ -172,27 +180,36 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
|
|
|
studentLessonExamination.setTrainingTime(now);
|
|
|
this.updateById(studentLessonExamination);
|
|
|
//是否达标
|
|
|
- if(submitDto.getScore() >= detail.getStandardScore()){
|
|
|
- detail.setStandardFlag(true);
|
|
|
- }
|
|
|
- //训练分数是否比上一次高
|
|
|
- Boolean flag = submitDto.getScore() > detail.getTrainingScore();
|
|
|
- if(flag){
|
|
|
- detail.setTrainingScore(submitDto.getScore());
|
|
|
- //计算分数
|
|
|
- Double actualScore = detail.getTrainingScore() * 1D / detail.getStandardScore() * detail.getAvgScore();
|
|
|
- //更新分数
|
|
|
- detail.setActualAvgScore(actualScore.intValue() > detail.getAvgScore() ? detail.getAvgScore():actualScore.intValue());
|
|
|
+ if (submitDto.getScore() != null) {
|
|
|
+ if (submitDto.getScore() >= detail.getStandardScore()) {
|
|
|
+ detail.setStandardFlag(true);
|
|
|
+ }
|
|
|
+ //训练分数是否比上一次高
|
|
|
+ Boolean flag = submitDto.getScore() > detail.getTrainingScore();
|
|
|
+ if (flag) {
|
|
|
+ detail.setTrainingScore(submitDto.getScore());
|
|
|
+
|
|
|
+ detail.setRecordId(submitDto.getRecordId());
|
|
|
+ //计算分数
|
|
|
+ Double actualScore = detail.getTrainingScore() * 1D / detail.getStandardScore() * detail.getAvgScore();
|
|
|
+ //更新分数
|
|
|
+ detail.setActualAvgScore(actualScore.intValue() > detail.getAvgScore() ? detail.getAvgScore() : actualScore.intValue());
|
|
|
+ }
|
|
|
+ //更新总分
|
|
|
+ if(flag){
|
|
|
+ baseMapper.updateTrainingScore(lessonExaminationId,userId);
|
|
|
+ }
|
|
|
}
|
|
|
//更新详情
|
|
|
detail.setTrainingTime(now);
|
|
|
+ if (submitDto.getFileJson() != null) {
|
|
|
+ submitDto.getFileJson().setExpireFlag(false);
|
|
|
+ detail.setFileJson(JSON.toJSONString(submitDto.getFileJson()));
|
|
|
+ }
|
|
|
studentLessonExaminationDetailService.updateById(detail);
|
|
|
//更新达标人数
|
|
|
lessonExaminationDao.updateStandardNum(lessonExaminationId);
|
|
|
- //更新总分
|
|
|
- if(flag){
|
|
|
- baseMapper.updateTrainingScore(lessonExaminationId,userId);
|
|
|
- }
|
|
|
+
|
|
|
//更新服务指标
|
|
|
studentExtracurricularExercisesSituationService.updateLastSubmitTime(lessonExamination,studentLessonExamination);
|
|
|
}
|