瀏覽代碼

文件传集合

刘俊驰 7 月之前
父節點
當前提交
5bb426bd0b

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

@@ -139,6 +139,16 @@ public class StudentCourseHomeworkController extends BaseController {
         return succeed(studentCourseHomeworkService.addStudentHomeworkRecord(query));
     }
 
+
+
+    @ApiOperation(value = "添加作业练习记录")
+    @PostMapping(value = "/addStudentHomeworkRecord")
+    public HttpResponseResult<Boolean>
+    addStudentHomeworkRecordPost(@RequestBody CourseHomeworkWrapper.AddStudentHomeworkRecord query){
+        query.setUserId(sysUserService.getUserId().longValue());
+        return succeed(studentCourseHomeworkService.addStudentHomeworkRecord(query));
+    }
+
     @ApiOperation(value = "分页查询作业列表")
     @PostMapping(value = "/queryPage")
     public Object queryPage(@RequestBody(required = false) CourseHomeworkQueryInfo queryInfo){

+ 7 - 0
mec-application/src/main/java/com/ym/mec/web/controller/LessonExaminationController.java

@@ -2,17 +2,21 @@ package com.ym.mec.web.controller;
 
 
 import com.ym.mec.biz.dal.dto.LessonExaminationResultDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
 import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo;
+import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
 import com.ym.mec.biz.service.LessonExaminationService;
 import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
 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;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -37,6 +41,9 @@ public class LessonExaminationController extends BaseController {
     @Resource
     private StudentLessonExaminationService studentLessonExaminationService;
 
+    @Autowired
+    private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
+
     @ApiOperation(value = "获取作业学员列表")
     @PostMapping("queryStudentPage")
     @PreAuthorize("@pcs.hasPermissions('lessonExamination/queryStudentPage')")

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

@@ -289,7 +289,7 @@ public class CourseHomeworkWrapper {
         private Long id;
 
         @ApiModelProperty("上传文件JSON")
-        private FileJson fileJson;
+        private List<FileJson> fileJson;
     }
 
 
@@ -306,7 +306,7 @@ public class CourseHomeworkWrapper {
         private String fileType;
 
         @ApiModelProperty("文件过期标志")
-        private Boolean expireFlag;
+        private Boolean expireFlag = false;
 
         @ApiModelProperty("文件内容")
         private String content;

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

@@ -4,6 +4,8 @@ package com.ym.mec.biz.dal.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  *
  * @author zx
@@ -21,6 +23,6 @@ public class LessonExaminationSubmitDto {
     private Long recordId;
 
     @ApiModelProperty("上传文件JSON")
-    private CourseHomeworkWrapper.FileJson fileJson;
+    private List<CourseHomeworkWrapper.FileJson> fileJson;
 }
 

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

@@ -6,6 +6,8 @@ import com.ym.mec.biz.dal.enums.HardLevelEnum;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  *
  * @author zx
@@ -73,6 +75,6 @@ public class StudentLessonExaminationDetailDto {
     private String fileJsons;
 
     @ApiModelProperty("上传文件JSON")
-    private CourseHomeworkWrapper.FileJson fileJson;
+    private List<CourseHomeworkWrapper.FileJson> fileJson;
 }
 

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto1.java

@@ -6,6 +6,8 @@ import com.ym.mec.biz.dal.enums.HardLevelEnum;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  *
  * @author zx
@@ -37,5 +39,15 @@ public class StudentLessonExaminationDetailDto1 {
 
     @ApiModelProperty("作业类型,MUSIC_SCORE:曲目评测,DESCRIPTION:描述")
     private String type;
+
+    @ApiModelProperty("作业描述")
+    private String desc;
+
+    @ApiModelProperty("上传文件JSON")
+    private String fileJsons;
+
+
+    @ApiModelProperty("上传文件JSON")
+    private List<CourseHomeworkWrapper.FileJson> fileJson;
 }
 

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

@@ -136,7 +136,7 @@ public class StudentLessonTrainingDetailWrapper {
         private String desc;
 
         @ApiModelProperty("上传文件JSON")
-        private CourseHomeworkWrapper.FileJson fileJson;
+        private List<CourseHomeworkWrapper.FileJson> fileJson;
 
         @ApiModelProperty("上传作业文件失效删除标记")
         private Boolean fileDelFlag;

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -462,6 +462,20 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      */
     String HOMEWORK_FILE_EXPIRE_TIME = "homework_file_expire_time";
 
+
+
+    /**
+     * 作业视频最大时长(秒)
+     */
+    String HOMEWORK_VIDEO_MAX_TIME = "homework_video_max_time";
+
+
+    /**
+     * 作业音频最大时长(分钟)
+     */
+    String HOMEWORK_AUDIO_MAX_TIME = "homework_audio_max_time";
+
+
     static void checkActivityDate(String startTimeStr, String endTimeStr) {
         if(StringUtils.isEmpty(startTimeStr) || StringUtils.isEmpty(startTimeStr)){
             return;

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseHomeworkServiceImpl.java

@@ -279,8 +279,10 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
             expireFlag = DateUtil.addDays(courseHomeworkList.getExpiryDate(), courseHomeworkList.getFileExpireDay()).before(new Date());
         }
         for (StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail studentLessonTrainingDetail : baseLessonTrainingDetail) {
-            if (studentLessonTrainingDetail.getFileJson() !=null) {
-                studentLessonTrainingDetail.getFileJson().setExpireFlag(expireFlag);
+            if (!CollectionUtils.isEmpty(studentLessonTrainingDetail.getFileJson())) {
+                for (CourseHomeworkWrapper.FileJson fileJson : studentLessonTrainingDetail.getFileJson()) {
+                    fileJson.setExpireFlag(expireFlag);
+                };
             }
         }
 
@@ -329,8 +331,10 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
             expireFlag = DateUtil.addDays(courseHomeworkList.getExpiryDate(), courseHomeworkList.getFileExpireDay()).before(new Date());
         }
         for (StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail studentLessonTrainingDetail : baseLessonTrainingDetail) {
-            if (studentLessonTrainingDetail.getFileJson() !=null) {
-                studentLessonTrainingDetail.getFileJson().setExpireFlag(expireFlag);
+            if (!CollectionUtils.isEmpty(studentLessonTrainingDetail.getFileJson())) {
+                for (CourseHomeworkWrapper.FileJson fileJson : studentLessonTrainingDetail.getFileJson()) {
+                    fileJson.setExpireFlag(expireFlag);
+                }
             }
         }
 

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

@@ -945,7 +945,6 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
         } else if (studentLessonTrainingDetail.getTrainingStatus() == StandardEnum.NOT_START) {
             studentLessonTrainingDetail.setTrainingStatus(StandardEnum.NOT_STANDARD);
         }
-        record.getFileJson().setExpireFlag(false);
         studentLessonTrainingDetail.setFileJson(JSON.toJSONString(record.getFileJson()));
         studentLessonTrainingDetail.setUpdateTime(new Date());
         studentLessonTrainingDetailService.updateById(studentLessonTrainingDetail);

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

@@ -98,7 +98,7 @@ public class StudentLessonExaminationDetailServiceImpl extends ServiceImpl<Stude
             if (StringUtils.isEmpty(studentLessonExaminationDetailDto.getFileJsons())) {
                 continue;
             }
-            studentLessonExaminationDetailDto.setFileJson(JSON.parseObject(studentLessonExaminationDetailDto.getFileJsons(), CourseHomeworkWrapper.FileJson.class));
+            studentLessonExaminationDetailDto.setFileJson(JSON.parseArray(studentLessonExaminationDetailDto.getFileJsons(), CourseHomeworkWrapper.FileJson.class));
 
             studentLessonExaminationDetailDto.setFileJsons("");
         }
@@ -111,7 +111,9 @@ public class StudentLessonExaminationDetailServiceImpl extends ServiceImpl<Stude
                 }
                 for (StudentLessonExaminationDetailDto dto : studentLessonExaminationDetailDtos) {
                     if (dto.getFileJson() != null) {
-                        dto.getFileJson().setExpireFlag(expireFlag);
+                        for (CourseHomeworkWrapper.FileJson fileJson : dto.getFileJson()) {
+                            fileJson.setExpireFlag(expireFlag);
+                        };
                     }
                 }
             }

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

@@ -135,8 +135,10 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
                                     detailDto.setMusicScoreName(musicScore.getName());
                                 }
                             }
