liujunchi 2 年之前
父節點
當前提交
0f5f9114ff
共有 35 個文件被更改,包括 576 次插入141 次删除
  1. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LessonExaminationDao.java
  2. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonExaminationDao.java
  3. 101 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkWrapper.java
  4. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HomeworkStat.java
  5. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto.java
  6. 1 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto1.java
  7. 8 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto1.java
  8. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDto.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDto1.java
  10. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonExamination.java
  11. 8 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExamination.java
  12. 14 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExaminationDetail.java
  13. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseQueryInfo.java
  14. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo.java
  15. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java
  16. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesService.java
  17. 1 5
      mec-biz/src/main/java/com/ym/mec/biz/service/LessonExaminationService.java
  18. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentLessonExaminationService.java
  19. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java
  20. 25 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java
  21. 43 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java
  22. 33 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonExaminationServiceImpl.java
  23. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationServiceImpl.java
  24. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  25. 24 1
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml
  26. 47 7
      mec-biz/src/main/resources/config/mybatis/LessonExaminationMapper.xml
  27. 42 15
      mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationMapper.xml
  28. 31 4
      mec-student/src/main/java/com/ym/mec/student/controller/LessonExaminationController.java
  29. 14 0
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkController.java
  30. 0 51
      mec-student/src/main/java/com/ym/mec/student/controller/StudentLessonExaminationController.java
  31. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseHomeworkController.java
  32. 11 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java
  33. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/StudentLessonExaminationDetailController.java
  34. 21 0
      mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesController.java
  35. 18 9
      mec-web/src/main/java/com/ym/mec/web/controller/LessonExaminationController.java

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

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto;
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto1;
+import com.ym.mec.biz.dal.dto.LessonExaminationResultDto2;
 import com.ym.mec.biz.dal.dto.LessonExaminationSaveDto;
 import com.ym.mec.biz.dal.entity.LessonExamination;
 import org.apache.ibatis.annotations.Param;
@@ -27,5 +28,7 @@ public interface LessonExaminationDao extends BaseMapper<LessonExamination> {
     List<LessonExaminationResultDto1> queryPageByStudent(Map<String, Object> params);
 
     int findCountByStudent(Map<String, Object> params);
+
+    LessonExaminationResultDto1 getOneByStudent(@Param("userId") Integer userId, @Param("lessonExaminationId") Long lessonExaminationId);
 }
 

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1;
 import com.ym.mec.biz.dal.entity.StudentLessonExamination;
 import org.apache.ibatis.annotations.Param;
 
@@ -21,5 +22,7 @@ public interface StudentLessonExaminationDao extends BaseMapper<StudentLessonExa
     List<StudentLessonExaminationDto> queryPage(Map<String, Object> params);
 
     int findCount(Map<String, Object> params);
+
+    List<StudentLessonExaminationDto1> queryStudentPage(@Param("lessonExaminationId") Long lessonExaminationId);
 }
 

+ 101 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkWrapper.java

@@ -1,7 +1,9 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.EHomeWorkStatus;
 import com.ym.mec.biz.dal.enums.ELessonTrainingType;
+import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -52,6 +54,10 @@ public class CourseHomeworkWrapper {
 
         @ApiModelProperty(value = "作业练习状态 UNASSIGNED:未布置,ASSIGNED:已布置,DEADLINE:已截止")
         private EHomeWorkStatus homeWorkStatus;
+
+
+        @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+        private ELessonTrainingType type;
     }
 
 
@@ -209,4 +215,99 @@ public class CourseHomeworkWrapper {
     }
 
 
+    @Data
+    @ApiModel(value = "WebExtraCourseHomework-课外作业列表")
+    public static class WebExtraCourseHomework {
+
+        /**  */
+        private Long id;
+
+        private String musicGroupId;
+
+        /** 老师编号 */
+        @ApiModelProperty(value="等级")
+        private Integer teacherId;
+
+        private SysUser teacher = new SysUser();
+
+        /** 学生列表 */
+        @ApiModelProperty(value="学生列表")
+        private String studentIdList;
+
+        @ApiModelProperty("班级id")
+        private Integer classGroupId;
+
+        @ApiModelProperty("作业来源分类")
+        private String groupType;
+
+        /** 批次号 */
+        @ApiModelProperty(value="批次号")
+        private String batchNo;
+
+        /** 标题 */
+        @ApiModelProperty(value="标题")
+        private String title;
+
+        /** 附件地址(多个用逗号分隔) */
+        @ApiModelProperty(value="附件地址(多个用逗号分隔)")
+        private String attachments;
+
+        /** 作业内容 */
+        @ApiModelProperty(value="作业内容")
+        private String content;
+
+        /** 截止日期 */
+        @ApiModelProperty(value="截止日期")
+        private java.util.Date expireDate;
+
+        /** 完成人数 */
+        @ApiModelProperty(value="完成人数")
+        private Integer completedNum;
+
+        /** 预计人数 */
+        @ApiModelProperty(value="预计人数")
+        private Integer expectNum;
+
+        /**  */
+        private java.util.Date createTime;
+
+        /**  */
+        private java.util.Date updateTime;
+
+        @ApiModelProperty(value="是否及时回复")
+        private int isReplied;
+
+        @ApiModelProperty(value="是否提交")
+        private int isSubmit;
+
+        private int status;
+
+        private String organName;
+
+        private ImSendTypeEnum msgType = ImSendTypeEnum.TXT;
+
+        /** 伴奏列表(多个用逗号分隔) */
+        @ApiModelProperty(value="伴奏列表(多个用逗号分隔)")
+        private String musicScoreId;
+
+        private String musicScoreName;
+
+        private List<MusicScoreSubjectDto> musicScoreSubjectDtos;
+
+
+        @ApiModelProperty("乐团名")
+        private String musicGroupName;
+
+        @ApiModelProperty("班级名")
+        private String classGroupName;
+
+
+        @ApiModelProperty("布置时间")
+        private Date assignTime;
+
+        @ApiModelProperty("练习内容")
+        private List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> trainingDetailList;
+    }
+
+
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HomeworkStat.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-04-06
+ */
+@Data
+public class HomeworkStat {
+
+    @ApiModelProperty("类型  HOMEWORK:作业,EXAMINATION:评测")
+    private String type;
+
+    @ApiModelProperty("是否展示  true:展示,false:不展示")
+    private boolean show;
+}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto.java

