From 8d3cea76e10c0eef512b43523279d862633bb543 Mon Sep 17 00:00:00 2001 From: qmstyle Date: Thu, 20 Mar 2025 16:16:48 +0800 Subject: [PATCH] =?UTF-8?q?2025=E5=B9=B43=E6=9C=8820=E6=97=A516:16:40?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++- .../exam/controller/PaperController.java | 54 ++++++++++++++++--- .../exam/controller/QuestionController.java | 1 + .../com/zhangmeng/online/exam/dto/Result.java | 7 +++ .../online/exam/entity/Question.java | 6 ++- 5 files changed, 66 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 589254d..5639f9a 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,11 @@ - + + com.alibaba + fastjson + 2.0.52 + diff --git a/src/main/java/com/zhangmeng/online/exam/controller/PaperController.java b/src/main/java/com/zhangmeng/online/exam/controller/PaperController.java index 33d500e..f990324 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/PaperController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/PaperController.java @@ -1,8 +1,12 @@ package com.zhangmeng.online.exam.controller; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.util.JSONPObject; import com.zhangmeng.online.exam.dao.PaperDao; +import com.zhangmeng.online.exam.dao.QuestionDao; import com.zhangmeng.online.exam.dto.Result; import com.zhangmeng.online.exam.entity.Paper; +import com.zhangmeng.online.exam.entity.Question; import com.zhangmeng.online.exam.entity.User; import com.zhangmeng.online.exam.utils.PageUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -13,10 +17,7 @@ import org.springframework.data.domain.Sort; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author zm @@ -31,6 +32,9 @@ public class PaperController { @Autowired private PaperDao paperDao; + @Autowired + private QuestionDao questionDao; + @RequestMapping("/list") public Result list(Integer pageNum, Integer pageSize) { @@ -44,11 +48,49 @@ public class PaperController { map.put("name", paper.getName()); map.put("creator_username", paper.getCreator().getUsername()); map.put("subject_name", paper.getSubject().getName()); - map.put("totalScore",paper.getTotalScore());//总分 - map.put("examTime",paper.getExamTime());//考试时间 + map.put("totalScore", paper.getTotalScore());//总分 + map.put("examTime", paper.getExamTime());//考试时间 resultList.add(map); } return Result.success(pageNum, pageSize, all.getTotalElements(), resultList); } + @RequestMapping("/chooseQuestion/save") + public Result chooseQuestionSave(String id, String ids) { + + Optional paperOptional = paperDao.findById(Long.valueOf(id)); + if (!paperOptional.isPresent()){ + return Result.error("试卷不存在"); + } + Paper paper = paperOptional.get(); + for (String questionId : JSONObject.parseArray(ids, String.class)) { + Optional question = this.questionDao.findById(Long.valueOf(questionId)); + if (question.isPresent()){ + paper.getQuestions().add(question.get()); + } + } + paperDao.save(paper); + return Result.success(null); + } + + @RequestMapping("/chooseQuestion/list") + public Result chooseQuestionList(String id) { + Optional paperOptional = paperDao.findById(Long.valueOf(id)); + if (!paperOptional.isPresent()){ + return Result.error("试卷不存在"); + } + Paper paper = paperOptional.get(); + List questions = paper.getQuestions(); + List> resultList = new ArrayList<>(); + for (Question question : questions) { + Map map = new HashMap<>(); + map.put("id", question.getId()); + map.put("name", question.getName()); + map.put("type", question.getType().getDesc()); + map.put("subject", question.getSubject().getName()); + map.put("score", question.getScore()); + resultList.add(map); + } + return Result.success(resultList); + } } diff --git a/src/main/java/com/zhangmeng/online/exam/controller/QuestionController.java b/src/main/java/com/zhangmeng/online/exam/controller/QuestionController.java index 64af5fb..2bef804 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/QuestionController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/QuestionController.java @@ -45,6 +45,7 @@ public class QuestionController { map.put("name", question.getName()); map.put("type", question.getType().getDesc()); map.put("subject", question.getSubject().getName()); + map.put("score", question.getScore()); resultList.add(map); } return Result.success(pageNum, pageSize, all.getTotalElements(), resultList); diff --git a/src/main/java/com/zhangmeng/online/exam/dto/Result.java b/src/main/java/com/zhangmeng/online/exam/dto/Result.java index 5d717e7..7702e7c 100644 --- a/src/main/java/com/zhangmeng/online/exam/dto/Result.java +++ b/src/main/java/com/zhangmeng/online/exam/dto/Result.java @@ -55,6 +55,13 @@ public class Result { return result; } + public static Result error(String msg) { + Result result = new Result(); + result.setCode(ERROR); + result.setMessage(msg); + return result; + } + public int getCode() { return code; } diff --git a/src/main/java/com/zhangmeng/online/exam/entity/Question.java b/src/main/java/com/zhangmeng/online/exam/entity/Question.java index 8d9ca60..c281517 100644 --- a/src/main/java/com/zhangmeng/online/exam/entity/Question.java +++ b/src/main/java/com/zhangmeng/online/exam/entity/Question.java @@ -26,7 +26,7 @@ public class Question extends BaseEntity { MULTIPLE_CHOICE("多选题", 1),//多选题 JUDGMENT("判断题", 2),//判断题 SHORT_ANSWER("简答题", 3),//简答题 - TRUE_OR_FALSE("判断题",4),//判断题 + Fill_IN_THE_BLANKS("填空题", 4),//填空题 NUMERICAL("计算题",5);//计算题 private String desc; @@ -63,6 +63,10 @@ public class Question extends BaseEntity { private Type type; + private Integer score;//分值 + + private String explanation;//问题解析 + @OneToMany(mappedBy = "question") private List options = new ArrayList<>();