-                            if (detailDto.getFileJson() != null) {
-                                detailDto.getFileJson().setExpireFlag(expireFlag);
+                            if (CollectionUtils.isNotEmpty(detailDto.getFileJson())) {
+                                for (CourseHomeworkWrapper.FileJson fileJson : detailDto.getFileJson()) {
+                                    fileJson.setExpireFlag(expireFlag);
+                                }
                             }
                             dto.setStudentLessonExaminationDetail(detailDto);
                             dto.setMemo(detailDto.getMemo());
@@ -202,8 +204,12 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
         }
         //更新详情
         detail.setTrainingTime(now);
-        if (submitDto.getFileJson() != null) {
-            submitDto.getFileJson().setExpireFlag(false);
+        if (CollectionUtils.isNotEmpty(submitDto.getFileJson())) {
+            for (CourseHomeworkWrapper.FileJson fileJson : submitDto.getFileJson()) {
+                if (fileJson != null) {
+                    fileJson.setExpireFlag(false);
+                }
+            }
             detail.setFileJson(JSON.toJSONString(submitDto.getFileJson()));
         }
         studentLessonExaminationDetailService.updateById(detail);
@@ -216,7 +222,31 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
 
     @Override
     public List<StudentLessonExaminationDto1> queryStudentPage(Long lessonExaminationId,Integer subjectId) {
-        return baseMapper.queryStudentPage(lessonExaminationId,subjectId);
+        List<StudentLessonExaminationDto1> studentLessonExaminationDto1s = baseMapper.queryStudentPage(lessonExaminationId, subjectId);
+        if (CollectionUtils.isEmpty(studentLessonExaminationDto1s)) {
+            return new ArrayList<>();
+        }
+        LessonExamination lessonExamination = lessonExaminationService.getById(lessonExaminationId);
+        if (lessonExamination == null) {
+            throw new BizException("作业信息不存在");
+        }
+        boolean expireFlag = false;
+        if (lessonExamination.getFileExpireDay() != null && lessonExamination.getFileExpireDay() >0) {
+            expireFlag = DateUtil.addDays(lessonExamination.getExpireDate(), lessonExamination.getFileExpireDay()).before(new Date());
+        }
+        for (StudentLessonExaminationDto1 studentLessonExaminationDto1 : studentLessonExaminationDto1s) {
+            if (CollectionUtils.isNotEmpty(studentLessonExaminationDto1.getDetailDtos())) {
+                for (StudentLessonExaminationDetailDto1 detailDto : studentLessonExaminationDto1.getDetailDtos()) {
+                    if (StringUtils.isNotBlank(detailDto.getFileJsons())) {
+                        detailDto.setFileJson(JSON.parseArray(detailDto.getFileJsons(), CourseHomeworkWrapper.FileJson.class));
+                        for (CourseHomeworkWrapper.FileJson e : detailDto.getFileJson()) {
+                            e.setExpireFlag(expireFlag);
+                        }
+                    }
+                }
+            }
+        }
+        return studentLessonExaminationDto1s;
     }
 }
 

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