@@ -4,6 +4,8 @@ package com.ym.mec.biz.dal.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  *
  * @author zx
@@ -14,15 +16,33 @@ public class LessonExaminationResultDto{
     @ApiModelProperty(value = "测验编号")
     private Long id;
 
+    @ApiModelProperty(value = "分部")
+    private Integer organId;
+
+    @ApiModelProperty(value = "分部")
+    private String organName;
+
     @ApiModelProperty(value = "班级名称")
     private String classGroupName;
 
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
     @ApiModelProperty(value = "乐团名称")
     private String musicGroupName;
 
+    @ApiModelProperty(value = "老师姓名")
+    private String teacherName;
+
+    @ApiModelProperty(value = "老师编号")
+    private Integer teacherId;
+
     @ApiModelProperty(value = "班级编号")
     private Long classGroupId;
 
+    @ApiModelProperty(value = "布置时间")
+    private Date createTime;
+
     @ApiModelProperty(value = "截止日期")
     private String expireDate;
 

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

@@ -29,16 +29,7 @@ public class LessonExaminationResultDto1 {
     @ApiModelProperty(value = "截止日期")
     private String expireDate;
 
-    @ApiModelProperty(value = "是否截止")
-    private Boolean expireFlag;
-
-    @ApiModelProperty(value = "是否达标")
-    private Boolean standardFlag;
-
-    @ApiModelProperty(value = "是否训练")
-    private Boolean trainingFlag;
-
     @ApiModelProperty(value = "测评分数")
-    private Integer score;
+    private Integer trainingScore;
 }
 

+ 8 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto1.java

@@ -18,7 +18,13 @@ public class StudentLessonExaminationDetailDto1 {
     @ApiModelProperty(value = "练习最高分数")
     private Integer trainingScore;
 
-    @ApiModelProperty(value = "合格分数")
-    private Integer score;
+    @ApiModelProperty(value = "达标分数")
+    private Integer standardScore;
+
+    @ApiModelProperty(value = "实际均摊得分")
+    private Integer actualAvgScore;
+
+    @ApiModelProperty(value = "均摊总分")
+    private Integer avgScore;
 }
 

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDto.java

@@ -20,11 +20,11 @@ public class StudentLessonExaminationDto {
     @ApiModelProperty(value = "学员姓名")
     private String username;
 
-    @ApiModelProperty(value = "最大分数训练评测时间")
+    @ApiModelProperty(value = "最评测时间")
     private Date trainingTime;
 
     @ApiModelProperty(value = "测评分数")
-    private Integer score;
+    private Integer trainingScore;
 
     @ApiModelProperty(value = "是否会员")
     private Boolean memberFlag;

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

@@ -21,7 +21,7 @@ public class StudentLessonExaminationDto1 {
     private String phone;
 
     @ApiModelProperty(value = "测评分数")
-    private Integer score;
+    private Integer trainingScore;
 
     @ApiModelProperty(value = "学员编号")
     private Integer userId;

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

@@ -23,6 +23,14 @@ public class LessonExamination{
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
 
+    @TableField("organ_id_")
+    @ApiModelProperty(value = "分部编号")
+    private Integer organId;
+
+    @TableField("music_group_id_")
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
     @TableField("class_group_id_")
     @ApiModelProperty(value = "班级编号")
     private Long classGroupId;

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExamination.java

@@ -32,10 +32,6 @@ public class StudentLessonExamination extends BaseEntity {
     @ApiModelProperty(value = "测验编号")
     private Long lessonExaminationId;
 
-    @TableField("score_")
-    @ApiModelProperty(value = "最高练习分数")
-    private Integer score;
-
     @TableField("standard_flag_")
     @ApiModelProperty(value = "是否达标")
     private Integer standardFlag;
@@ -48,6 +44,14 @@ public class StudentLessonExamination extends BaseEntity {
     @ApiModelProperty(value = "测评总分")
     private Boolean trainingScore;
 
+    @TableField("training_time_")
+    @ApiModelProperty(value = "最后测评时间")
+    private Date trainingTime;
+
+    @TableField("subject_id_")
+    @ApiModelProperty(value = "声部")
+    private Integer subjectId;
+
     @TableField("create_time_")
     @ApiModelProperty(value = "创建时间")
     private Date createTime;

+ 14 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExaminationDetail.java

@@ -44,28 +44,32 @@ public class StudentLessonExaminationDetail implements Serializable {
     @ApiModelProperty(value = "评测难度")
     private String heardLevel;
 
-    @TableField("training_score_")
-    @ApiModelProperty(value = "练习最高分数")
-    private Integer trainingScore;
-
     @TableField("training_flag_")
     @ApiModelProperty(value = "是否练习")
     private Boolean trainingFlag;
 
-    @TableField("score_")
-    @ApiModelProperty(value = "合格分数")
-    private Integer score;
-
     @TableField("standard_score_")
-    @ApiModelProperty(value = "达标分")
+    @ApiModelProperty(value = "达标分数")
     private Integer standardScore;
 
+    @TableField("training_score_")
+    @ApiModelProperty(value = "练习最高分数")
+    private Integer trainingScore;
+
+    @TableField("actual_avg_score_")
+    @ApiModelProperty(value = "实际均摊得分")
+    private Integer actualAvgScore;
+
+    @TableField("avg_score_")
+    @ApiModelProperty(value = "均摊总分")
+    private Integer avgScore;
+
     @TableField("part_index_")
     @ApiModelProperty(value = "分谱")
     private Integer partIndex;
 
     @TableField("training_time_")
-    @ApiModelProperty(value = "最高分提交时间")
+    @ApiModelProperty(value = "最提交时间")
     private Date trainingTime;
 
     @TableField("create_time_")

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseQueryInfo.java

@@ -43,6 +43,40 @@ public class ExtraExercilseQueryInfo extends QueryInfo {
     @ApiModelProperty("完成状态 false 未完成 true 已完成")
     private Boolean finishStatus;
 
+    @ApiModelProperty("模糊查询 乐团名称/老师")
+    private String search;
+
+    @ApiModelProperty("是否是学员布置")
+    private Boolean studentAssignFlag;
+
+    private Long studentExerciseId;
+
+    public Boolean getStudentAssignFlag() {
+        return studentAssignFlag;
+    }
+
+    public void setStudentAssignFlag(Boolean studentAssignFlag) {
+        this.studentAssignFlag = studentAssignFlag;
+    }
+
+    public Long getStudentExerciseId() {
+        return studentExerciseId;
+    }
+
+    public void setStudentExerciseId(Long studentExerciseId) {
+        this.studentExerciseId = studentExerciseId;
+    }
+
+    @Override
+    public String getSearch() {
+        return search;
+    }
+
+    @Override
+    public void setSearch(String search) {
+        this.search = search;
+    }
+
     public ELessonTrainingType getType() {
         return type;
     }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo.java

@@ -7,6 +7,12 @@ import lombok.Data;
 @Data
 public class LessonExaminationQueryInfo extends QueryInfo {
 
+    @ApiModelProperty(value = "分部编号")
+    private String organId;
+
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
     @ApiModelProperty(value = "老师编号")
     private Integer teacherId;
 

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
 import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
 import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
 import com.ym.mec.biz.dal.dto.StudentHomeworkRecordDto;
@@ -70,4 +71,9 @@ public interface ExtracurricularExercisesReplyService extends BaseService<Long,
      *
      */
     PageInfo<StudentHomeworkRecordDto> findStudentExtraExercisesV2(ExtraExercilseQueryInfo queryInfo);
+
+    /**
+     * 查询学生课外训练详情
+     */
+    CourseHomeworkWrapper.CourseHomeworkList findStudentExtraExerciseDetailV2(Long studentExerciseId);
 }

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
 import com.ym.mec.biz.dal.dto.WebCourseHomeworkListDto;
@@ -61,4 +62,6 @@ public interface ExtracurricularExercisesService extends BaseService<Long, Extra
      * @return
      */
     PageInfo<TeacherHomeworkListDto> findExtraExercilsesHomeworks(ExtraExercilseQueryInfo queryInfo);
+
+    PageInfo<CourseHomeworkWrapper.WebExtraCourseHomework> findExtraExercilsesV2(ExtraExercilseQueryInfo queryInfo);
 }

+ 1 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/LessonExaminationService.java

@@ -4,16 +4,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dao.LessonExaminationDao;
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto;
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto1;
-import com.ym.mec.biz.dal.dto.LessonExaminationResultDto2;
 import com.ym.mec.biz.dal.dto.LessonExaminationSaveDto;
 import com.ym.mec.biz.dal.entity.LessonExamination;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo1;
-import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo2;
 import com.ym.mec.common.page.PageInfo;
 
-import java.util.List;
-
 /**
  * 进度评测表(LessonExamination)表服务接口
  *
@@ -30,6 +26,6 @@ public interface LessonExaminationService extends IService<LessonExamination> {
 
     PageInfo<LessonExaminationResultDto1> queryPageByStudent(LessonExaminationQueryInfo1 queryInfo);
 
-    PageInfo<LessonExaminationResultDto2> queryPageByWeb(LessonExaminationQueryInfo2 queryInfo);
+    LessonExaminationResultDto1 getOne(Integer userId, Long lessonExaminationId);
 }
 

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

@@ -35,6 +35,6 @@ public interface StudentLessonExaminationService extends IService<StudentLessonE
     */
     void submit(LessonExaminationSubmitDto submitDto);
 
-    PageInfo<StudentLessonExaminationDto1> queryPageByWeb(Integer studentLessonExaminationId);
+    List<StudentLessonExaminationDto1> queryStudentPage(Long lessonExaminationId);
 }
 

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.HomeworkStat;
 import com.ym.mec.biz.dal.dto.IndexBaseDto;
 
 import java.util.Date;
@@ -67,4 +68,11 @@ public interface StudentServeService {
 
 
     List<IndexBaseDto> musicGroupHomeworkStatWithStu(String musicGroupId, Integer studentId, String startDay, String endDay);
+
+    /**
+     * 展示按钮红点
+     *
+     * @param userId 用户id
+     */
+    List<HomeworkStat> homeworkStat(Integer userId);
 }

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java

@@ -3,11 +3,13 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
 import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
 import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.dto.StudentHomeworkRecordDto;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.EHomeWorkStatus;
 import com.ym.mec.biz.dal.enums.ELessonTrainingType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -15,6 +17,7 @@ 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.ExtracurricularExercisesReplyService;
+import com.ym.mec.biz.service.ExtracurricularExercisesService;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.biz.service.SysConfigService;
@@ -65,6 +68,9 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
     @Autowired
     private ClassGroupDao classGroupDao;
 
+    @Autowired
+    private ExtracurricularExercisesService extracurricularExercisesService;
+
 	@Override
 	public BaseDAO<Long, ExtracurricularExercisesReply> getDAO() {
 		return extracurricularExercisesReplyDao;
@@ -360,4 +366,23 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
         pageInfo.setTotal(studentExtraExercises.getTotal());
         return pageInfo;
     }
+
+    @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;
+
+
+    }
 }

+ 43 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
@@ -39,6 +41,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -65,6 +68,9 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
 
     @Autowired
+    private ClassGroupDao classGroupDao;
+
+    @Autowired
     private StudentLessonTrainingDetailService studentLessonTrainingDetailService;
 
 	@Override
@@ -351,4 +357,41 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 		}
 		return pageInfo;
 	}
+
+    @Override
+    public PageInfo<CourseHomeworkWrapper.WebExtraCourseHomework> findExtraExercilsesV2(ExtraExercilseQueryInfo queryInfo) {
+        PageInfo<ExtracurricularExercises> extracurricularExercisesPageInfo = this.queryPage(queryInfo);
+        List<ExtracurricularExercises> rows = extracurricularExercisesPageInfo.getRows();
+        if (CollectionUtils.isEmpty(rows)) {
+            return new PageInfo<>();
+        }
+
+        PageInfo<CourseHomeworkWrapper.WebExtraCourseHomework> convert = extracurricularExercisesPageInfo.convert(
+            o -> JSON.parseObject(JSON.toJSONString(o), CourseHomeworkWrapper.WebExtraCourseHomework.class));
+
+        List<CourseHomeworkWrapper.WebExtraCourseHomework> rows1 = convert.getRows();
+
+        // 设置班级名称
+        List<Integer> classIds = rows1.stream().map(CourseHomeworkWrapper.WebExtraCourseHomework::getClassGroupId).filter(Objects::nonNull).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(classIds)) {
+            return convert;
+        }
+
+        List<ClassGroup> classGroups = classGroupDao.queryByIds(classIds);
+
+        // 分组
+        Map<Integer, ClassGroup> classGroupMap = classGroups.stream().collect(Collectors.toMap(ClassGroup::getId, Function.identity()));
+
+        rows1.forEach(o -> {
+            if (o.getClassGroupId() == null) {
+                return;
+            }
+            ClassGroup classGroup = classGroupMap.get(o.getClassGroupId());
+            if (classGroup != null) {
+                o.setClassGroupName(classGroup.getName());
+            }
+        });
+
+        return convert;
+    }
 }

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

