Sfoglia il codice sorgente

Merge branch 'quiz' into iterator2

ChenSiTong 6 anni fa
parent
commit
66f7d3dff9

+ 7 - 5
src/main/java/nju/seec/helper/controller/QuestionController.java

@@ -18,6 +18,7 @@ import org.springframework.data.web.PageableDefault;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
+
 /**
  * 题库
  *
@@ -32,17 +33,18 @@ public class QuestionController {
     private SlideDAO slideDAO;
     @Autowired
     private QuestionService questionService;
+
     /**
      * 获得题目列表
      */
     @Auth(roles = {UserType.TEACHER}, message = "获得题目列表")
     @GetMapping("")
-    public Map getQuestionList(LoginUser user, String stem,@PageableDefault(Integer.MAX_VALUE) Pageable pageable) throws JsonProcessingException {
+    public Map getQuestionList(LoginUser user, String stem, @PageableDefault(Integer.MAX_VALUE) Pageable pageable) throws JsonProcessingException {
 
         final Page<BaseQuestionVO> page = questionService.getQuestionList(user, stem, pageable);
-        Map ret=new LinkedHashMap(2);
-        ret.put("questions",page.getContent());
-        ret.put("page",PageResponse.PageInfo.of(page.getNumber()+1, page.getSize(), page.getTotalPages(), Long.valueOf(page.getTotalElements()).intValue()));
+        Map ret = new LinkedHashMap(2);
+        ret.put("questions", page.getContent());
+        ret.put("page", PageResponse.PageInfo.of(page.getNumber() + 1, page.getSize(), page.getTotalPages(), Long.valueOf(page.getTotalElements()).intValue()));
         return ret;
     }
 
@@ -51,7 +53,7 @@ public class QuestionController {
      */
     @Auth(roles = {UserType.TEACHER}, message = "获得题目详情")
     @GetMapping("/{questionId}")
-        public BaseQuestionVO getQuestion(LoginUser user, @PathVariable("questionId") String questionId) throws JsonProcessingException {
+    public BaseQuestionVO getQuestion(LoginUser user, @PathVariable("questionId") String questionId) throws JsonProcessingException {
         return questionService.getQuestion(questionId);
     }
 

+ 11 - 11
src/main/java/nju/seec/helper/controller/QuizController.java

@@ -41,33 +41,33 @@ public class QuizController {
     /**
      * 获得测试列表
      */
-    @Auth(roles = {UserType.STUDENT,UserType.TEACHER}, message = "获得测试列表")
+    @Auth(roles = {UserType.STUDENT, UserType.TEACHER}, message = "获得测试列表")
     @GetMapping("")
     public Map getBasicQuizList(LoginUser user, String slideId,
-                      QuizState state	, @PageableDefault(Integer.MAX_VALUE) Pageable pageable) {
-        List<QuizVO> quizzes=new ArrayList<QuizVO>();
-        Map ret=new LinkedHashMap(2);
+                                QuizState state, @PageableDefault(Integer.MAX_VALUE) Pageable pageable) {
+        List<QuizVO> quizzes = new ArrayList<QuizVO>();
+        Map ret = new LinkedHashMap(2);
         Page<Quiz> page;
-        if(slideId!=null){
+        if (slideId != null) {
             page = quizService.getAllBasicQuizBySlide(Long.valueOf(slideId), pageable, state, user.getId());
-           }else{
-            page = quizService.getAllBasicQuizByUser( pageable, state, user.getId());
+        } else {
+            page = quizService.getAllBasicQuizByUser(pageable, state, user.getId());
         }
         quizzes.addAll(page.getContent().stream().map(QuizVO::new).collect(Collectors.toList()));
-        ret.put("page",PageResponse.PageInfo.of(page.getNumber()+1, page.getSize(), page.getTotalPages(), Long.valueOf(page.getTotalElements()).intValue()));
-        ret.put("quizzes",quizzes);
+        ret.put("page", PageResponse.PageInfo.of(page.getNumber() + 1, page.getSize(), page.getTotalPages(), Long.valueOf(page.getTotalElements()).intValue()));
+        ret.put("quizzes", quizzes);
         return ret;
     }
 
     /**
      * 获得某一测试的详细内容
      */
-    @Auth(roles = {UserType.STUDENT,UserType.TEACHER}, message = "获得某一测试的详细内容")
+    @Auth(roles = {UserType.STUDENT, UserType.TEACHER}, message = "获得某一测试的详细内容")
     @GetMapping("/{quizId}")
     public QuizVO getOneQuiz(LoginUser user, @PathVariable("quizId") String quizId) {
         QuizVO quizVO = quizService.combineQuizWithAnswer(Long.valueOf(quizId), user.getId(), user.getType());
 
-        if(user.getType().equals(UserType.STUDENT)&&!quizVO.getState().equals(QuizState.CLOSED)){
+        if (user.getType().equals(UserType.STUDENT) && !quizVO.getState().equals(QuizState.CLOSED)) {
             quizVO.excludeCorrectAnswer();
         }
         return quizVO;

+ 1 - 1
src/main/java/nju/seec/helper/service/impl/QuizServiceImpl.java

@@ -167,7 +167,7 @@ public class QuizServiceImpl implements QuizService {
         Assert.notNull(quizId, "错误的测试!");
         final Quiz quiz = quizDAO.findQuizById(quizId);
         if (quiz.getState() != QuizState.ONGOING) {
-            throw HelperException.of(ExceptionType.FORBIDDEN, "不能提交尚未开始的作业!");
+            throw HelperException.of(ExceptionType.FORBIDDEN, "不能提交尚未开始或已经结束的作业!");
         }
         User student = new User();
         student.setId(uid);

+ 4 - 3
src/main/java/nju/seec/helper/util/BokUtil.java

@@ -40,7 +40,7 @@ public class BokUtil {
         this.restRequestUtil = restRequestUtil;
         this.cacheUtils = cacheUtils;
     }
-
+    
     public void bokFindByStemLike(String stem, List<BaseQuestionVO> questions, Map page, Pageable pageable) {
         Map<String, String> urlParams = new HashMap<>();
         urlParams.put("content", stem);
@@ -101,6 +101,7 @@ public class BokUtil {
             List<BaseQuestionVO> collect = parseBody(tqs);
             Map<String, Object> newGet = new HashMap<>(collect.size());
             for (BaseQuestionVO vo : collect) {
+                System.out.println(vo);
                 questionsMap.put(vo.getQuestionId(), vo);
                 newGet.put(vo.getQuestionId(), vo);
             }
@@ -125,12 +126,12 @@ public class BokUtil {
             case "choice":
                 return ChoiceQuestionVO.builder().stem((String) q.get("stem")).kind(QuestionKindState.CHOICE)
                         .options((Map<String, String>) q.get("options")).answer(((String) q.get("answer")).replaceAll("【答案】", ""))
-                        .analysis((String) q.get("analysis")).questionId(String.valueOf((Integer) q.get("tqId"))).build();
+                        .analysis((String) q.get("analysis")).questionId(String.valueOf((Integer) q.get("tq_id"))).build();
 
             case "true_false":
                 return TrueOrFalseQuestionVO.builder().stem((String) q.get("stem")).kind(QuestionKindState.TRUE_FALSE)
                         .answer(Boolean.valueOf((String) q.get("answer")))
-                        .analysis((String) q.get("analysis")).questionId(String.valueOf((Integer) q.get("tqId"))).build();
+                        .analysis((String) q.get("analysis")).questionId(String.valueOf((Integer) q.get("tq_id"))).build();
             default:
         }
         throw HelperException.of(ExceptionType.ERROR, "unknown type:" + (String) q.get("type"));

+ 3 - 0
src/main/java/nju/seec/helper/vo/quiz/BaseQuestionVO.java

@@ -11,6 +11,7 @@ import nju.seec.helper.util.enums.ExceptionType;
 import nju.seec.helper.util.enums.QuestionKindState;
 import nju.seec.helper.util.exception.HelperException;
 
+import javax.validation.constraints.NotNull;
 import java.util.Map;
 
 /**
@@ -21,8 +22,10 @@ import java.util.Map;
 @AllArgsConstructor
 @SuperBuilder
 public abstract class BaseQuestionVO {
+    @NotNull
     @JsonProperty(value = "id")
     private String questionId;
+    @NotNull
     @JsonProperty(value = "kind")
     private QuestionKindState kind;
     @JsonProperty(value = "stem")