@@ -175,8 +175,16 @@ public class StudentLessonTrainingDetailServiceImpl extends ServiceImpl<StudentL
         if (CollectionUtils.isEmpty(list)) {
             return new ArrayList<>();
         }
-        List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetails = JSON.parseArray(
-            JSON.toJSONString(list), StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail.class);
+        List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetails = list.stream()
+            .map( o->{
+                String fileJson = o.getFileJson();
+                if (StringUtils.isNotEmpty(fileJson)) {
+                    o.setFileJson(null);
+                }
+                StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail studentLessonTrainingDetail = JSON.parseObject(JSON.toJSONString(o), StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail.class);
+                studentLessonTrainingDetail.setFileJson(JSON.parseArray(fileJson, CourseHomeworkWrapper.FileJson.class));
+                return studentLessonTrainingDetail;
+            }).collect(Collectors.toList());
 
         //更新曲目名称
         this.updateMusicScoreName(studentLessonTrainingDetails);

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationMapper.xml

@@ -84,13 +84,15 @@
             <result property="musicScoreName" column="musicScoreName"/>
             <result property="memo" column="memo_"/>
             <result property="type" column="type"/>
+            <result property="fileJsons" column="file_json_"/>
+            <result property="desc" column="desc_"/>
             <result property="heardLevel" column="heard_level_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         </collection>
     </resultMap>
     <select id="queryStudentPage" resultMap="StudentLessonExaminationDtoMap">
         select sle.user_id_,su.username_,su.phone_,sb.name_ subjectName,sle.training_score_ trainingScore,
                sms.name_ musicScoreName,sled.actual_avg_score_,sled.standard_score_,sled.training_score_,
-               sled.avg_score_,sled.heard_level_,sle.training_time_,sle.group_,sled.memo_,sled.type_ as type
+               sled.avg_score_,sled.heard_level_,sle.training_time_,sle.group_,sled.memo_,sled.type_ as type,sled.file_json_,sled.desc_
         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_