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