|
@@ -1,6 +1,9 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+import com.microsvc.toolkit.middleware.oss.OssPluginContext;
|
|
|
+import com.microsvc.toolkit.middleware.oss.OssPluginService;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
@@ -26,6 +29,7 @@ import com.ym.mec.util.date.DateUtil;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -90,9 +94,15 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
private StudentLessonExaminationDao studentLessonExaminationDao;
|
|
|
@Resource
|
|
|
private StudentLessonTrainingDetailService studentLessonTrainingDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
|
|
|
+
|
|
|
@Resource
|
|
|
private ExtracurricularExercisesDao extracurricularExercisesDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OssPluginContext ossPluginContext;
|
|
|
@Override
|
|
|
public BaseDAO<Long, StudentCourseHomework> getDAO() {
|
|
|
return studentCourseHomeworkDao;
|
|
@@ -1197,6 +1207,75 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 删除过期作业
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void deleteOverdueHomework() {
|
|
|
+
|
|
|
+ OssPluginService pluginService = ossPluginContext.getPluginService("tencent");
|
|
|
+ // 删练习作业
|
|
|
+ {
|
|
|
+ List<StudentLessonTrainingDetail> trainingDetails = studentLessonTrainingDetailService.queryExpired();
|
|
|
+
|
|
|
+ List<String> delFileList = new ArrayList<>();
|
|
|
+ List<StudentLessonTrainingDetail> updateList = new ArrayList<>();
|
|
|
+ for (StudentLessonTrainingDetail trainingDetail : trainingDetails) {
|
|
|
+ StudentLessonTrainingDetail studentLessonTrainingDetail = new StudentLessonTrainingDetail();
|
|
|
+ studentLessonTrainingDetail.setId(trainingDetail.getId());
|
|
|
+ String fileJson = trainingDetail.getFileJson();
|
|
|
+ List<CourseHomeworkWrapper.FileJson> fileJsonList = JSON.parseArray(fileJson, CourseHomeworkWrapper.FileJson.class);
|
|
|
+ List<String> delFiles = fileJsonList.stream().map(CourseHomeworkWrapper.FileJson::getFilePath)
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ delFileList.addAll(delFiles);
|
|
|
+ studentLessonTrainingDetail.setFileDelFlag(true);
|
|
|
+ updateList.add(studentLessonTrainingDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!org.springframework.util.CollectionUtils.isEmpty(delFileList)) {
|
|
|
+ List<List<String>> partition = Lists.partition(delFileList, 10);
|
|
|
+ for (List<String> strings : partition) {
|
|
|
+ pluginService.batchDeleteFile(strings);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(updateList)) {
|
|
|
+ studentLessonTrainingDetailService.updateBatchById(updateList, 100);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删评测作业
|
|
|
+ {
|
|
|
+ List<StudentLessonExaminationDetail> studentLessonExaminationDetails = studentLessonExaminationDao.queryExpired();
|
|
|
+
|
|
|
+ List<String> delFileList = new ArrayList<>();
|
|
|
+ List<StudentLessonExaminationDetail> updateList = new ArrayList<>();
|
|
|
+ for (StudentLessonExaminationDetail examinationDetail : studentLessonExaminationDetails) {
|
|
|
+ StudentLessonExaminationDetail lessonExaminationDetail = new StudentLessonExaminationDetail();
|
|
|
+ lessonExaminationDetail.setId(examinationDetail.getId());
|
|
|
+ String fileJson = examinationDetail.getFileJson();
|
|
|
+ List<CourseHomeworkWrapper.FileJson> fileJsonList = JSON.parseArray(fileJson, CourseHomeworkWrapper.FileJson.class);
|
|
|
+ List<String> delFiles = fileJsonList.stream().map(CourseHomeworkWrapper.FileJson::getFilePath)
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ delFileList.addAll(delFiles);
|
|
|
+ lessonExaminationDetail.setFileDelFlag(true);
|
|
|
+ updateList.add(lessonExaminationDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!org.springframework.util.CollectionUtils.isEmpty(delFileList)) {
|
|
|
+ List<List<String>> partition = Lists.partition(delFileList, 10);
|
|
|
+ for (List<String> strings : partition) {
|
|
|
+ pluginService.batchDeleteFile(strings);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(updateList)) {
|
|
|
+ studentLessonExaminationDetailService.updateBatchById(updateList, 100);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@NotNull
|
|
|
private StudentLessonTrainingDetailWrapper.StudentLessonTraining getUserInfo(Long userId) {
|
|
|
SysUser sysUser = sysUserFeignService.queryUserById(userId.intValue());
|