@@ -1,34 +1,31 @@
 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.SysConfigDao;
-import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.dao.*;
+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.StudentLessonExamination;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo1;
-import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo2;
 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.common.page.QueryInfo;
-import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
+import org.apache.commons.collections.CollectionUtils;
+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 org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.validation.BindException;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 进度评测表(LessonExamination)表服务实现类
@@ -47,6 +44,12 @@ public class LessonExaminationServiceImpl extends ServiceImpl<LessonExaminationD
     private StudentLessonExaminationService studentLessonExaminationService;
     @Autowired
     private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private TeacherDao teacherDao;
+    @Autowired
+    private OrganizationDao organizationDao;
 
     @Override
     public LessonExaminationDao getDao() {
@@ -92,6 +95,21 @@ public class LessonExaminationServiceImpl extends ServiceImpl<LessonExaminationD
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = baseMapper.queryPage(params);
+            Set<String> musicGroupIds = dataList.stream().filter(e -> StringUtils.isNotEmpty(e.getMusicGroupId())).
+                    map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
+            Map<String, String> musicGroupNameMap = Collections.EMPTY_MAP;
+            if(CollectionUtils.isNotEmpty(musicGroupIds)){
+                musicGroupNameMap = MapUtil.convertIntegerMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds));
+            }
+            List<Integer> teacherIds = dataList.stream().map(e -> e.getTeacherId()).distinct().collect(Collectors.toList());
+            Map<Integer, String> teacherNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(teacherIds));
+            Set<Integer> organIds = dataList.stream().map(e -> e.getOrganId()).collect(Collectors.toSet());
+            Map<Integer, String> organNameMap = MapUtil.convertIntegerMap(organizationDao.findOrganNameMapList(organIds));
+            for (LessonExaminationResultDto vo : dataList) {
+                vo.setOrganName(organNameMap.get(vo.getOrganId()));
+                vo.setMusicGroupName(musicGroupNameMap.get(vo.getMusicGroupId()));
+                vo.setTeacherName(teacherNameMap.get(vo.getTeacherId()));
+            }
         }
         if (count == 0) {
             dataList = new ArrayList<>();
@@ -120,8 +138,8 @@ public class LessonExaminationServiceImpl extends ServiceImpl<LessonExaminationD
     }
 
     @Override
