2025年3月20日16:16:40

master
qmstyle 2025-03-20 16:16:48 +08:00
parent de8bc9b718
commit 8d3cea76e1
5 changed files with 66 additions and 8 deletions

View File

@ -65,7 +65,11 @@
<!-- <groupId>org.springframework.boot</groupId>--> <!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-security</artifactId>--> <!-- <artifactId>spring-boot-starter-security</artifactId>-->
<!-- </dependency>--> <!-- </dependency>-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.52</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -1,8 +1,12 @@
package com.zhangmeng.online.exam.controller; 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.PaperDao;
import com.zhangmeng.online.exam.dao.QuestionDao;
import com.zhangmeng.online.exam.dto.Result; import com.zhangmeng.online.exam.dto.Result;
import com.zhangmeng.online.exam.entity.Paper; 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.entity.User;
import com.zhangmeng.online.exam.utils.PageUtils; import com.zhangmeng.online.exam.utils.PageUtils;
import org.springframework.beans.factory.annotation.Autowired; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @author zm * @author zm
@ -31,6 +32,9 @@ public class PaperController {
@Autowired @Autowired
private PaperDao paperDao; private PaperDao paperDao;
@Autowired
private QuestionDao questionDao;
@RequestMapping("/list") @RequestMapping("/list")
public Result list(Integer pageNum, Integer pageSize) { public Result list(Integer pageNum, Integer pageSize) {
@ -51,4 +55,42 @@ public class PaperController {
return Result.success(pageNum, pageSize, all.getTotalElements(), resultList); return Result.success(pageNum, pageSize, all.getTotalElements(), resultList);
} }
@RequestMapping("/chooseQuestion/save")
public Result chooseQuestionSave(String id, String ids) {
Optional<Paper> 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> 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<Paper> paperOptional = paperDao.findById(Long.valueOf(id));
if (!paperOptional.isPresent()){
return Result.error("试卷不存在");
}
Paper paper = paperOptional.get();
List<Question> questions = paper.getQuestions();
List<Map<String, Object>> resultList = new ArrayList<>();
for (Question question : questions) {
Map<String, Object> 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);
}
} }

View File

@ -45,6 +45,7 @@ public class QuestionController {
map.put("name", question.getName()); map.put("name", question.getName());
map.put("type", question.getType().getDesc()); map.put("type", question.getType().getDesc());
map.put("subject", question.getSubject().getName()); map.put("subject", question.getSubject().getName());
map.put("score", question.getScore());
resultList.add(map); resultList.add(map);
} }
return Result.success(pageNum, pageSize, all.getTotalElements(), resultList); return Result.success(pageNum, pageSize, all.getTotalElements(), resultList);

View File

@ -55,6 +55,13 @@ public class Result {
return result; return result;
} }
public static Result error(String msg) {
Result result = new Result();
result.setCode(ERROR);
result.setMessage(msg);
return result;
}
public int getCode() { public int getCode() {
return code; return code;
} }

View File

@ -26,7 +26,7 @@ public class Question extends BaseEntity<Long> {
MULTIPLE_CHOICE("多选题", 1),//多选题 MULTIPLE_CHOICE("多选题", 1),//多选题
JUDGMENT("判断题", 2),//判断题 JUDGMENT("判断题", 2),//判断题
SHORT_ANSWER("简答题", 3),//简答题 SHORT_ANSWER("简答题", 3),//简答题
TRUE_OR_FALSE("判断题",4),//判断 Fill_IN_THE_BLANKS("填空题", 4),//填空
NUMERICAL("计算题",5);//计算题 NUMERICAL("计算题",5);//计算题
private String desc; private String desc;
@ -63,6 +63,10 @@ public class Question extends BaseEntity<Long> {
private Type type; private Type type;
private Integer score;//分值
private String explanation;//问题解析
@OneToMany(mappedBy = "question") @OneToMany(mappedBy = "question")
private List<QuestionOption> options = new ArrayList<>(); private List<QuestionOption> options = new ArrayList<>();