diff --git a/doc/云效脚本/MP_verify_kR8QcYpBTyrYJWvG.txt b/doc/云效脚本/MP_verify_kR8QcYpBTyrYJWvG.txt new file mode 100644 index 00000000..822c3943 --- /dev/null +++ b/doc/云效脚本/MP_verify_kR8QcYpBTyrYJWvG.txt @@ -0,0 +1 @@ +kR8QcYpBTyrYJWvG \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java index e37eec45..73b5a02e 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java @@ -11,6 +11,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.FieldNameConstants; import org.beetl.sql.annotation.entity.AssignID; +import org.beetl.sql.annotation.entity.InsertIgnore; +import org.beetl.sql.annotation.entity.UpdateIgnore; import org.beetl.sql.fetch.annotation.Fetch; import javax.validation.constraints.NotNull; @@ -71,6 +73,18 @@ public class TeacherOpenCourseQuestionLog extends BaseEntity { private Long studentId ; + //学生ID + + @UpdateIgnore + @InsertIgnore + private String studentSn ; + + //学生姓名 + + @UpdateIgnore + @InsertIgnore + private String studentIdText ; + //学生得分 private BigDecimal studentScore ; diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/FileQuestionLogListDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/FileQuestionLogListDTO.java new file mode 100644 index 00000000..5a981569 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/FileQuestionLogListDTO.java @@ -0,0 +1,36 @@ +package com.ibeetl.jlw.entity.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 功能描述:
+ * + * @author: mlx + * @description: + * @date: 2023/1/14 12:45 + * @version: 1.0 + */ +@Data +public class FileQuestionLogListDTO { + + /** + * 学生ID + */ + @NotNull(message = "学生ID不能为空!") + private Long studentId; + + /** + * 开课ID + */ + private Long teacherOpenCourseId; + + /** + * 题目配置ID + * 前端传递的参数名字:questionSettingId + */ + @NotNull(message = "题目配置ID不能为空!") + private Long teacherOpenCourseQuestionSettingId; + +} diff --git a/web/src/main/java/com/ibeetl/jlw/entity/vo/FileQuestionLogListPageVO.java b/web/src/main/java/com/ibeetl/jlw/entity/vo/FileQuestionLogListPageVO.java new file mode 100644 index 00000000..ecf0cec1 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/vo/FileQuestionLogListPageVO.java @@ -0,0 +1,88 @@ +package com.ibeetl.jlw.entity.vo; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.lang.UUID; +import cn.hutool.json.JSONUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.ibeetl.admin.core.entity.BaseEntity; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 功能描述:
+ * 教师点评列表实体 + * + * @author: mlx + * @description: + * @date: 2023/1/14 12:19 + * @version: 1.0 + */ +@Data +@EqualsAndHashCode +public class FileQuestionLogListPageVO extends BaseEntity { + + /** + * ================ 学生信息单独查询,会省点时间 =================== + */ + + private String studentIdText; + + private String studentSn; + + /** + * ============================================================= + */ + + /** + * 文件路径 JSONArray 格式的 + * [{"fileName":"小米承诺函.pdf","fileUrl":"\\filesystem\\temp\\1670763205397_5_7.pdf"}] + */ + private String reportFile; + + @JsonProperty("reportComment") + private String teacherOpenCourseQuestionLogReply; + + @JsonProperty("reportScore") + private BigDecimal studentScore; + + /** + * 附件,学生端上传附件(单文件) + */ + @JsonIgnore + private String teacherOpenCourseQuestionLogUploadFile ; + + public void setTeacherOpenCourseQuestionLogUploadFile(String teacherOpenCourseQuestionLogUploadFile) { + this.teacherOpenCourseQuestionLogUploadFile = teacherOpenCourseQuestionLogUploadFile; + if (teacherOpenCourseQuestionLogUploadFile != null) { + String[] files = teacherOpenCourseQuestionLogUploadFile.split(","); + List list = Arrays.stream(files) + .map(filePath -> ReportFileStaticClass.builder() + .fileName(UUID.fastUUID().toString(true) + "." + FileUtil.extName(filePath)) + .fileUrl(filePath).build()) + .collect(Collectors.toList()); + + // 构建 + setReportFile(JSONUtil.toJsonStr(list)); + } + } + + @Data + @Builder + public static final class ReportFileStaticClass { + /** + * 文件名称 + */ + private String fileName; + /** + * 文件相对地址 + */ + private String fileUrl; + } +} diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java index ff79f44e..5abec685 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java @@ -22,6 +22,7 @@ import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionSettingDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.dto.QuestionLogAddDTO; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseHomeWorkLogDTO; +import com.ibeetl.jlw.entity.vo.FileQuestionLogListPageVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseHomeWorkLogExportVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionLogAnswerLockVO; import com.ibeetl.jlw.enums.QuestionLogAddTypeEnum; @@ -1098,4 +1099,19 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService getHomeWorkLogExportPageList(PageQuery pageQuery) { return teacherOpenCourseQuestionLogDao.getHomeWorkLogExportPageList(pageQuery); } + + public FileQuestionLogListPageVO getFileQuestionLog(TeacherOpenCourseQuestionLogQuery query) { + TeacherOpenCourseQuestionLog log = getInfo(query); + if (null == log) { + return null; + } + + Student student = studentDao.getById(log.getStudentId()); + if (null != student) { + log.setStudentIdText(student.getStudentName()); + log.setStudentSn(student.getStudentSn()); + } + + return BeanUtil.copyProperties(log, FileQuestionLogListPageVO.class); + } } diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java index 3b9ead08..3787ab47 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java @@ -1,5 +1,6 @@ package com.ibeetl.jlw.web; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; @@ -16,9 +17,11 @@ import com.ibeetl.admin.core.web.query.PageParam; import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot; import com.ibeetl.jlw.entity.Student; import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog; +import com.ibeetl.jlw.entity.dto.FileQuestionLogListDTO; import com.ibeetl.jlw.entity.dto.QuestionLogAddDTO; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseHomeWorkLogDTO; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseHomeWorkLogPageDTO; +import com.ibeetl.jlw.entity.vo.FileQuestionLogListPageVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseHomeWorkLogExportVO; import com.ibeetl.jlw.service.TeacherOpenCourseQuestionLogService; import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery; @@ -101,6 +104,18 @@ public class TeacherOpenCourseQuestionLogController extends BaseController { } } + /** + * 附件作业文件查看 + * @param dto + * @return + */ + @GetMapping(API + "/getFileQuestionLog.do") + @ResponseBody + public JsonResult getFileQuestionLog(FileQuestionLogListDTO dto, @SCoreUser CoreUser coreUser) { + TeacherOpenCourseQuestionLogQuery query = BeanUtil.copyProperties(dto, TeacherOpenCourseQuestionLogQuery.class); + return JsonResult.success(teacherOpenCourseQuestionLogService.getFileQuestionLog(query)); + } + @PostMapping(API + "/list.do") public JsonResult listDo(TeacherOpenCourseQuestionLogQuery condition){ PageQuery page = condition.getPageQuery();