-    public PageInfo<LessonExaminationResultDto2> queryPageByWeb(LessonExaminationQueryInfo2 queryInfo) {
-        return null;
+    public LessonExaminationResultDto1 getOne(Integer userId, Long lessonExaminationId) {
+        return baseMapper.getOneByStudent(userId,lessonExaminationId);
     }
 
 }

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

@@ -83,8 +83,8 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
     }
 
     @Override
-    public PageInfo<StudentLessonExaminationDto1> queryPageByWeb(Integer studentLessonExaminationId) {
-        return null;
+    public List<StudentLessonExaminationDto1> queryStudentPage(Long lessonExaminationId) {
+        return baseMapper.queryStudentPage(lessonExaminationId);
     }
 }
 

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -821,4 +821,19 @@ public class StudentServeServiceImpl implements StudentServeService {
         }
         return result;
     }
+
+    /**
+     * 展示按钮红点
+     *
+     * @param userId 用户id
+     */
+    @Override
+    public List<HomeworkStat> homeworkStat(Integer userId) {
+        List<HomeworkStat> homeworkStatList = new ArrayList<>();
+
+        // 作业按钮红点
+        // studentCourseHomeworkDao.queryNotSuccessHomeworkList(userId);
+
+        return null;
+    }
 }

+ 24 - 1
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -11,6 +11,7 @@
 		<result column="music_group_id_" property="musicGroupId" />
 		<result column="teacher_id_" property="teacherId" />
 		<result column="username_" property="teacher.username" />
