Prechádzať zdrojové kódy

Merge branch 'feature_HW_20230331' into master_saas

liujunchi 2 rokov pred
rodič
commit
f8fa3e01a9
29 zmenil súbory, kde vykonal 291 pridanie a 164 odobranie
  1. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LessonExaminationDao.java
  2. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonExaminationDao.java
  3. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExtraExerciseStudentsDto.java
  4. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationDetailDto.java
  5. 5 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSaveDto.java
  6. 1 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSubmitDto.java
  7. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentHomeworkRecordDto.java
  8. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto.java
  9. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationSaveDto.java
  10. 1 19
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonTrainingDetailWrapper.java
  11. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonExamination.java
  12. 3 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExaminationDetail.java
  13. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentLessonExaminationDetailService.java
  14. 2 5
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentLessonExaminationService.java
  15. 11 12
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java
  16. 7 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java
  17. 33 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonExaminationServiceImpl.java
  18. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  19. 13 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java
  20. 24 19
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationDetailServiceImpl.java
  21. 73 17
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationServiceImpl.java
  22. 7 2
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml
  23. 3 2
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml
  24. 18 20
      mec-biz/src/main/resources/config/mybatis/LessonExaminationMapper.xml
  25. 2 0
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  26. 20 25
      mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationDetailMapper.xml
  27. 7 0
      mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationMapper.xml
  28. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkController.java
  29. 3 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LessonExaminationDao.java

@@ -30,5 +30,9 @@ public interface LessonExaminationDao extends BaseMapper<LessonExamination> {
     int findCountByStudent(Map<String, Object> params);
 
     LessonExaminationResultDto1 getOneByStudent(@Param("userId") Integer userId, @Param("lessonExaminationId") Long lessonExaminationId);
+
+    void updateTrainingNum(@Param("lessonExaminationId") Long lessonExaminationId);
+
+    void updateStandardNum(@Param("lessonExaminationId") Long lessonExaminationId);
 }
 

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonExaminationDao.java

@@ -31,5 +31,7 @@ public interface StudentLessonExaminationDao extends BaseMapper<StudentLessonExa
      * @param userId 用户id
      */
     int queryNotSuccessExaminationList(Integer userId);
+
+    void updateTrainingScore(@Param("lessonExaminationId") Long lessonExaminationId, @Param("userId") Integer userId);
 }
 

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExtraExerciseStudentsDto.java

@@ -56,6 +56,16 @@ public class ExtraExerciseStudentsDto extends ExtracurricularExercisesReply {
     @ApiModelProperty(value = "作业类型")
     private String type;
 
+    private String subjectId;
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
+
     public String getType() {
         return type;
     }

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationDetailDto.java

@@ -23,8 +23,5 @@ public class LessonExaminationDetailDto{
 
     @ApiModelProperty(value = "合格分数")
     private Integer score;
-
-    @ApiModelProperty(value = "声部")
-    private Integer subjectId;
 }
 

+ 5 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSaveDto.java

@@ -19,7 +19,7 @@ public class LessonExaminationSaveDto {
     private Integer teacherId;
 
     @ApiModelProperty(value = "班级编号")
-    private Long classGroupId;
+    private Integer classGroupId;
 
     @ApiModelProperty(value = "课程编号")
     private Long courseScheduleId;
@@ -27,10 +27,10 @@ public class LessonExaminationSaveDto {
     @ApiModelProperty(value = "截止日期")
     private Date expireDate;
 
-    @ApiModelProperty(value = "学员编号,逗号分割")
-    private String studentIds;
+    @ApiModelProperty(value = "学员总数")
+    private Integer expectNum;
 
-    @ApiModelProperty(value = "作业内容")
-    private List<LessonExaminationDetailDto> examinationDetailDtos;
+    @ApiModelProperty(value = "声部学员列表")
+    private List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos;
 }
 

+ 1 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSubmitDto.java

@@ -12,10 +12,7 @@ import lombok.Data;
 @Data
 public class LessonExaminationSubmitDto {
     @ApiModelProperty(value = "测验编号")
-    private Long LessonExaminationId;
-
-    @ApiModelProperty(value = "学员编号")
-    private Integer userId;
+    private Long studentLessonExaminationDetailId;
 
     @ApiModelProperty(value = "测评分数")
     private Integer score;

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentHomeworkRecordDto.java

@@ -70,6 +70,17 @@ public class StudentHomeworkRecordDto {
     @ApiModelProperty("完成状态 false 未完成 true 已完成")
     private Boolean finishStatus;
 
+    @ApiModelProperty("提交时间")
+    private Date submitTime;
+
+    public Date getSubmitTime() {
+        return submitTime;
+    }
+
+    public void setSubmitTime(Date submitTime) {
+        this.submitTime = submitTime;
+    }
+
     public StandardEnum getStandardFlag() {
         return standardFlag;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto.java

@@ -12,7 +12,7 @@ import lombok.Data;
 @Data
 public class StudentLessonExaminationDetailDto {
     @ApiModelProperty(value = "主键")
-    private Long id;
+    private Long studentLessonExaminationDetailId;
 
     @ApiModelProperty(value = "学员编号")
     private Integer userId;

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationSaveDto.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class StudentLessonExaminationSaveDto {
+
+    @ApiModelProperty(value = "学员编号,逗号分割")
+    private String studentIds;
+
+    @ApiModelProperty(value = "声部")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "作业内容")
+    private List<LessonExaminationDetailDto> examinationDetailDtos;
+}
+

+ 1 - 19
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonTrainingDetailWrapper.java

@@ -76,10 +76,6 @@ public class StudentLessonTrainingDetailWrapper {
         public String jsonString() {
             return JSON.toJSONString(this);
         }
-
-        public static StudentLessonTrainingDetail from(String json) {
-            return JSON.parseObject(json, StudentLessonTrainingDetail.class);
-        }
 	}
 
 
@@ -106,21 +102,12 @@ public class StudentLessonTrainingDetailWrapper {
         @ApiModelProperty(value = "true:完成 false未完成",hidden = true)
         private Boolean standardFlag;
 
-
-
-        public String jsonString() {
-            return JSON.toJSONString(this);
-        }
-
-        public static StudentLessonTrainingDetail from(String json) {
-            return JSON.parseObject(json, StudentLessonTrainingDetail.class);
-        }
 	}
 
 
 
     @Data
-    @ApiModel(" StudentLessonTrainingQuery-学生练习内容查询对象")
+    @ApiModel(" StudentLessonTraining-学生练习内容查询对象")
     public static class StudentLessonTraining {
 
 
@@ -150,11 +137,6 @@ public class StudentLessonTrainingDetailWrapper {
 
         @ApiModelProperty(value = "练习内容")
         private List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetail;
-
-        public String jsonString() {
-            return JSON.toJSONString(this);
-        }
-
     }
 
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonExamination.java

@@ -33,7 +33,7 @@ public class LessonExamination{
 
     @TableField("class_group_id_")
     @ApiModelProperty(value = "班级编号")
-    private Long classGroupId;
+    private Integer classGroupId;
 
     @TableField("course_schedule_id_")
     @ApiModelProperty(value = "课程编号")

+ 3 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExaminationDetail.java

@@ -33,9 +33,6 @@ public class StudentLessonExaminationDetail implements Serializable {
     @ApiModelProperty(value = "测验编号")
     private Long lessonExaminationId;
 
-    @TableField("student_lesson_examination_id_")
-    private Long studentLessonExaminationId;
-
     @TableField("music_score_id_")
     @ApiModelProperty(value = "曲目id")
     private Long musicScoreId;
@@ -44,9 +41,9 @@ public class StudentLessonExaminationDetail implements Serializable {
     @ApiModelProperty(value = "评测难度")
     private String heardLevel;
 
-    @TableField("training_flag_")
-    @ApiModelProperty(value = "是否练习")
-    private Boolean trainingFlag;
+    @TableField("standard_flag_")
+    @ApiModelProperty(value = "是否达标")
+    private Boolean standardFlag;
 
     @TableField("standard_score_")
     @ApiModelProperty(value = "达标分数")

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentLessonExaminationDetailService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dao.StudentLessonExaminationDetailDao;
 import com.ym.mec.biz.dal.dto.LessonExaminationDetailDto;
 import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationSaveDto;
 import com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail;
 import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
 
@@ -19,7 +20,7 @@ public interface StudentLessonExaminationDetailService extends IService<StudentL
 
     StudentLessonExaminationDetailDao getDao();
 
-    void save(Long lessonExaminationId, String[] studentIds, List<LessonExaminationDetailDto> detailDtos);
+    void save(Long lessonExaminationId,List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos);
 
     List<StudentLessonExaminationDetailDto> queryAll(StudentLessonExaminationQueryDto query);
 }

+ 2 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/StudentLessonExaminationService.java

@@ -2,10 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dao.StudentLessonExaminationDao;
-import com.ym.mec.biz.dal.dto.LessonExaminationSaveDto;
-import com.ym.mec.biz.dal.dto.LessonExaminationSubmitDto;
-import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto;
-import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentLessonExamination;
 import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -22,7 +19,7 @@ public interface StudentLessonExaminationService extends IService<StudentLessonE
 
     StudentLessonExaminationDao getDao();
 
-    void save(Long lessonExaminationId, String[] studentIds);
+    void save(Long lessonExaminationId,List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos);
 
     PageInfo<StudentLessonExaminationDto> queryPage(StudentLessonExaminationQueryInfo queryInfo);
 

+ 11 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java

@@ -16,6 +16,7 @@ import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
+import com.ym.mec.biz.service.CourseHomeworkService;
 import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
 import com.ym.mec.biz.service.ExtracurricularExercisesService;
 import com.ym.mec.biz.service.MusicGroupService;
@@ -71,6 +72,9 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
     @Autowired
     private ExtracurricularExercisesService extracurricularExercisesService;
 
+    @Autowired
+    private CourseHomeworkService courseHomeworkService;
+
 	@Override
 	public BaseDAO<Long, ExtracurricularExercisesReply> getDAO() {
 		return extracurricularExercisesReplyDao;
@@ -92,6 +96,8 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 		for (ExtraExerciseStudentsDto extraExerciseStudent : extraExerciseStudents) {
 			StudentCourseHomework studentCourseHomework=new StudentCourseHomework();
 			studentCourseHomework.setId(extraExerciseStudent.getId());
+            studentCourseHomework.setCourseHomeworkId(extraExerciseId);
+            studentCourseHomework.setCourseScheduleId(extraExerciseId);
 			studentCourseHomework.setUserId(extraExerciseStudent.getUserId());
 			studentCourseHomework.setUserName(extraExerciseStudent.getStudentName());
 			studentCourseHomework.setStatus(extraExerciseStudent.getStatus()==0?YesOrNoEnum.NO:YesOrNoEnum.YES);
@@ -311,6 +317,7 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
             studentHomeworkRecordDto.setMusicGroupId(row.getMusicGroupId());
             studentHomeworkRecordDto.setClassGroupId(row.getClassGroupId());
             studentHomeworkRecordDto.setType(ELessonTrainingType.valueOf(row.getType()));
+            studentHomeworkRecordDto.setSubmitTime(row.getSubmitTime());
             recordDtoList.add(studentHomeworkRecordDto);
         }
 
@@ -360,6 +367,9 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
             } else {
                 studentHomeworkRecordDto.setFinishStatus(true);
             }
+
+            // 设置提交时间
+
         }
 
         PageInfo<StudentHomeworkRecordDto> pageInfo = new PageInfo<>(studentExtraExercises.getPageNo(),studentExtraExercises.getLimit());
@@ -370,19 +380,8 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 
     @Override
     public CourseHomeworkWrapper.CourseHomeworkList findStudentExtraExerciseDetailV2(Long studentExerciseId) {
-        ExtraExercilseQueryInfo queryInfo = new ExtraExercilseQueryInfo();
-        queryInfo.setPage(1);
-        queryInfo.setRows(1);
-        queryInfo.setStudentExerciseId(studentExerciseId);
-        PageInfo<ExtracurricularExercises> extracurricularExercisesReplyPageInfo = extracurricularExercisesService.queryPage(queryInfo);
-        if (CollectionUtils.isEmpty(extracurricularExercisesReplyPageInfo.getRows())) {
-            throw new BizException("课外训练不存在");
-        }
-        ExtracurricularExercises extracurricularExercises = extracurricularExercisesReplyPageInfo.getRows().get(0);
-
-
 
-        return null;
+        return courseHomeworkService.findCourseExtraHomeworkDetail( studentExerciseId.intValue());
 
 
     }

+ 7 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java

@@ -32,6 +32,7 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.ObjectUtils;
 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.Isolation;
@@ -141,7 +142,7 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
                     studentExtraExercise.setUserId(userId);
                     studentExtraExercise.setMusicScoreId(StringUtils.join(musicScoreSubjectDto.getMusicScoreIdList(),","));
                     studentExtraExercise.setMusicScoreContent(JSONObject.toJSONString(musicScoreSubjectDto.getMusicScoreHomeworkDtoList()));
-                    extracurricularExercisesReplies.add(ObjectUtils.clone(studentExtraExercise));
+                    extracurricularExercisesReplies.add(JSON.parseObject(JSON.toJSONString(studentExtraExercise),ExtracurricularExercisesReply.class));
                 }
                 // 作业详情
                 studentLessonTrainingDetailList.addAll(studentLessonTrainingDetailService
@@ -152,14 +153,17 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
         } else {
             for (Integer studentId : studentIds) {
                 studentExtraExercise.setUserId(studentId);
-                extracurricularExercisesReplies.add(ObjectUtils.clone(studentExtraExercise));
+                extracurricularExercisesReplies.add(JSON.parseObject(JSON.toJSONString(studentExtraExercise),ExtracurricularExercisesReply.class));
+
             }
             // 作业详情
             studentLessonTrainingDetailList.addAll(studentLessonTrainingDetailService
                                                        .homeWorkDetail(exercises.getStudentLessonTrainingDetails(), studentIds,exercises.getId(),
                                                        ELessonTrainingType.valueOf(exercises.getGroupType())));
         }
-        extracurricularExercisesReplyDao.batchInsert(extracurricularExercisesReplies);
+        for (ExtracurricularExercisesReply extracurricularExercisesReply : extracurricularExercisesReplies) {
+            extracurricularExercisesReplyDao.insert(extracurricularExercisesReply);
+        }
         if (!CollectionUtils.isEmpty(studentLessonTrainingDetailList)) {
             studentLessonTrainingDetailService.saveBatch(studentLessonTrainingDetailList);
             exercises.setVersionTag("v2");

+ 33 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonExaminationServiceImpl.java

@@ -6,7 +6,7 @@ import com.ym.mec.biz.dal.dto.LessonExaminationDetailDto;
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto;
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto1;
 import com.ym.mec.biz.dal.dto.LessonExaminationSaveDto;
-import com.ym.mec.biz.dal.entity.LessonExamination;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo1;
 import com.ym.mec.biz.service.LessonExaminationService;
@@ -50,6 +50,10 @@ public class LessonExaminationServiceImpl extends ServiceImpl<LessonExaminationD
     private TeacherDao teacherDao;
     @Autowired
     private OrganizationDao organizationDao;
+    @Autowired
+    private CourseScheduleDao courseScheduleDao;
+    @Autowired
+    private ClassGroupDao classGroupDao;
 
     @Override
     public LessonExaminationDao getDao() {
@@ -59,29 +63,45 @@ public class LessonExaminationServiceImpl extends ServiceImpl<LessonExaminationD
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void publish(LessonExaminationSaveDto param) {
-        String studentIds = param.getStudentIds();
-        if(StringUtils.isEmpty(studentIds)){
+        if(CollectionUtils.isEmpty(param.getStudentLessonExaminationSaveDtos())){
             throw new BizException("请选择学员");
         }
-        List<LessonExaminationDetailDto> examinationDetailDtos = param.getExaminationDetailDtos();
-        if(CollectionUtils.isEmpty(examinationDetailDtos)){
-            throw new BizException("请选择练习内容");
-        }
         String expireTime = sysConfigDao.findConfigValue("homework_expire_time");
         if(org.apache.commons.lang3.StringUtils.isEmpty(expireTime)){
             expireTime = "7";
         }
         String expireDate = DateUtil.dateToString(DateUtil.addDays(new Date(), Integer.parseInt(expireTime)),DateUtil.ISO_EXPANDED_DATE_FORMAT);
-        String[] split = studentIds.split(",");
         LessonExamination lessonExamination = new LessonExamination();
-        lessonExamination.setExpectNum(split.length);
-        lessonExamination.setClassGroupId(param.getClassGroupId());
-        lessonExamination.setCourseScheduleId(param.getCourseScheduleId());
+        lessonExamination.setExpectNum(param.getExpectNum());
+        if(param.getCourseScheduleId() != null){
+            CourseSchedule schedule = courseScheduleDao.get(param.getCourseScheduleId());
+            if(Objects.nonNull(schedule)){
+                lessonExamination.setOrganId(schedule.getOrganId());
+                lessonExamination.setMusicGroupId(schedule.getMusicGroupId());
+                lessonExamination.setClassGroupId(schedule.getClassGroupId());
+                lessonExamination.setCourseScheduleId(schedule.getId());
+            }
+        }else if(param.getClassGroupId() != null){
+            ClassGroup classGroup = classGroupDao.get(param.getClassGroupId());
+            if(Objects.nonNull(classGroup)){
+                lessonExamination.setClassGroupId(classGroup.getId());
+                lessonExamination.setMusicGroupId(classGroup.getMusicGroupId());
+                MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+                if(Objects.nonNull(musicGroup)){
+                    lessonExamination.setOrganId(musicGroup.getOrganId());
+                }
+            }
+        }else {
+            Teacher teacher = teacherDao.get(param.getTeacherId());
+            if(Objects.nonNull(teacher)){
+                lessonExamination.setOrganId(teacher.getTeacherOrganId());
+            }
+        }
         lessonExamination.setExpireDate(expireDate);
         lessonExamination.setTeacherId(param.getTeacherId());
         baseMapper.insert(lessonExamination);
-        studentLessonExaminationService.save(lessonExamination.getId(),split);
-        studentLessonExaminationDetailService.save(lessonExamination.getId(),split,examinationDetailDtos);
+        studentLessonExaminationService.save(lessonExamination.getId(),param.getStudentLessonExaminationSaveDtos());
+        studentLessonExaminationDetailService.save(lessonExamination.getId(),param.getStudentLessonExaminationSaveDtos());
     }
 
     @Override

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -868,9 +868,6 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
                                                          .filter(o -> o.getSubjectId().equals(query.getSubjectId()))
                                                          .collect(Collectors.toList());
         }
-        for (StudentCourseHomework studentCourseHomework : extraExerciseStudents) {
-            studentCourseHomework.setType(ELessonTrainingType.EXTRACURRICULAR);
-        }
         return getStudentCourseHomeworks(extraExerciseStudents);
     }
 

+ 13 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -804,7 +804,6 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
             }
             for (CourseHomeworkWrapper.CourseHomeworkList courseHomeworkList : courseHomeworkLists) {
 
-                courseHomeworkList.setType(ELessonTrainingType.HOMEWORK);
                 // 乐团信息
                 MusicGroup musicGroup = musicGroupMap.get(courseHomeworkList.getMusicGroupId());
                 if (Objects.nonNull(musicGroup)) {
@@ -822,12 +821,24 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
                 if (StringUtils.isEmpty(courseHomeworkList.getMusicGroupId()) && courseHomeworkList.getClassGroupId() == null) {
                     String studentIdList = courseHomeworkList.getStudentIdList();
                     if (StringUtils.isNotBlank(studentIdList)) {
+
                         String[] split = studentIdList.split(",");
                         String userId = split[0];
                         SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(userId));
-                        courseHomeworkList.setMusicGroupName(sysUser.getUsername() + "等"+split.length+"名学员");
+                        if (split.length == 1) {
+                            courseHomeworkList.setMusicGroupName(sysUser.getUsername());
+                        } else {
+                            courseHomeworkList.setMusicGroupName(sysUser.getUsername() + "等" + split.length + "名学员");
+                        }
                     }
                 }
+
+                // 设置老师信息
+                SysUser sysUser = sysUserFeignService.queryUserById(courseHomeworkList.getTeacherId());
+                if (Objects.nonNull(sysUser)) {
+                    courseHomeworkList.setTeacherName(sysUser.getUsername());
+                    courseHomeworkList.setTeacherImg(sysUser.getAvatar());
+                }
             }
 
             pageInfo.setRows(courseHomeworkLists);

+ 24 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationDetailServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.biz.dal.dao.StudentLessonExaminationDetailDao;
 import com.ym.mec.biz.dal.dto.LessonExaminationDetailDto;
 import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationSaveDto;
 import com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail;
 import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
 import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
@@ -34,27 +35,31 @@ public class StudentLessonExaminationDetailServiceImpl extends ServiceImpl<Stude
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void save(Long lessonExaminationId, String[] studentIds, List<LessonExaminationDetailDto> detailDtos) {
+    public void save(Long lessonExaminationId,List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos) {
         List<StudentLessonExaminationDetail> detailList = new ArrayList<>();
-        for (String id : studentIds) {
-            Integer studentId = Integer.parseInt(id);
-            Integer score = 100/detailDtos.size();
-            Integer subScore = 100 - score * detailDtos.size();
-            for (int i = 0; i < detailDtos.size(); i++) {
-                LessonExaminationDetailDto vo = detailDtos.get(i);
-                StudentLessonExaminationDetail studentLessonExaminationDetail = new StudentLessonExaminationDetail();
-                studentLessonExaminationDetail.setLessonExaminationId(lessonExaminationId);
-                studentLessonExaminationDetail.setStandardScore(vo.getScore());
-                if(i == 0){
-                    studentLessonExaminationDetail.setAvgScore(score + subScore);
-                }else {
-                    studentLessonExaminationDetail.setAvgScore(score);
+        for (StudentLessonExaminationSaveDto dto : studentLessonExaminationSaveDtos) {
+            String[] studentIds = dto.getStudentIds().split(",");
+            List<LessonExaminationDetailDto> detailDtos = dto.getExaminationDetailDtos();
+            for (String id : studentIds) {
+                Integer studentId = Integer.parseInt(id);
+                Integer score = 100/detailDtos.size();
+                Integer subScore = 100 - score * detailDtos.size();
+                for (int i = 0; i < detailDtos.size(); i++) {
+                    LessonExaminationDetailDto vo = detailDtos.get(i);
+                    StudentLessonExaminationDetail studentLessonExaminationDetail = new StudentLessonExaminationDetail();
+                    studentLessonExaminationDetail.setUserId(studentId);
+                    studentLessonExaminationDetail.setLessonExaminationId(lessonExaminationId);
+                    studentLessonExaminationDetail.setMusicScoreId(vo.getMusicScoreId());
+                    studentLessonExaminationDetail.setHeardLevel(vo.getHeardLevel());
+                    studentLessonExaminationDetail.setStandardScore(vo.getScore());
+                    if(i == 0){
+                        studentLessonExaminationDetail.setAvgScore(score + subScore);
+                    }else {
+                        studentLessonExaminationDetail.setAvgScore(score);
+                    }
+                    studentLessonExaminationDetail.setPartIndex(vo.getPartIndex());
+                    detailList.add(studentLessonExaminationDetail);
                 }
-                studentLessonExaminationDetail.setPartIndex(vo.getPartIndex());
-                studentLessonExaminationDetail.setHeardLevel(vo.getHeardLevel());
-                studentLessonExaminationDetail.setUserId(studentId);
-                studentLessonExaminationDetail.setMusicScoreId(vo.getMusicScoreId());
-                detailList.add(studentLessonExaminationDetail);
             }
         }
         baseMapper.insertBatch(detailList);

+ 73 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationServiceImpl.java

@@ -1,26 +1,30 @@
 package com.ym.mec.biz.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.biz.dal.dao.LessonExaminationDao;
 import com.ym.mec.biz.dal.dao.StudentLessonExaminationDao;
 import com.ym.mec.biz.dal.dao.StudentLessonExaminationDetailDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.dto.LessonExaminationSubmitDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationSaveDto;
+import com.ym.mec.biz.dal.entity.LessonExamination;
 import com.ym.mec.biz.dal.entity.StudentLessonExamination;
 import com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail;
 import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryInfo;
+import com.ym.mec.biz.service.LessonExaminationService;
+import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
 import com.ym.mec.biz.service.StudentLessonExaminationService;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -34,26 +38,31 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
 
     private final static Logger log = LoggerFactory.getLogger(StudentLessonExaminationServiceImpl.class);
 
+    @Autowired
+    private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
+    @Autowired
+    private LessonExaminationDao lessonExaminationDao;
+
     @Override
     public StudentLessonExaminationDao getDao() {
         return this.baseMapper;
     }
 
-    @Autowired
-    private SysConfigDao sysConfigDao;
-    @Autowired
-    private StudentLessonExaminationDetailDao studentLessonExaminationDetailDao;
-
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void save(Long lessonExaminationId, String[] studentIds) {
+    public void save(Long lessonExaminationId, List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos) {
         List<StudentLessonExamination> studentLessonExaminations = new ArrayList<>();
-        for (String studentId : studentIds) {
-            StudentLessonExamination studentLessonExamination = new StudentLessonExamination();
-            studentLessonExamination.setLessonExaminationId(lessonExaminationId);
-            studentLessonExamination.setUserId(Integer.parseInt(studentId));
-            studentLessonExaminations.add(studentLessonExamination);
+        for (StudentLessonExaminationSaveDto dto : studentLessonExaminationSaveDtos) {
+            String[] studentIds = dto.getStudentIds().split(",");
+            for (String studentId : studentIds) {
+                StudentLessonExamination studentLessonExamination = new StudentLessonExamination();
+                studentLessonExamination.setLessonExaminationId(lessonExaminationId);
+                studentLessonExamination.setUserId(Integer.parseInt(studentId));
+                studentLessonExamination.setSubjectId(dto.getSubjectId());
+                studentLessonExaminations.add(studentLessonExamination);
+            }
         }
+
         baseMapper.insertBatch(studentLessonExaminations);
     }
 
@@ -79,7 +88,54 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void submit(LessonExaminationSubmitDto submitDto) {
-
+        Long studentLessonExaminationDetailId = submitDto.getStudentLessonExaminationDetailId();
+        StudentLessonExaminationDetail detail = studentLessonExaminationDetailService.getById(studentLessonExaminationDetailId);
+        if(Objects.isNull(detail)){
+            throw new BizException("训练内容不存在");
+        }
+        Long lessonExaminationId = detail.getLessonExaminationId();
+        Integer userId = detail.getUserId();
+        LessonExamination lessonExamination = lessonExaminationDao.selectById(lessonExaminationId);
+        if(Objects.isNull(lessonExamination)){
+            throw new BizException("训练内容不存在");
+        }
+        Date now = new Date();
+        Date expireDate = DateUtil.stringToDate(lessonExamination.getExpireDate(), DateUtil.DEFAULT_PATTERN);
+        if(DateUtil.daysBetween(now,expireDate) < 0){
+            throw new BizException("训练已截止");
+        }
+        StudentLessonExamination studentLessonExamination = this.lambdaQuery().eq(StudentLessonExamination::getLessonExaminationId, lessonExaminationId)
+                .eq(StudentLessonExamination::getUserId, userId).one();
+        studentLessonExamination.setTrainingTime(now);
+        this.updateById(studentLessonExamination);
+        detail.setTrainingTime(now);
+        if(detail.getTrainingTime() == null){
+            //训练人数加一
+            lessonExaminationDao.updateTrainingNum(lessonExaminationId);
+        }
+        //是否达标
+        if(submitDto.getScore() >= detail.getStandardScore()){
+            if(!detail.getStandardFlag()){
+                //达标人数加一
+                lessonExaminationDao.updateStandardNum(lessonExaminationId);
+            }
+            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());
+        }
+        //更新详情
+        studentLessonExaminationDetailService.updateById(detail);
+        //更新总分
+        if(flag){
+            baseMapper.updateTrainingScore(lessonExaminationId,userId);
+        }
     }
 
     @Override

+ 7 - 2
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -135,6 +135,9 @@
 			<if test="completedNum != null">
 			completed_num_ = #{completedNum},
 			</if>
+            <if test="versionTag != null and versionTag != ''">
+                version_tag_ = #{versionTag},
+            </if>
 			update_time_ = NOW()
 		</set> WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
@@ -388,7 +391,8 @@
             null as finishNum,
             null as assignTime,
             null as expiryDate,
-            null as studentIdList
+            null as studentIdList,
+            null as teacherId
             from music_group
             where id_ in
             <foreach collection="subjectIds" item="item" separator="," open="(" close=")">
@@ -408,7 +412,8 @@
         completed_num_ as finishNum,
         create_time_ as assignTime,
         expire_date_ as expiryDate,
-        student_id_list_ as studentIdList
+        student_id_list_ as studentIdList,
+        teacher_id_ as teacherId
         from extracurricular_exercises
         <where>
 

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml

@@ -262,7 +262,8 @@
 		</where>
 	</sql>
 	<select id="countStudentExtraExercises" resultType="int">
-		SELECT COUNT(id_) FROM extracurricular_exercises_reply eer
+		SELECT COUNT(eer.id_) FROM extracurricular_exercises_reply eer
+        left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
 		<include refid="queryStudentExtraExercisesCondition"/>
 	</select>
 	<select id="findStudentExtraExercises" resultMap="ExtraExerciseStudentsDto">
@@ -274,7 +275,7 @@
         ee.group_type_  as `type`,
             ee.id_ as extracurricularExercisesId,
             ee.music_group_id_ as musicGroupId,
-            eer.class_group_id_ as classGroupId,
+        ee.class_group_id_ as classGroupId,
 			tea.real_name_ teacher_name_,
 			tea.avatar_,
 			su.username_ student_name_

+ 18 - 20
mec-biz/src/main/resources/config/mybatis/LessonExaminationMapper.xml

@@ -3,38 +3,36 @@
 <mapper namespace="com.ym.mec.biz.dal.dao.LessonExaminationDao">
     <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.LessonExamination">
         <id column="id_" property="id"/>
-        <result column="teacher_id_" property="teacherId"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="music_group_id_" property="musicGroupId"/>
         <result column="class_group_id_" property="classGroupId"/>
         <result column="course_schedule_id_" property="courseScheduleId"/>
-        <result column="heard_level_" property="heardLevel"/>
-        <result column="batch_no_" property="batchNo"/>
-        <result column="title_" property="title"/>
-        <result column="attachments_" property="attachments"/>
-        <result column="content_" property="content"/>
-        <result column="expire_date_" jdbcType="TIMESTAMP" property="expireDate"/>
-        <result column="completed_num_" property="completedNum"/>
+        <result column="teacher_id_" property="teacherId"/>
+        <result column="expire_date_" property="expireDate"/>
+        <result column="standard_num_" property="standardNum"/>
+        <result column="training_num_" property="trainingNum"/>
         <result column="expect_num_" property="expectNum"/>
-        <result column="music_score_id_" property="musicScoreId"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
         <result column="tenant_id_" property="tenantId"/>
     </resultMap>
 
-    <sql id="Base_Column_List">
-        id_
-        , teacher_id_, batch_no_, title_, attachments_, content_, expire_date_, completed_num_, expect_num_, music_score_id_, create_time_, update_time_, tenant_id_
-    </sql>
-
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.ym.mec.biz.dal.dto.LessonExaminationSaveDto">
-        insert into lesson_examination(teacher_id_, batch_no_, title_, attachments_, content_, expire_date_,
-        completed_num_, expect_num_, music_score_id_,tenant_id_)
+        insert into lesson_examination(organ_id_, music_group_id_, class_group_id_, course_schedule_id_, teacher_id_,
+        expire_date_, standard_num_, training_num_, expect_num_,tenant_id_)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.teacherId}, #{entity.batchNo}, #{entity.title}, #{entity.attachments}, #{entity.content},
-            #{entity.expireDate}, #{entity.completedNum}, #{entity.expectNum}, #{entity.musicScoreId},#{entity.tenantId})
+            (#{entity.organId}, #{entity.musicScoreId}, #{entity.classGroupId}, #{entity.courseScheduleId}, #{entity.teacherId},
+             #{entity.expireDate}, #{entity.standardNum},#{entity.trainingNum}, #{entity.expectNum},#{entity.tenantId})
         </foreach>
     </insert>
+    <update id="updateTrainingNum">
+        UPDATE lesson_examination SET training_num_ = training_num_ + 1 WHERE id_ = #{lessonExaminationId}
+    </update>
+    <update id="updateStandardNum">
+        UPDATE lesson_examination SET standard_num_ = standard_num_ + 1 WHERE id_ = #{lessonExaminationId}
+    </update>
     <select id="queryPage" resultType="com.ym.mec.biz.dal.dto.LessonExaminationResultDto">
         select le.*,cg.name_ classGroupName
         from lesson_examination le
@@ -104,7 +102,7 @@
         from student_lesson_examination sle
         left join lesson_examination le ON sle.lesson_examination_id_ = le.id_
         left join class_group cg ON cg.id_ = le.class_group_id_
-        left join music_group mg ON mg.id_ = cg.music_group_id_
+        left join music_group mg ON mg.id_ = le.music_group_id_
         <include refid="queryPageByStudentSql"/>
         ORDER BY sle.id_ DESC
     </select>
@@ -120,7 +118,7 @@
         from student_lesson_examination sle
                  left join lesson_examination le ON sle.lesson_examination_id_ = le.id_
                  left join class_group cg ON cg.id_ = le.class_group_id_
-                 left join music_group mg ON mg.id_ = cg.music_group_id_
+                 left join music_group mg ON mg.id_ = le.music_group_id_
         WHERE sle.lesson_examination_id_ = #{lessonExaminationId} AND sle.user_id_ = #{userId} LIMIT 1
     </select>
 

+ 2 - 0
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -368,6 +368,7 @@
         <result property="musicGroupId" column="musicGroupId"/>
         <result property="classGroupId" column="classGroupId"/>
         <result property="teachMode" column="teachMode"/>
+        <result property="submitTime" column="submitTime"/>
         <result property="standardFlag" column="standardFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
     <select id="findStudentHomeworkRecord" resultMap="StudentHomeworkRecordDto">
@@ -379,6 +380,7 @@
         CONCAT(cs.class_date_,' ',cs.end_class_time_) endClassTime,
         cs.actual_teacher_id_,
         sch.status_,
+        sch.submit_time_ as submitTime,
         sch.standard_flag_ as standardFlag,
         ch.expiry_date_,
         su.real_name_,

+ 20 - 25
mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationDetailMapper.xml

@@ -2,40 +2,35 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.StudentLessonExaminationDetailDao">
     <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail">
-        <id column="id_" jdbcType="INTEGER" property="id"/>
-        <result column="user_id_" jdbcType="INTEGER" property="userId"/>
-        <result column="lesson_examination_id_" jdbcType="INTEGER" property="lessonExaminationId"/>
-        <result column="student_lesson_examination_id_" jdbcType="INTEGER" property="studentLessonExaminationId"/>
-        <result column="music_score_id_" jdbcType="INTEGER" property="musicScoreId"/>
-        <result column="heard_level_" jdbcType="VARCHAR" property="heardLevel"/>
-        <result column="training_score_" jdbcType="INTEGER" property="trainingScore"/>
-        <result column="training_status_" jdbcType="VARCHAR" property="trainingStatus"/>
-        <result column="score_" jdbcType="INTEGER" property="score"/>
-        <result column="standard_score_" jdbcType="INTEGER" property="standardScore"/>
-        <result column="part_index_" jdbcType="INTEGER" property="partIndex"/>
-        <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
-        <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
+        <id column="id_" property="id"/>
+        <result column="user_id_" property="userId"/>
+        <result column="lesson_examination_id_" property="lessonExaminationId"/>
+        <result column="music_score_id_" property="musicScoreId"/>
+        <result column="heard_level_" property="heardLevel"/>
+        <result column="standard_flag_" property="standardFlag"/>
+        <result column="training_score_" property="trainingScore"/>
+        <result column="standard_score_" property="standardScore"/>
+        <result column="avg_score_" property="avgScore"/>
+        <result column="actual_avg_score_" property="actualAvgScore"/>
+        <result column="part_index_" property="partIndex"/>
+        <result column="training_time_" property="trainingTime"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
     </resultMap>
 
-    <sql id="Base_Column_List">
-        id_
-        , user_id_, lesson_examination_id_, student_lesson_examination_id_, music_score_id_, heard_level_, training_score_, training_status_, score_, standard_score_, part_index_, create_time_, update_time_
-    </sql>
-
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail">
-        insert into student_lesson_examination_detail(user_id_, lesson_examination_id_, student_lesson_examination_id_,
-        music_score_id_, heard_level_, training_score_, training_status_, score_, standard_score_, part_index_,
-        create_time_, update_time_)
+        insert into student_lesson_examination_detail(user_id_, lesson_examination_id_, music_score_id_, heard_level_, standard_flag_,
+                                                      training_score_, standard_score_, avg_score_, actual_avg_score_, part_index_, training_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.userId}, #{entity.lessonExaminationId}, #{entity.studentLessonExaminationId},
-            #{entity.musicScoreId}, #{entity.heardLevel}, #{entity.trainingScore}, #{entity.trainingStatus},
-            #{entity.score}, #{entity.standardScore}, #{entity.partIndex}, #{entity.createTime}, #{entity.updateTime})
+            (#{entity.userId}, #{entity.lessonExaminationId},#{entity.musicScoreId}, #{entity.heardLevel},
+             #{entity.standardFlag}, #{entity.trainingScore},#{entity.standardScore}, #{entity.avgScore},
+            #{entity.actualAvgScore},#{entity.partIndex}, #{entity.trainingTime})
         </foreach>
     </insert>
     <select id="queryAll" resultType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto">
-        select sms.name_ musicScoreName,sled.id_ id, sled.user_id_ userId, sled.lesson_examination_id_ lessonExaminationId, sled.music_score_id_ musicScoreId,
+        select sms.name_ musicScoreName,sled.id_ studentLessonExaminationDetailId, sled.user_id_ userId, sled.lesson_examination_id_ lessonExaminationId, sled.music_score_id_ musicScoreId,
                sled.heard_level_ heardLevel, sled.training_score_ trainingScore,sled.training_flag_ trainingFlag, sled.score_ score,
                sled.standard_score_ standardScore, sled.part_index_ partIndex
         from student_lesson_examination_detail sled

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationMapper.xml

@@ -29,6 +29,13 @@
             #{entity.standardFlag}, #{entity.trainingTime}, #{entity.subjectId})
         </foreach>
     </insert>
+    <update id="updateTrainingScore">
+        UPDATE student_lesson_examination
+        set training_score_ = (
+            select SUM(actual_avg_score_) from student_lesson_examination_detail
+            where lesson_examination_id_ = #{lessonExaminationId} and user_id_ = #{userId})
+        where lesson_examination_id_ = #{lessonExaminationId} and user_id_ = #{userId}
+    </update>
     <sql id="queryPageSql">
         <where>
             <if test="lessonExaminationId != null">

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkController.java

@@ -111,7 +111,7 @@ public class StudentCourseHomeworkController extends BaseController {
 
     @ApiOperation(value = "获取学生作业记录")
     @GetMapping(value = "/findStudentHomeworkRecord/v2")
-    public HttpResponseResult<PageInfo<StudentHomeworkRecordDto>> findStudentHomeworkRecordV2(CourseHomeworkQueryInfo queryInfo){
+    public HttpResponseResult<PageInfo<StudentHomeworkRecordDto>> findStudentHomeworkRecordV2( CourseHomeworkQueryInfo queryInfo){
         queryInfo.setUserId(sysUserService.getUserId().longValue());
         queryInfo.setVersionTag("v2");
         return succeed(studentCourseHomeworkService.findStudentHomeworkRecord(queryInfo));

+ 3 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
@@ -117,6 +118,7 @@ public class ExtracurricularExercisesController extends BaseController {
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
         exercises.setTeacherId(sysUser.getId());
+        exercises.setGroupType(ELessonTrainingType.EXTRACURRICULAR.getCode());
         extracurricularExercisesService.createExtraExercises(exercises);
         return succeed();
     }
@@ -135,6 +137,7 @@ public class ExtracurricularExercisesController extends BaseController {
             exercises.setExpireDate(instance.getTime());
         }
 
+        exercises.setGroupType(ELessonTrainingType.EXTRA.getCode());
         exercises.setTeacherId(sysUser.getId());
         extracurricularExercisesService.createExtraExercises(exercises);
         return succeed();