From 5073a245f53fd5ca936e779be8c6b9b19d42f67d Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 11 七月 2024 09:47:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationProvider.java | 1
src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java | 5 +
src/main/java/com/ycl/jxkg/job/StudyRecordJob.java | 15 +--
src/main/java/com/ycl/jxkg/controller/admin/UploadController.java | 3
src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java | 2
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 94 ++++++++++++++++-------
src/main/resources/application-prod.yml | 2
src/main/java/com/ycl/jxkg/controller/student/SubjectController.java | 31 +++++++
src/main/resources/mapper/EducationResourceMapper.xml | 6 +
src/main/java/com/ycl/jxkg/constants/ExamScoreConstant.java | 22 +++++
src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java | 47 +++++++----
src/main/resources/application-dev.yml | 3
src/main/java/com/ycl/jxkg/config/CaffeineConfig.java | 2
src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java | 1
14 files changed, 174 insertions(+), 60 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java
index 527d080..118a563 100644
--- a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java
+++ b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java
@@ -26,7 +26,7 @@
.build();
// 鍒濆鍖栬璇佺紦瀛樸�佸涔犳椂闀跨紦瀛�
caffeineCache.put(CaffeineConstant.AUTH, new HashMap<>(128));
- caffeineCache.put(CaffeineConstant.AUTH, new HashMap<>(128));
+ caffeineCache.put(CaffeineConstant.STUDY_RECORD, new HashMap<>(128));
return caffeineCache;
}
}
diff --git a/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationProvider.java b/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationProvider.java
index 9e5ae5d..7d53742 100644
--- a/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationProvider.java
+++ b/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationProvider.java
@@ -1,7 +1,6 @@
package com.ycl.jxkg.config.spring.security;
-import com.github.benmanes.caffeine.cache.Cache;
import com.ycl.jxkg.constants.CaffeineConstant;
import com.ycl.jxkg.context.WebContext;
import com.ycl.jxkg.enums.RoleEnum;
diff --git a/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java b/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java
index 45e9081..99a3014 100644
--- a/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java
+++ b/src/main/java/com/ycl/jxkg/constants/CaffeineConstant.java
@@ -14,4 +14,9 @@
*/
public final static String AUTH = "AUTH";
+ /**
+ * 璁板綍瀛︿範鏃堕暱
+ *
+ */
+ public final static String STUDY_RECORD ="STUDY_RECORD";
}
diff --git a/src/main/java/com/ycl/jxkg/constants/ExamScoreConstant.java b/src/main/java/com/ycl/jxkg/constants/ExamScoreConstant.java
new file mode 100644
index 0000000..e066f5b
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/constants/ExamScoreConstant.java
@@ -0,0 +1,22 @@
+package com.ycl.jxkg.constants;
+
+/**
+ * 鎴愮哗鐘舵��
+ *
+ * @author锛歠lq
+ * @date锛�2024/7/10 11:36
+ */
+public class ExamScoreConstant {
+
+ /**
+ * 鑰冧簡
+ *
+ */
+ public final static Integer PRESENT = 0;
+
+ /**
+ * 缂鸿��
+ *
+ */
+ public final static Integer ABSENT =1;
+}
diff --git a/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java b/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java
index 6614268..d25c463 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java
@@ -12,6 +12,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -41,6 +42,8 @@
private final UserService userService;
private final RuoYiConfig ruoYiConfig;
+
+
@Autowired
public UploadController(FileUpload fileUpload, SystemConfig systemConfig, UserService userService, RuoYiConfig ruoYiConfig) {
this.fileUpload = fileUpload;
diff --git a/src/main/java/com/ycl/jxkg/controller/student/SubjectController.java b/src/main/java/com/ycl/jxkg/controller/student/SubjectController.java
new file mode 100644
index 0000000..1c2c28a
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/controller/student/SubjectController.java
@@ -0,0 +1,31 @@
+package com.ycl.jxkg.controller.student;
+
+
+import com.github.pagehelper.PageInfo;
+import com.ycl.jxkg.base.BaseApiController;
+import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.domain.entity.Subject;
+import com.ycl.jxkg.domain.vo.admin.education.SubjectEditRequestVO;
+import com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO;
+import com.ycl.jxkg.domain.vo.admin.education.SubjectResponseVO;
+import com.ycl.jxkg.service.SubjectService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@RequiredArgsConstructor
+@RestController("StudentSubjectController")
+@RequestMapping(value = "/api/student/subject")
+public class SubjectController extends BaseApiController {
+
+ private final SubjectService subjectService;
+
+ @RequestMapping(value = "/list", method = RequestMethod.POST)
+ public Result<List<Subject>> list() {
+ List<Subject> subjects = subjectService.allSubject();
+ return Result.ok(subjects);
+ }
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java
index 738eb93..e3eff2b 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java
@@ -62,7 +62,7 @@
private Integer doTime;
/**
- * 璇曞嵎鐘舵��(1寰呭垽鍒� 2瀹屾垚)
+ * 璇曞嵎鐘舵��(0姝e父 1缂鸿��)
*/
@TableField("status")
private Integer status;
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java
index 12ee9c9..2ed78dc 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java
@@ -62,6 +62,7 @@
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
+ private String visitUrl;
@Data
public static class UploadFile {
diff --git a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java
index 36eda18..ee588fc 100644
--- a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java
+++ b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.benmanes.caffeine.cache.Cache;
+import com.ycl.jxkg.constants.CaffeineConstant;
import com.ycl.jxkg.domain.entity.StudyRecord;
import com.ycl.jxkg.mapper.StudyRecordMapper;
import com.ycl.jxkg.service.StudyRecordService;
@@ -36,15 +37,13 @@
private void updateStudyRecord() {
log.info("寮�濮嬪瓨瀛︿範鏃堕暱");
List<StudyRecord> cacheList = new ArrayList<>();
- // 鍙栧嚭鎵�鏈夌紦瀛橀」
+ // 鍙栧嚭鎵�鏈夊涔犺褰曠紦瀛橀」
ConcurrentMap<String, Object> map = caffeineCache.asMap();
- for (Map.Entry<String, Object> entry : map.entrySet()) {
- String key = entry.getKey();
- if (key.startsWith("STUDENT_")) {
- StudyRecord studyRecord = (StudyRecord) entry.getValue();
- cacheList.add(studyRecord);
- }
+ Map<String,StudyRecord> studyMap = (Map<String, StudyRecord>) map.get(CaffeineConstant.STUDY_RECORD);
+ for (Map.Entry<String, StudyRecord> entry : studyMap.entrySet()) {
+ cacheList.add(entry.getValue());
}
+
List<Integer> studentIds = cacheList.stream().map(StudyRecord::getStudentId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(studentIds)) {
//鏁版嵁搴撲腑宸茬粡瀛樺湪鐨勫鐢熸暟鎹�
@@ -62,7 +61,7 @@
}
studyRecordService.saveOrUpdateBatch(cacheList);
}
- caffeineCache.invalidateAll(map.keySet());
+ caffeineCache.invalidate(CaffeineConstant.STUDY_RECORD);
log.info("缁撴潫瀛樺涔犳椂闀�");
}
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
index d18955c..c2c484b 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
@@ -5,6 +5,7 @@
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.constants.CaffeineConstant;
import com.ycl.jxkg.context.WebContext;
import com.ycl.jxkg.domain.entity.EducationResource;
import com.ycl.jxkg.domain.entity.Subject;
@@ -18,13 +19,11 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
/**
* @author锛歠lq
@@ -35,12 +34,16 @@
@Slf4j
public class EducationResourceServiceImpl implements EducationResourceService {
+
private final EducationResourceMapper mapper;
private final SubjectMapper subjectMapper;
private final WebContext webContext;
private final ClassesUserMapper classesUserMapper;
@Autowired
private Cache<String, Object> caffeineCache;
+ @Value("${spring.config.url}")
+ private String url;
+
@Override
public Result add(EducationResourceVO form) {
EducationResource educationResource = new EducationResource();
@@ -86,6 +89,7 @@
page.getList().stream().forEach(item -> {
item.setContentUrl(JSON.parseObject(item.getContentUrlString(), EducationResourceVO.UploadFile.class));
item.setAttachment(JSON.parseArray(item.getAttachmentString(), EducationResourceVO.UploadFile.class));
+ item.setVisitUrl(url + "/api/files/" + item.getContentUrl().getUrl());
});
return Result.ok(page.getList()).put("total", page.getTotal());
}
@@ -114,27 +118,32 @@
List<Subject> subjects = subjectMapper.allSubject();
return Result.ok(subjects);
}
+
//璁板綍瑙嗛鏃堕暱
@Override
public Result recordTime(Integer userId) {
- if (userId ==null){
+ if (userId == null) {
throw new RuntimeException("鐢ㄦ埛id涓虹┖");
}
- StudyRecord studyRecord = (StudyRecord) caffeineCache.getIfPresent("STUDENT_"+userId);
- if (studyRecord != null) {
- //瀛樺湪缂撳瓨
- Date lastTime = studyRecord.getLastTime();
- Date now = new Date();
- studyRecord.setStudyTime(studyRecord.getStudyTime()+(now.getTime()-lastTime.getTime())/1000);
- studyRecord.setLastTime(now);
- }else {
- //涓嶅瓨鍦ㄧ紦瀛�
- studyRecord = new StudyRecord();
- studyRecord.setStudentId(userId);
- studyRecord.setStudyTime(0L);
- studyRecord.setLastTime(new Date());
+ Map<String, StudyRecord> studyMap = (Map<String, StudyRecord>) caffeineCache.getIfPresent(CaffeineConstant.STUDY_RECORD);
+ if (!CollectionUtils.isEmpty(studyMap)) {
+ StudyRecord studyRecord = studyMap.get(userId + "");
+ if (studyRecord != null) {
+ //瀛樺湪缂撳瓨
+ Date lastTime = studyRecord.getLastTime();
+ Date now = new Date();
+ studyRecord.setStudyTime(studyRecord.getStudyTime() + (now.getTime() - lastTime.getTime()) / 1000);
+ studyRecord.setLastTime(now);
+ } else {
+ //涓嶅瓨鍦ㄧ紦瀛�
+ studyRecord = new StudyRecord();
+ studyRecord.setStudentId(userId);
+ studyRecord.setStudyTime(0L);
+ studyRecord.setLastTime(new Date());
+ }
+ studyMap.put(userId + "", studyRecord);
+ caffeineCache.put(CaffeineConstant.STUDY_RECORD, studyMap);
}
- caffeineCache.put("STUDENT_" + userId, studyRecord);
return Result.ok();
}
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
index 98b9c3a..0f0e2f8 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.base.SystemCode;
+import com.ycl.jxkg.constants.ExamScoreConstant;
import com.ycl.jxkg.context.WebContext;
import com.ycl.jxkg.domain.base.AbsVo;
import com.ycl.jxkg.domain.entity.*;
@@ -561,14 +562,21 @@
for (StudentExamInfoVO studentExamInfoVO : studentExamList) {
Integer userId = studentExamInfoVO.getUserId();
Optional<ExamSubmitTemp> first = examSubmitTempList.stream().filter(examSubmitTemp -> examSubmitTemp.getUserId().equals(userId)).findFirst();
- if(first.isPresent()){
+ if (first.isPresent()) {
ExamSubmitTemp examSubmitTemp = first.get();
studentExamInfoVO.setMarkPaperStatus(examSubmitTemp.getMarkPaperStatus());
studentExamInfoVO.setStatus(examSubmitTemp.getStatus());
studentExamInfoVO.setDoTime(examSubmitTemp.getDoTime());
- }else {
- studentExamInfoVO.setMarkPaperStatus(ExamSubmitTempStatusEnum.temp);
+ } else {
+ //涓嶅瓨鍦ㄨ�冭瘯璁板綍
studentExamInfoVO.setStatus(ExamSubmitTempStatusEnum.temp);
+ //鏍规嵁Score琛ㄥ垽鏂�
+ ExamPaperScore paperScore = examPaperScoreMapper.getByExamIdUserId(exam.getId(), userId);
+ if(paperScore==null) {
+ studentExamInfoVO.setMarkPaperStatus(ExamSubmitTempStatusEnum.temp);
+ }else {
+ studentExamInfoVO.setMarkPaperStatus(ExamSubmitTempStatusEnum.finish);
+ }
studentExamInfoVO.setDoTime(0);
}
}
@@ -589,20 +597,22 @@
@Override
public Result getMarkPaperInfo(Integer examId, Integer userId) {
+ //濡傛灉宸茬粡闃呰繃鍗蜂簡锛屾煡鎴愮哗琛�
+ Result<ExamPaperMarkVO> paperMarkVO1 = checkHasJudge(examId, userId);
+ if (paperMarkVO1 != null) return paperMarkVO1;
+
+ User student = userMapper.getUserById(userId);
+ ExamVO exam = examMapper.getById(examId);
//瀛︾敓绛旈琛�
ExamSubmitTemp userExam = new LambdaQueryChainWrapper<>(examSubmitTempMapper)
.eq(ExamSubmitTemp::getExamId, examId)
.eq(ExamSubmitTemp::getUserId, userId)
.one();
if (Objects.isNull(userExam)) {
- throw new RuntimeException("璇ュ鍛樿�冭瘯璁板綍涓嶅瓨鍦�");
+ //缂鸿�冿紝瀛︾敓娌℃湁鍋氶淇℃伅
+ ExamPaperMarkVO paperMarkVO = createVO(null, exam, student);
+ return Result.ok(paperMarkVO);
}
- //濡傛灉宸茬粡闃呰繃鍗蜂簡锛屾煡鎴愮哗琛�
- Result<ExamPaperMarkVO> paperMarkVO1 = checkHasJudge(examId, userId, userExam);
- if (paperMarkVO1 != null) return paperMarkVO1;
-
- User student = userMapper.getUserById(userId);
- ExamVO exam = examMapper.getById(examId);
//灏佽闃呭嵎鍩烘湰鏁版嵁
ExamPaperMarkVO paperMarkVO = createVO(userExam, exam, student);
List<QuestionAnswerCopyVO> answerList = JSONArray.parseArray(userExam.getQuestionAnswerCopy(), QuestionAnswerCopyVO.class);
@@ -633,16 +643,20 @@
}
//妫�鏌ユ槸鍚﹂槄鍗�
- private Result<ExamPaperMarkVO> checkHasJudge(Integer examId, Integer userId, ExamSubmitTemp userExam) {
- if (ExamSubmitTempStatusEnum.finish.equals(userExam.getMarkPaperStatus())) {
- ExamPaperScore examPaperScore = examPaperScoreMapper.getByExamIdUserId(examId, userId);
+ private Result<ExamPaperMarkVO> checkHasJudge(Integer examId, Integer userId) {
+ ExamPaperScore examPaperScore = examPaperScoreMapper.getByExamIdUserId(examId, userId);
+ if (examPaperScore != null) {
ExamPaperMarkVO paperMarkVO = new ExamPaperMarkVO();
BeanUtils.copyProperties(examPaperScore, paperMarkVO);
paperMarkVO.setTotalScore(examPaperScore.getTotalScore() + "");
paperMarkVO.setScore(examPaperScore.getScore() + "");
- List<PaperFixQuestionVO> paperFixQuestionVOS = JSONArray.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class);
- paperMarkVO.setTitleItems(paperFixQuestionVOS);
- paperMarkVO.setNavbar(JSONArray.parseArray(examPaperScore.getNavbar(), ExamPaperMarkNavbarVO.class));
+ if (!StringUtils.isEmpty(examPaperScore.getPaperContent())) {
+ List<PaperFixQuestionVO> paperFixQuestionVOS = JSONArray.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class);
+ paperMarkVO.setTitleItems(paperFixQuestionVOS);
+ }
+ if (!StringUtils.isEmpty(examPaperScore.getNavbar())) {
+ paperMarkVO.setNavbar(JSONArray.parseArray(examPaperScore.getNavbar(), ExamPaperMarkNavbarVO.class));
+ }
return Result.ok(paperMarkVO);
}
return null;
@@ -820,16 +834,23 @@
//灏佽闃呭嵎杩斿洖鏁版嵁
private ExamPaperMarkVO createVO(ExamSubmitTemp userExam, ExamVO exam, User student) {
- Integer paperId = exam.getExamPaperId();
- ExamPaper examPaper = examPaperMapper.selectById(paperId);
ExamPaperMarkVO paperMarkVO = new ExamPaperMarkVO();
- BeanUtils.copyProperties(userExam, paperMarkVO);
- paperMarkVO.setPaperId(exam.getExamPaperId());
- paperMarkVO.setExamName(exam.getExamName());
- paperMarkVO.setPaperType(exam.getExamPaperType());
- paperMarkVO.setSubmitTime(userExam.getUpdateTime());
+ if (userExam != null) {
+ BeanUtils.copyProperties(userExam, paperMarkVO);
+ paperMarkVO.setSubmitTime(userExam.getUpdateTime());
+ paperMarkVO.setTitleItems(JSON.parseArray(userExam.getExamSubmit(), PaperFixQuestionVO.class));
+ } else {
+ //缂鸿�冿紝瀛︾敓娌℃湁鍋氶淇℃伅
+ paperMarkVO.setExamId(exam.getExamPaperId());
+ paperMarkVO.setUserId(student.getId());
+ paperMarkVO.setScore(BigDecimal.ZERO + "");
+ paperMarkVO.setDoTime(0);
+ }
paperMarkVO.setUserName(student.getRealName());
- paperMarkVO.setTitleItems(JSON.parseArray(userExam.getExamSubmit(), PaperFixQuestionVO.class));
+ paperMarkVO.setExamName(exam.getExamName());
+ paperMarkVO.setPaperId(exam.getExamPaperId());
+ paperMarkVO.setPaperType(exam.getExamPaperType());
+ ExamPaper examPaper = examPaperMapper.selectById(exam.getExamPaperId());
paperMarkVO.setTotalScore(examPaper.getScore() + "");
paperMarkVO.setDeductType(examPaper.getDeductType());
paperMarkVO.setDeductScore(examPaper.getDeductTypeScore());
@@ -848,13 +869,24 @@
examPaperScore.setTotalScore(new BigDecimal(examPaperMark.getTotalScore()));
examPaperScore.setJudgeUser(userId);
examPaperScore.setJudgeTime(new Date());
- examPaperScore.setPaperContent(JSON.toJSONString(examPaperMark.getTitleItems()));
- examPaperScore.setNavbar(JSON.toJSONString(examPaperMark.getNavbar()));
+ if (!StringUtils.isEmpty(examPaperMark.getTitleItems())) {
+ examPaperScore.setPaperContent(JSON.toJSONString(examPaperMark.getTitleItems()));
+ }
+ if (!StringUtils.isEmpty(examPaperMark.getNavbar())) {
+ examPaperScore.setNavbar(JSON.toJSONString(examPaperMark.getNavbar()));
+ }
long questionCorrect = 0;
long questionCount = 0;
if (!CollectionUtils.isEmpty(examPaperMark.getNavbar())) {
+ examPaperScore.setStatus(ExamScoreConstant.PRESENT);
questionCorrect = examPaperMark.getNavbar().stream().filter(vo -> vo.getRight() != null && vo.getRight()).count();
questionCount = examPaperMark.getNavbar().size();
+ } else {
+ //缂鸿�冩煡璇曞嵎閰嶇疆
+ Integer paperId = examPaperMark.getPaperId();
+ ExamPaper examPaper = examPaperMapper.selectById(paperId);
+ questionCount = examPaper.getNum();
+ examPaperScore.setStatus(ExamScoreConstant.ABSENT);
}
examPaperScore.setQuestionCorrect(Integer.valueOf(questionCorrect + ""));
examPaperScore.setQuestionCount(Integer.valueOf(questionCount + ""));
@@ -870,8 +902,10 @@
.eq(ExamSubmitTemp::getExamId, examPaperMark.getExamId())
.eq(ExamSubmitTemp::getUserId, examPaperMark.getUserId())
.one();
- userExam.setMarkPaperStatus(ExamSubmitTempStatusEnum.finish);
- examSubmitTempMapper.updateById(userExam);
+ if (userExam != null) {
+ userExam.setMarkPaperStatus(ExamSubmitTempStatusEnum.finish);
+ examSubmitTempMapper.updateById(userExam);
+ }
}
return Result.ok();
}
@@ -885,7 +919,7 @@
@Override
public Result addTime(AddTimeForm form) {
- if (! websocketServer.checkUserOnline(form.getUserId())) {
+ if (!websocketServer.checkUserOnline(form.getUserId())) {
throw new RuntimeException("璇ュ鍛樹笉鍦ㄧ嚎锛屾棤娉曟墽琛岃鎿嶄綔");
}
WebsocketDataVO websocket = new WebsocketDataVO();
@@ -900,7 +934,7 @@
@Override
public Result forceSubmit(ForceSubmitForm form) {
- if (! websocketServer.checkUserOnline(form.getUserId())) {
+ if (!websocketServer.checkUserOnline(form.getUserId())) {
throw new RuntimeException("璇ュ鍛樹笉鍦ㄧ嚎锛屾棤娉曟墽琛岃鎿嶄綔");
}
WebsocketDataVO websocket = new WebsocketDataVO();
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 3967ffa..aa4e6d9 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -5,7 +5,10 @@
# 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
url: D:/ycl/file
+
spring:
+ config:
+ url: http://localhost:8000
datasource:
url: jdbc:mysql://42.193.1.25:3306/xzs?useSSL=true&useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 9d725da..2869bad 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -6,6 +6,8 @@
url: E:/ycl/file
spring:
+ config:
+ url: https://42.193.1.25:8000
datasource:
url: jdbc:mysql://42.193.1.25:3306/xzs?useSSL=true&useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
diff --git a/src/main/resources/mapper/EducationResourceMapper.xml b/src/main/resources/mapper/EducationResourceMapper.xml
index cb750e2..4180bc8 100644
--- a/src/main/resources/mapper/EducationResourceMapper.xml
+++ b/src/main/resources/mapper/EducationResourceMapper.xml
@@ -32,6 +32,9 @@
<if test="query.classId != null">
AND ter.class_id = #{query.classId}
</if>
+ <if test="query.contentType != null and query.contentType != '' ">
+ AND ter.content_type = #{query.contentType}
+ </if>
</where>
ORDER BY
ter.create_time DESC
@@ -65,6 +68,9 @@
<if test="query.subjectId != null">
AND ter.subject_id = #{query.subjectId}
</if>
+ <if test="query.contentType != null and query.contentType != '' ">
+ AND ter.content_type = #{query.contentType}
+ </if>
</where>
ORDER BY
ter.create_time DESC
--
Gitblit v1.8.0