+		<result column="classGroupId" property="classGroupId" />
 		<result column="student_id_list_" property="studentIdList" />
 		<result column="batch_no_" property="batchNo" />
 		<result column="title_" property="title" />
@@ -25,6 +26,7 @@
 		<result column="tenant_id_" property="tenantId" />
 		<result column="music_score_id_" property="musicScoreId" />
 		<result column="assignTime" property="assignTime" />
+		<result column="musicGroupName" property="musicGroupName" />
 	</resultMap>
 
 	<sql id="queryPageCondition">
@@ -60,6 +62,23 @@
             <if test="type != null">
                 and ee.group_type_ = #{type}
             </if>
+            <if test="search != null ">
+                and (su.username_ like '%' #{search} '%' or mg.name_ like '%' #{search} '%')
+            </if>
+            <if test="type != null">
+                and ee.group_type_ = #{type}
+            </if>
+            <if test="studentExerciseId != null">
+                and ee.id_ = #{studentExerciseId}
+            </if>
+            <if test="studentAssignFlag != null">
+                <if test="studentAssignFlag == true">
+                    and ee.music_group_id_ is null
+                </if>
+                <if test="studentAssignFlag == false">
+                    and ee.student_id_list_  is not null
+                </if>
+            </if>
 		</where>
 	</sql>
 	
@@ -128,10 +147,12 @@
 	<select id="queryPage" resultMap="ExtracurricularExercises" parameterType="map">
 		SELECT ee.id_,ee.teacher_id_,ee.student_id_list_,ee.batch_no_,ee.title_,ee.attachments_,ee.music_group_id_,
 		       ee.content_,ee.expire_date_,ee.completed_num_,ee.expect_num_,ee.create_time_,ee.update_time_,ee.tenant_id_
-		     ,u.real_name_ username_,o.name_ organ_name_,eer.music_score_id_,ee.create_time_ as assignTime
+		     ,u.real_name_ username_,o.name_ organ_name_,eer.music_score_id_,ee.create_time_ as assignTime,mg.name_ as musicGroupName,ee.class_group_id_ as classGroupId
 		FROM extracurricular_exercises ee LEFT JOIN sys_user u ON ee.teacher_id_ = u.id_
 		LEFT JOIN teacher t ON t.id_ = ee.teacher_id_
+        left join sys_user su on t.id_ = su.id_
 		LEFT JOIN organization o ON o.id_ = t.organ_id_
+        left join music_group mg on mg.id_ = ee.music_group_id_
 		LEFT JOIN extracurricular_exercises_reply eer ON ee.id_ = eer.extracurricular_exercises_id_
 		<include refid="queryPageCondition"/>
 		GROUP BY ee.id_
@@ -142,7 +163,9 @@
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(DISTINCT ee.id_) FROM extracurricular_exercises ee left join sys_user u on ee.teacher_id_ = u.id_
 		left join teacher t on t.id_ = ee.teacher_id_
+        left join sys_user su on t.id_ = su.id_
 		left join organization o on o.id_ = t.organ_id_
+        left join music_group mg on mg.id_ = ee.music_group_id_
 		LEFT JOIN extracurricular_exercises_reply eer ON ee.id_ = eer.extracurricular_exercises_id_
 		<include refid="queryPageCondition"/>
 	</select>

+ 47 - 7
mec-biz/src/main/resources/config/mybatis/LessonExaminationMapper.xml

@@ -36,11 +36,9 @@
         </foreach>
     </insert>
     <select id="queryPage" resultType="com.ym.mec.biz.dal.dto.LessonExaminationResultDto">
-        select le.expire_date_ expireDate,cg.name_ classGroupName,mg.name_ musicGroupName,le.expect_num_ expectNum,
-               le.training_num_ trainingNum,le.standard_num_ standardNum
+        select le.*,cg.name_ classGroupName
         from lesson_examination le
         left join class_group cg ON cg.id_ = le.class_group_id_
-        left join music_group mg ON mg.id_ = cg.music_group_id_
         <include refid="queryPageSql"/>
         GROUP BY le.id_ ORDER BY le.id_ DESC
         <include refid="global.limit"/>
@@ -53,6 +51,12 @@
     </select>
     <sql id="queryPageSql">
         <where>
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND le.music_group_id_ = #{musicGroupId}
+            </if>
+            <if test="organId != null and organId != ''">
+                AND FIND_IN_SET(le.organ_id_,#{organId})
+            </if>
             <if test="teacherId != null">
                 AND le.teacher_id_ = #{teacherId}
             </if>
@@ -71,17 +75,53 @@
         </where>
     </sql>
 
+    <sql id="queryPageByStudentSql">
+        <where>
+            <if test="lessonExaminationId != null">
+                AND sle.lesson_examination_id_ = #{lessonExaminationId}
+            </if>
+            <if test="studentId != null">
+                AND sle.user_id_ = #{studentId}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND DATE_FORMAT( le.create_time_, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
+            </if>
+            <if test="expireFlag != null and expireFlag == true">
+                AND le.expire_date_ &lt; DATE_FORMAT( NOW(), '%Y-%m-%d' )
+            </if>
+            <if test="expireFlag != null and expireFlag == false">
+                AND le.expire_date_ >= DATE_FORMAT( NOW(), '%Y-%m-%d' )
+            </if>
+            <if test="standardFlag != null">
+                AND sle.standard_flag_ = #{standardFlag}
+            </if>
+        </where>
+    </sql>
+
     <select id="queryPageByStudent" resultType="com.ym.mec.biz.dal.dto.LessonExaminationResultDto1">
-        select le.expire_date_ expireDate,cg.name_ classGroupName,mg.name_ musicGroupName,le.expect_num_ expectNum,
-               le.training_num_ trainingNum,le.standard_num_ standardNum,sle.score_
+        select le.expire_date_ expireDate,cg.name_ classGroupName,mg.name_ musicGroupName,
+               sle.training_score_ trainingScore,sle.lesson_examination_id_ LessonExaminationId,sle.user_id_ userId
         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_
-        GROUP BY le.id_ ORDER BY le.id_ DESC
+        <include refid="queryPageByStudentSql"/>
+        ORDER BY sle.id_ DESC
     </select>
     <select id="findCountByStudent" resultType="java.lang.Integer">
-
+        select COUNT(sle.id_)
+        from student_lesson_examination sle
+        left join lesson_examination le ON sle.lesson_examination_id_ = le.id_
+        <include refid="queryPageByStudentSql"/>
+    </select>
+    <select id="getOneByStudent" resultType="com.ym.mec.biz.dal.dto.LessonExaminationResultDto1">
+        select le.expire_date_ expireDate,cg.name_ classGroupName,mg.name_ musicGroupName,
+               sle.training_score_ trainingScore,sle.lesson_examination_id_ LessonExaminationId,sle.user_id_ userId
+        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_
+        WHERE sle.lesson_examination_id_ = #{lessonExaminationId} AND sle.user_id_ = #{userId} LIMIT 1
     </select>
 
 </mapper>

+ 42 - 15
mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationMapper.xml

@@ -2,29 +2,31 @@
 <!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.StudentLessonExaminationDao">
     <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.StudentLessonExamination">
-        <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="score_" jdbcType="INTEGER" property="score"/>
-        <result column="training_status_" jdbcType="VARCHAR" property="trainingStatus"/>
-        <result column="expire_date_" jdbcType="TIMESTAMP" property="expireDate"/>
-        <result column="training_time_" jdbcType="TIMESTAMP" property="trainingTime"/>
-        <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="training_flag_" property="trainingFlag"/>
+        <result column="standard_flag_" property="standardFlag"/>
+        <result column="training_score_" property="trainingScore"/>
+        <result column="training_time_" property="trainingTime"/>
+        <result column="training_time_" property="trainingTime"/>
+        <result column="subject_id_" property="subjectId"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id_
-        , user_id_, lesson_examination_id_, score_, training_status_, expire_date_, training_time_, create_time_, update_time_
+        , user_id_, lesson_examination_id_, training_score_, training_flag_,standard_flag_, training_time_,subject_id_, create_time_, update_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.ym.mec.biz.dal.entity.StudentLessonExamination">
-        insert into student_lesson_examination(user_id_, lesson_examination_id_, score_, training_status_, expire_date_,training_time_)
+        insert into student_lesson_examination(user_id_, lesson_examination_id_, training_score_, training_flag_,standard_flag_, training_time_,subject_id_)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.userId}, #{entity.lessonExaminationId}, #{entity.score}, #{entity.trainingStatus},
-            #{entity.expireDate}, #{entity.trainingTime})
+            (#{entity.userId}, #{entity.lessonExaminationId}, #{entity.trainingScore}, #{entity.trainingFlag},
+            #{entity.standardFlag}, #{entity.trainingTime}, #{entity.subjectId})
         </foreach>
     </insert>
     <sql id="queryPageSql">
@@ -44,19 +46,44 @@
         </where>
     </sql>
     <select id="queryPage" resultType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDto">
-        select su.avatar_ avatar,su.username_ username,sle.training_time_ trainingTime,sle.score_ score,
+        select su.avatar_ avatar,su.username_ username,sle.training_time_ trainingTime,sle.training_score_ trainingScore,
                CASE WHEN s.membership_end_time_ > NOW() THEN 1 ELSE 0 END memberFlag,
                sle.user_id_ userId,sle.lesson_examination_id_ lessonExaminationId,sb.name_ subjectName
         from student_lesson_examination sle
         left join student s ON s.user_id_ = sle.user_id_
         left join subject sb ON s.subject_id_list_ = sb.id_
         left join sys_user su on s.user_id_ = su.id_
-        ORDER BY sle.score_ DESC,sle.id_
+        ORDER BY sle.training_score_ DESC,sle.id_
         <include refid="global.limit"/>
     </select>
     <select id="findCount" resultType="java.lang.Integer">
         select COUNT(sle.id_) from student_lesson_examination sle
         <include refid="global.limit"/>
     </select>
+    <resultMap id="StudentLessonExaminationDtoMap" type="com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1">
+        <result property="subjectName" column="subjectName"/>
+        <result property="userId" column="user_id_"/>
+        <result property="phone" column="phone_"/>
+        <result property="username" column="username_"/>
+        <result property="trainingScore" column="training_score_"/>
+        <association property="detailDtos" javaType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto1">
+            <result property="standardScore" column="standard_score_"/>
+            <result property="trainingScore" column="training_score_"/>
+            <result property="actualAvgScore" column="actual_avg_score_"/>
+            <result property="avgScore" column="avg_score_"/>
+            <result property="musicScoreName" column="musicScoreName"/>
+        </association>
+    </resultMap>
+    <select id="queryStudentPage" resultMap="StudentLessonExaminationDtoMap">
+        select sle.user_id_,su.username_,su.phone_,sb.name_ subjectName,sle.training_score_,
+               sms.name_ musicScoreName,sled.actual_avg_score_,sled.standard_score_,sled.training_score_,sled.avg_score_
+        from student_lesson_examination sle
+        left join student_lesson_examination_detail sled ON sled.lesson_examination_id_ = sle.lesson_examination_id_ AND sled.user_id_ = sle.user_id_
+        left join sys_music_score sms ON sms.id_ = sled.music_score_id_
+        left join sys_user su ON su.id_ = sle.user_id_
+        left join subject sb ON sb.id_ = sle.subject_id_
+        where sle.lesson_examination_id_ = #{lessonExaminationId}
+        ORDER BY sle.training_score_ DESC
+    </select>
 
 </mapper>

+ 31 - 4
mec-student/src/main/java/com/ym/mec/student/controller/LessonExaminationController.java

@@ -2,20 +2,23 @@ package com.ym.mec.student.controller;
 
 
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto1;
+import com.ym.mec.biz.dal.dto.LessonExaminationSubmitDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo1;
+import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
 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.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 进度评测表(LessonExamination)表控制层
@@ -31,6 +34,10 @@ public class LessonExaminationController extends BaseController {
     @Resource
     private LessonExaminationService lessonExaminationService;
     @Resource
+    private StudentLessonExaminationService studentLessonExaminationService;
+    @Resource
+    private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
+    @Resource
     private SysUserService sysUserService;
 
     @ApiOperation(value = "获取作业列表")
@@ -40,5 +47,25 @@ public class LessonExaminationController extends BaseController {
         return succeed(lessonExaminationService.queryPageByStudent(queryInfo));
     }
 
+    @ApiOperation(value = "获取学员单个作业")
+    @GetMapping("getOne")
+    public HttpResponseResult<LessonExaminationResultDto1> getOne(Long lessonExaminationId) {
+        return succeed(lessonExaminationService.getOne(sysUserService.getUserId(),lessonExaminationId));
+    }
+
+    @ApiOperation(value = "提交作业")
+    @PostMapping("submit")
+    public HttpResponseResult submit(@RequestBody LessonExaminationSubmitDto submitDto) {
+        studentLessonExaminationService.submit(submitDto);
+        return succeed();
+    }
+
+    @ApiOperation(value = "获取学员单个作业详情列表")
+    @PostMapping("queryDetailAll")
+    public HttpResponseResult<List<StudentLessonExaminationDetailDto>> queryAll(@RequestBody StudentLessonExaminationQueryDto query) {
+        query.setUserId(sysUserService.getUserId());
+        return succeed(studentLessonExaminationDetailService.queryAll(query));
+    }
+
 }
 

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

@@ -1,6 +1,7 @@
 package com.ym.mec.student.controller;
 
 import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
+import com.ym.mec.biz.dal.dto.HomeworkStat;
 import com.ym.mec.biz.dal.dto.StudentHomeworkRecordDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
@@ -22,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * @Author Joburgess
  * @Date 2019/9/18
@@ -151,4 +154,15 @@ public class StudentCourseHomeworkController extends BaseController {
         return succeed(studentServeService.musicGroupHomeworkStatWithStu(musicGroupId, sysUserService.getUserId(), startDay, endDay));
     }
 
+
+
+    @ApiOperation(value = "学生端-乐团作业情况")
+    @GetMapping("/homeworkStat")
+    public HttpResponseResult<List<HomeworkStat>> homeworkStat() {
+
+        Integer userId = sysUserService.getUserId();
+
+        return succeed(studentServeService.homeworkStat(userId));
+    }
+
 }

+ 0 - 51
mec-student/src/main/java/com/ym/mec/student/controller/StudentLessonExaminationController.java

@@ -1,51 +0,0 @@
-package com.ym.mec.student.controller;
-
-
-import com.ym.mec.biz.dal.dto.LessonExaminationSubmitDto;
-import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto;
-import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryInfo;
-import com.ym.mec.biz.service.StudentLessonExaminationService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 学生进度评测表(StudentLessonExamination)表控制层
- *
- * @author zx
- * @since 2023-04-03 18:21:30
- */
-@Api(tags = "学生进度评测表")
-@RestController
-@RequestMapping("/studentLessonExamination")
-public class StudentLessonExaminationController extends BaseController {
-    /**
-     * 服务对象
-     */
-    @Resource
-    private StudentLessonExaminationService studentLessonExaminationService;
-
-    @ApiOperation(value = "获取单个学员评测")
-    @PostMapping("getOne")
-    public HttpResponseResult<StudentLessonExaminationDto> getOne(@RequestBody StudentLessonExaminationQueryInfo queryInfo) {
-        return succeed(studentLessonExaminationService.queryPage(queryInfo).getRows().get(0));
-    }
-
-    @ApiOperation(value = "提交作业")
-    @PostMapping("submit")
-    public HttpResponseResult submit(@RequestBody LessonExaminationSubmitDto submitDto) {
-        studentLessonExaminationService.submit(submitDto);
-        return succeed();
-    }
-
-
-
-}
-

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseHomeworkController.java

@@ -144,7 +144,7 @@ public class CourseHomeworkController extends BaseController {
 
     @ApiOperation(value = "获取作业详情")
     @GetMapping(value = "/findCourseHomeworkDetail")
-    public HttpResponseResult<CourseHomeworkWrapper.CourseHomeworkList> findCourseHomeworkDetail(Integer courseScheduleId){
+    public HttpResponseResult<CourseHomeworkWrapper.CourseHomeworkList> findCourseHomeworkDetail(Integer courseScheduleId,ELessonTrainingType type){
 
         return succeed(courseHomeworkService.findCourseHomeworkDetail(courseScheduleId));
     }

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

@@ -79,6 +79,17 @@ public class ExtracurricularExercisesController extends BaseController {
         return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeHomeworkDetailV2(queryInfo));
     }
 
+    @ApiOperation(value = "获取教师有服务指标的课程列表")
+    @GetMapping("/queryTeacherExtraHomeworkDetail/v2")
+    public HttpResponseResult<PageInfo<CourseHomeworkWrapper.CourseHomeworkList>> queryTeacherExtraHomeworkDetailV2(CourseHomeworkWrapper.CourseHomeworkQuery queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setTeacherId(sysUser.getId());
+        return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeHomeworkDetailV2(queryInfo));
+    }
+
 
     @ApiOperation(value = "获取老师训练统计")
     @GetMapping("/getStatistics")

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/StudentLessonExaminationDetailController.java

@@ -34,7 +34,7 @@ public class StudentLessonExaminationDetailController extends BaseController {
     private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
 
 
-    @ApiOperation(value = "获取学员列表")
+    @ApiOperation(value = "获取学员评测详情列表")
     @PostMapping("queryAll")
     public HttpResponseResult<List<StudentLessonExaminationDetailDto>> queryAll(@RequestBody StudentLessonExaminationQueryDto query) {
         return succeed(studentLessonExaminationDetailService.queryAll(query));

+ 21 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesController.java

@@ -1,11 +1,15 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
+import com.ym.mec.biz.dal.dto.WebCourseHomeworkListDto;
+import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
 import com.ym.mec.biz.service.ExtracurricularExercisesService;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,4 +46,21 @@ public class ExtracurricularExercisesController extends BaseController {
         }
         return succeed(extracurricularExercisesReplyService.findStudentExtraExerciseDetail(studentExerciseId));
     }
+
+
+    @ApiOperation(value = "获取课外训练列表")
+    @GetMapping("/queryPageList/v2")
+    private HttpResponseResult<PageInfo<CourseHomeworkWrapper.WebExtraCourseHomework>> findExtraExercilsesV2(ExtraExercilseQueryInfo queryInfo){
+        queryInfo.setOrganIdList(organizationService.getEmployeeOrgan(queryInfo.getOrganIdList()));
+        return succeed(extracurricularExercisesService.findExtraExercilsesV2(queryInfo));
+    }
+
+    @ApiOperation(value = "获取课外训练详情")
+    @GetMapping("/findStudentExtraExerciseDetail/v2")
+    private HttpResponseResult<CourseHomeworkWrapper.CourseHomeworkList> findStudentExtraExerciseDetailV2(Long studentExerciseId){
+        if(Objects.isNull(studentExerciseId)){
+            return failed("请选择课外训练");
+        }
+        return succeed(extracurricularExercisesReplyService.findStudentExtraExerciseDetailV2(studentExerciseId));
+    }
 }

+ 18 - 9
mec-web/src/main/java/com/ym/mec/web/controller/LessonExaminationController.java

@@ -1,12 +1,12 @@
 package com.ym.mec.web.controller;
 
 
-import com.ym.mec.biz.dal.dto.LessonExaminationResultDto1;
-import com.ym.mec.biz.dal.dto.LessonExaminationResultDto2;
-import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo1;
-import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo2;
+import com.ym.mec.biz.dal.dto.LessonExaminationResultDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1;
+import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo;
 import com.ym.mec.biz.service.LessonExaminationService;
-import com.ym.mec.biz.service.SysUserService;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.StudentLessonExaminationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 进度评测表(LessonExamination)表控制层
@@ -33,13 +34,21 @@ public class LessonExaminationController extends BaseController {
     @Resource
     private LessonExaminationService lessonExaminationService;
     @Resource
-    private SysUserService sysUserService;
+    private OrganizationService organizationService;
+    @Resource
+    private StudentLessonExaminationService studentLessonExaminationService;
+
+    @ApiOperation(value = "获取作业学员列表")
+    @PostMapping("queryStudentPage")
+    public HttpResponseResult<List<StudentLessonExaminationDto1>> queryStudentPage(Long lessonExaminationId) {
+        return succeed(studentLessonExaminationService.queryStudentPage(lessonExaminationId));
+    }
 
     @ApiOperation(value = "获取作业列表")
     @PostMapping("queryPage")
-    public HttpResponseResult<PageInfo<LessonExaminationResultDto2>> queryPage(@RequestBody LessonExaminationQueryInfo2 queryInfo) {
-        return succeed(lessonExaminationService.queryPageByWeb(queryInfo));
+    public HttpResponseResult<PageInfo<LessonExaminationResultDto>> queryPage(@RequestBody LessonExaminationQueryInfo queryInfo) {
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
+        return succeed(lessonExaminationService.queryPage(queryInfo));
     }
-
 }