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