From 83953fac1e778b6de84efaa09bc6913fed2e0b12 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 29 十月 2024 16:48:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/docker/Dockerfile | 4 +-
src/main/java/com/ycl/jxkg/controller/admin/UploadController.java | 35 +++++++++++++++++
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 22 +++++-----
src/main/resources/application-dev.yml | 1
src/main/resources/application-prod.yml | 1
src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java | 15 +++++++
6 files changed, 63 insertions(+), 15 deletions(-)
diff --git a/src/docker/Dockerfile b/src/docker/Dockerfile
index 739e440..b19f643 100644
--- a/src/docker/Dockerfile
+++ b/src/docker/Dockerfile
@@ -10,10 +10,10 @@
COPY simsun.ttc /usr/share/fonts/
# easyExcel瀛椾綋
RUN apk add fontconfig && apk add --update ttf-dejavu && fc-cache --force
-# 鍚屾docker鍐呴儴鐨勬椂闂�
-RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 璁剧疆鏃跺尯
ENV TZ=Asia/Shanghai
+# 鍚屾docker鍐呴儴鐨勬椂闂�
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 8000
# 澶嶅埗jar鍖呭埌/user/local/java涓�
ARG JAR_FILE
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 d25c463..5482a5a 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java
@@ -14,6 +14,7 @@
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@@ -129,5 +130,37 @@
}
}
-
+ @PostMapping("/img")
+ public Result questionUploadAndReadExcel(MultipartFile file) {
+ // 妫�鏌ユ枃浠舵槸鍚︿负绌�
+ if (file == null || file.isEmpty()) {
+ return Result.fail(500, "涓婁紶鐨勬枃浠朵负绌�");
+ }
+ String randomName = null;
+ HashMap hashMap = new HashMap(2);
+ try {
+ // 鑾峰彇鏂囦欢鍚�
+ String originalFileName = StringUtils.cleanPath(file.getOriginalFilename());
+ randomName = UUID.randomUUID().toString().replace("-", "") + originalFileName.substring(originalFileName.lastIndexOf("."));
+ // 鎸囧畾鏂囦欢瀛樺偍璺緞
+ String uploadDir = ruoYiConfig.getUrl(); // 淇敼涓烘偍甯屾湜瀛樺偍鐨勭洰褰�
+ // 濡傛灉鐩綍涓嶅瓨鍦紝鍒欏垱寤虹洰褰�
+ File dir = new File(uploadDir);
+ if (!dir.exists()) {
+ dir.mkdirs();
+ }
+ // 鏋勫缓鐩爣鏂囦欢鐨勮矾寰�
+ String filePath = uploadDir + "/" + randomName;
+ // 灏嗘枃浠朵繚瀛樺埌鐩爣浣嶇疆
+ file.transferTo(new File(filePath));
+ hashMap.put("name", originalFileName);
+ hashMap.put("url", randomName);
+ } catch (IOException e) {
+ e.printStackTrace();
+ // 杩斿洖澶辫触鍝嶅簲
+ return Result.fail(500, "鏂囦欢涓婁紶澶辫触");
+ }
+ userService.changePicture(getCurrentUser(), randomName);
+ return Result.ok(hashMap);
+ }
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
index db198fe..07bf709 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
@@ -46,6 +46,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@@ -74,9 +75,12 @@
examPaper.setScore(new BigDecimal(form.getScore()));
//闅忔満璇曞嵎
if (ExamPaperTypeEnum.Random.getCode().equals(form.getPaperType())) {
- //鏍¢獙棰樼洰鏁伴噺
+ //鏍¢獙鏍囬鏄惁濉啓銆佹牎楠岄鐩暟閲�
List<PaperQuestionSettingDTO> questionSetting = form.getQuestionSetting();
for (PaperQuestionSettingDTO settingDTO : questionSetting) {
+ if(StringUtils.isEmpty(settingDTO.getTitle())){
+ return Result.fail(SystemCode.InnerError.getCode(),"鏍囬涓嶈兘涓虹┖");
+ }
Integer questionType = settingDTO.getQuestionType();
for (PaperSettingItem item : settingDTO.getSettingList()) {
Integer num = item.getNum();
@@ -100,6 +104,12 @@
return Result.ok();
} else if (ExamPaperTypeEnum.Fixed.getCode().equals(form.getPaperType())) {
//鍥哄畾璇曞嵎
+ List<PaperFixQuestionDTO> questionTitleList = form.getQuestionTitleList();
+ for (PaperFixQuestionDTO dto : questionTitleList) {
+ if(StringUtils.isEmpty(dto.getTitle())){
+ return Result.fail(SystemCode.InnerError.getCode(),"鏍囬涓嶈兘涓虹┖");
+ }
+ }
examPaper.setContent(JSON.toJSONString(form.getQuestionTitleList()));
baseMapper.insert(examPaper);
return Result.ok();
@@ -116,6 +126,9 @@
List<PaperSettingItem> settingList = settingDTO.getSettingList();
List<PaperQuestion> questionList = new ArrayList<>();
for (PaperSettingItem item : settingList) {
+ if(StringUtils.isEmpty(settingDTO.getTitle())){
+ return Result.fail(SystemCode.InnerError.getCode(),"鏍囬涓嶈兘涓虹┖");
+ }
Integer num = item.getNum();
Integer difficult = item.getDifficult();
//闇�瑕侀厤缃殑棰樼洰鏁伴噺涓�0鍒欒烦杩�
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 e80229d..c68c3e0 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -255,9 +255,9 @@
.one();
if (Objects.nonNull(hasJoin)) {
// 鍏佽鎻愪氦鍚庣户缁綔绛�
-// if(ExamSubmitTempStatusEnum.finish.equals(hasJoin.getStatus())){
-// throw new RuntimeException("鎮ㄥ凡鎻愪氦璇曞嵎锛岃鍕块噸澶嶄綔绛�");
-// }
+ if(ExamSubmitTempStatusEnum.finish.equals(hasJoin.getStatus())){
+ throw new RuntimeException("鎮ㄥ凡鎻愪氦璇曞嵎锛岃鍕块噸澶嶄綔绛�");
+ }
StartExamVO startExamVO = new StartExamVO();
startExamVO.setExamName(exam.getExamName());
startExamVO.setId(hasJoin.getExamId());
@@ -382,7 +382,6 @@
doQuestionVO.setQuestionType(item.getQuestionType());
//澧炲姞棰樼洰鍒嗘暟
doQuestionVO.setQuestionScore(question.getScore());
-
// 棰樼洰鍓湰
QuestionAnswerCopyVO copy = new QuestionAnswerCopyVO();
copy.setId(question.getId());
@@ -515,7 +514,6 @@
ExamSubmitTemp one = new LambdaQueryChainWrapper<>(examSubmitTempMapper)
.eq(ExamSubmitTemp::getExamId, submitData.getId())
.eq(ExamSubmitTemp::getUserId, webContext.getCurrentUser().getId())
- .eq(ExamSubmitTemp::getDeleted, 0)
.one();
if (Objects.nonNull(one)) {
@@ -635,12 +633,14 @@
for (PaperFixQuestionVO titleItem : titleItems) {
for (DoQuestionVO doQuestionVO : titleItem.getQuestionList()) {
Integer questionId = doQuestionVO.getId();
- Optional<QuestionAnswerCopyVO> first = answerList.stream().filter(answer -> questionId.equals(answer.getId())).findFirst();
- if (first.isPresent()) {
- QuestionAnswerCopyVO answerCopyVO = first.get();
- doQuestionVO.setQuestionAnswer(answerCopyVO.getCorrect());
- doQuestionVO.setAnalyze(answerCopyVO.getAnalyze());
- doQuestionVO.setDifficult(answerCopyVO.getDifficult());
+ if(questionId!=null) {
+ Optional<QuestionAnswerCopyVO> first = answerList.stream().filter(answer -> questionId.equals(answer.getId())).findFirst();
+ if (first.isPresent()) {
+ QuestionAnswerCopyVO answerCopyVO = first.get();
+ doQuestionVO.setQuestionAnswer(answerCopyVO.getCorrect());
+ doQuestionVO.setAnalyze(answerCopyVO.getAnalyze());
+ doQuestionVO.setDifficult(answerCopyVO.getDifficult());
+ }
}
}
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index aa4e6d9..9146cc8 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -8,6 +8,7 @@
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
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 5669974..7d5a812 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -7,6 +7,7 @@
spring:
config:
+ # 鏁欏璧勬簮璁块棶璺緞
url: http://25.30.6.246:8000
datasource:
driver-class-name: dm.jdbc.driver.DmDriver
--
Gitblit v1.8.0