From bd63add5fc05a91d18634b0a93efc8285f95ceab Mon Sep 17 00:00:00 2001 From: "YOHO\\20373" <2037305722@qq.com> Date: Fri, 23 May 2025 10:57:56 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91=E8=AF=95?= =?UTF-8?q?=E9=A2=98=E6=8E=A8=E9=80=81=E8=AF=95=E9=A2=98=E5=BA=93=EF=BC=8C?= =?UTF-8?q?=E5=AD=A6=E7=94=9F=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9Ei?= =?UTF-8?q?=E6=80=A7=E5=88=AB=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/rabbitmq/RabbitMQController.java | 1 - .../specialty/ExamSpecialtyController.java | 6 +- .../mysql/question/ExamQuestionMapper.java | 7 +- .../question/ExamQuestionServiceImpl.java | 165 ++++++++++++++---- .../mapper/exam/ExamQuestionMapper.xml | 29 ++- .../service/mysql/MysqlServericeImpl.java | 3 +- .../controller/admin/auth/AuthController.java | 3 + .../auth/vo/AuthPermissionInfoRespVO.java | 2 + 8 files changed, 175 insertions(+), 41 deletions(-) diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/rabbitmq/RabbitMQController.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/rabbitmq/RabbitMQController.java index 2e402d0f..d166deaf 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/rabbitmq/RabbitMQController.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/rabbitmq/RabbitMQController.java @@ -81,7 +81,6 @@ public class RabbitMQController { * @return 接收结果 */ @GetMapping("/receiveAll") -// public List receiveMessage(@RequestParam String queueName) { public CommonResult receiveMessage() { String queueName = SecurityFrameworkUtils.getLoginQueueName(); boolean examQuestionToRabbitMQ = examQuestionService.getExamQuestionToRabbitMQInsertData(queueName); diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/specialty/ExamSpecialtyController.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/specialty/ExamSpecialtyController.java index d7a0aa07..84056a83 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/specialty/ExamSpecialtyController.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/specialty/ExamSpecialtyController.java @@ -167,8 +167,10 @@ public class ExamSpecialtyController{ @GetMapping(value = "/getRole/{id}") public CommonResult getRole(@PathVariable("id") String id) { String roles= examSpecialtyService.getRoleById(id); - - return success(Integer.parseInt(roles)); + if(roles!=null){ + return success(Integer.parseInt(roles)); + } + return success(""); } } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/question/ExamQuestionMapper.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/question/ExamQuestionMapper.java index b6acaf55..320e15eb 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/question/ExamQuestionMapper.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/question/ExamQuestionMapper.java @@ -121,7 +121,7 @@ public interface ExamQuestionMapper extends BaseMapperX void updateExamQuestionByIds(@Param("updater") String loginUserNickname, @Param("quIds") List quIds); - int selectExamQuestionCountByQuId(String quId); + ExamQuestion selectExamQuestionCountByQuId(String quId); List getSchoolNameNaPage(); @@ -134,4 +134,9 @@ public interface ExamQuestionMapper extends BaseMapperX ,@Param("content") String content); String selectSchoolnameBytId(Long loginTenantId); + + void insertOrUpdateList(List examQuestions); + + + } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/question/ExamQuestionServiceImpl.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/question/ExamQuestionServiceImpl.java index a48653bb..30f7ec5c 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/question/ExamQuestionServiceImpl.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/question/ExamQuestionServiceImpl.java @@ -124,6 +124,7 @@ public class ExamQuestionServiceImpl implements IExamQuestionService String uuid = IdUtils.simpleUUID(); examQuestion.setQuId(uuid); + examQuestion.setQuBankId(uuid); examQuestion.setCreateTime(DateUtils.getNowLocalDateTime()); List answerList = examQuestion.getAnswerList(); List fileUploads = examQuestion.getFileUploads(); @@ -197,36 +198,6 @@ public class ExamQuestionServiceImpl implements IExamQuestionService @Override public int updateExamQuestion(ExamQuestion examQuestion) { - //获取试题id -// String quId = examQuestion.getQuId(); -// ExamQuestion examQuestion1 = examQuestionMapper.selectExamQuestionByQuId(quId); -// String quBankId = examQuestion1.getQuBankId(); -// //现在题有题库归属 -// if (examQuestion.getQuBankId() != null && !examQuestion.getQuBankId().equals("")) { -// //原来试题有题库归属 -// if (quBankId!=null&& !quBankId.equals("")){ -// //代表没改动题库 -// if (quBankId.equals(examQuestion.getQuBankId())){ -// -// } -// //改动题库 -// else { -// UpdateQuCount(quBankId); -// UpdateQuCountNow(examQuestion.getQuBankId()); -// } -// } -// //原来试题没题库归属 -// else { -// UpdateQuCountNow(examQuestion.getQuBankId()); -// } -// } -// //现在题没题库归属 -// else { -// //原来试题有题库归属 -// if (quBankId!=null&& !quBankId.equals("")){ -// UpdateQuCount(quBankId); -// } -// } @@ -504,12 +475,111 @@ public class ExamQuestionServiceImpl implements IExamQuestionService } if(examQuestions!=null&&examQuestions.size()>0){ for (ExamQuestion examQuestion : examQuestions) { - int count= examQuestionMapper.selectExamQuestionCountByQuId(examQuestion.getQuId()); - if (count==0){ - examQuestion.setQuId(IdUtils.simpleUUID()); + + ExamQuestion question= examQuestionMapper.selectExamQuestionCountByQuId(examQuestion.getQuBankId()); + if (question==null){ + //如果没有,就是新增 + String quId = IdUtils.simpleUUID(); + examQuestion.setQuId(quId); + + //新增 + List answerList = examQuestion.getAnswerList(); + List fileUploads = examQuestion.getFileUploads(); + ExamQuestionScore questionScores = examQuestion.getQuestionScores(); + List questionKeywords = examQuestion.getQuestionKeywords(); + + if (answerList!=null&&answerList.size()>0){ + answerList.replaceAll(answer -> { + answer.setAnswerId(IdUtils.simpleUUID()); + answer.setQuId(quId); + return answer; + }); + //examQuestionAnswerMapper.insert(answerList); + examQuestionAnswerMapper.insertExamQuestionAnswerList(answerList); + } + + if (fileUploads!=null&&fileUploads.size()>0){ + fileUploads.replaceAll(fileUpload -> { + // 设置 fileId 和 quId + fileUpload.setFileId(IdUtils.simpleUUID()); + fileUpload.setQuId(quId); + + return fileUpload; + }); + sysFileMapper.insertSysFileList(fileUploads); + + } + + if (questionScores!=null){ + questionScores.setScoreId(IdUtils.simpleUUID()); + questionScores.setQuId(quId); + examQuestionScoreMapper.insertExamQuestionScore(questionScores); + } + if (questionKeywords!=null&&questionKeywords.size()>0){ + questionKeywords.replaceAll(examQuestionKeyword -> { + examQuestionKeyword.setKeywordId(IdUtils.simpleUUID()); + examQuestionKeyword.setQuId(quId); + return examQuestionKeyword; + }); + examQuestionKeywordMapper.insertExamQuestionKeywordList(questionKeywords); + } + } + //有就是覆盖 + else{ + examQuestion.setQuId(question.getQuId()); + String quId = question.getQuId(); + examQuestionAnswerMapper.deleteExamQuestionAnswerByQuesId(quId); + sysFileMapper.deleteSysFileByQuesId(quId); + examQuestionScoreMapper.deleteExamQuestionScoreByQuesId(quId); + examQuestionKeywordMapper.deleteExamQuestionScoreByQuesId(quId); + + + //新增 + List answerList = examQuestion.getAnswerList(); + List fileUploads = examQuestion.getFileUploads(); + ExamQuestionScore questionScores = examQuestion.getQuestionScores(); + List questionKeywords = examQuestion.getQuestionKeywords(); + + if (answerList!=null&&answerList.size()>0){ + answerList.replaceAll(answer -> { + answer.setAnswerId(IdUtils.simpleUUID()); + answer.setQuId(quId); + return answer; + }); + //examQuestionAnswerMapper.insert(answerList); + examQuestionAnswerMapper.insertExamQuestionAnswerList(answerList); + } + + if (fileUploads!=null&&fileUploads.size()>0){ + fileUploads.replaceAll(fileUpload -> { + // 设置 fileId 和 quId + fileUpload.setFileId(IdUtils.simpleUUID()); + fileUpload.setQuId(quId); + + return fileUpload; + }); + sysFileMapper.insertSysFileList(fileUploads); + + } + + if (questionScores!=null){ + questionScores.setScoreId(IdUtils.simpleUUID()); + questionScores.setQuId(quId); + examQuestionScoreMapper.insertExamQuestionScore(questionScores); + } + if (questionKeywords!=null&&questionKeywords.size()>0){ + questionKeywords.replaceAll(examQuestionKeyword -> { + examQuestionKeyword.setKeywordId(IdUtils.simpleUUID()); + examQuestionKeyword.setQuId(quId); + return examQuestionKeyword; + }); + examQuestionKeywordMapper.insertExamQuestionKeywordList(questionKeywords); + } } - examQuestionMapper.insertOrUpdate(examQuestions); + + } + examQuestionMapper.insertOrUpdateList(examQuestions); } return true; @@ -527,6 +597,32 @@ public class ExamQuestionServiceImpl implements IExamQuestionService // 2、根据试题ID和租户查找试题详情 ExamQuestion examQuestion_obj = examQuestionMapper.selectExamQuestionByQuId(quId); + + //查找试题答案 + List examQuestionAnswers = examQuestionAnswerMapper.selectExamQuestionAnswerByQuId(quId); + //查找试题文件 + List sysFileUploads =sysFileMapper.selectSysFileByQuid(quId); + //查找试题判分 + ExamQuestionScore examQuestionScore =examQuestionScoreMapper.selectExamQuestionScoreByQuId(quId); + //获取试题关键字 + List examQuestionKeywords = examQuestionKeywordMapper.selectExamQuestionKeywordByQuId(quId); + + + if (examQuestion_obj!=null){ + if (examQuestionAnswers!=null&&examQuestionAnswers.size()>0){ + examQuestion_obj.setAnswerList(examQuestionAnswers); + } + if (sysFileUploads!=null&&sysFileUploads.size()>0){ + examQuestion_obj.setFileUploads(sysFileUploads); + } + if (examQuestionScore!=null){ + examQuestion_obj.setQuestionScores(examQuestionScore); + } + if (examQuestionKeywords!=null&&examQuestionKeywords.size()>0){ + examQuestion_obj.setQuestionKeywords(examQuestionKeywords); + } + } + // examQuestion_obj.setType(rabbitMQSendInfoVO.getType()); // examQuestion_obj.setSource(SecurityFrameworkUtils.getLoginTenantId()); // examQuestion_obj.setCreateTeacher(SecurityFrameworkUtils.getLoginUserNickname()); @@ -582,6 +678,7 @@ public class ExamQuestionServiceImpl implements IExamQuestionService examQuestion.setKeywords(importUser.getKeywords()); examQuestion.setCreator(SecurityFrameworkUtils.getLoginUserNickname()); examQuestion.setQuId(quId); + examQuestion.setQuBankId(quId); examQuestion.setCreateTime(DateUtils.getNowLocalDateTime()); examQuestionMapper.insertExamQuestion(examQuestion); System.out.println(examQuestion); diff --git a/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/ExamQuestionMapper.xml b/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/ExamQuestionMapper.xml index 6478fd8e..43049b41 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/ExamQuestionMapper.xml +++ b/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/ExamQuestionMapper.xml @@ -107,8 +107,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM system_tenant WHERE deleted = 0 - + select * from exam_question where qu_bank_id=#{quId}