123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package com.ghsc.partybuild.controller.exammanage;
- import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
- import com.ghsc.partybuild.service.UserService;
- import com.ghsc.partybuild.service.exammanage.ExamTestService;
- import com.ghsc.partybuild.util.DateUtils;
- import com.ghsc.partybuild.util.MapUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.time.LocalDate;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- @RestController
- @RequestMapping(value = "/api/examtest")
- public class ExamTestController {
- @Autowired
- private ExamTestService examTestService;
- @Autowired
- private UserService userService;
- @Autowired
- private MapUtils mapUtils;
- @Autowired
- private DateUtils dateUtils;
- @ResponseBody
- @PostMapping("/getPracticeQuestions")
- public RequsetData<List<Map<String, Object>>> getPracticeQuestions(@RequestBody Map<String, Object> JsonObject) throws Exception {
- RequsetData<List<Map<String, Object>>> result = new RequsetData<>();
- List<Integer> typeList = (List<Integer>) JsonObject.get("typeList");
- List<String> labaryidList = (List<String>) JsonObject.get("labaryidList");
- Integer questionnumber = (Integer) JsonObject.get("questionnumber");
- List<Map<String, Object>> list = examTestService.selectePracticeQuestions(labaryidList, typeList, questionnumber);
- result.setItem(list);
- return result;
- }
- @ResponseBody
- @PostMapping("/autoReaderPaper")
- public RequsetData<List<Map<String, Object>>> autoReaderPaper(@RequestBody Map<String, Object> reqMap) {
- RequsetData<List<Map<String, Object>>> result = new RequsetData<>();
- List<Map<String, Object>> userQuestionList = (List<Map<String, Object>>) reqMap.get("userQuestionList");
- this.readPaper(userQuestionList);
- result.setItem(userQuestionList);
- return result;
- }
- private void readPaper(List<Map<String, Object>> userQuestionList) {
- for (Map<String, Object> ques : userQuestionList) {
- List<Map<String, Object>> answers = (List<Map<String, Object>>) ques.get("ANSWERS");
- boolean isRight = false;
- switch (Integer.parseInt(ques.get("BASE_QUESTION_TYPE_ID").toString())) {
- case 1://单选题
- case 4://判断题
- String useranswer = (String) ques.get("useranswer");
- if (useranswer == null) {
- break;
- }
- isRight = answers.stream().filter(ans -> {
- return ans.get("ISRIGHT").equals(1) && ans.get("PROVID_ANSWER_ID").equals(useranswer);
- }).count() > 0;
- ques.put("isRight", isRight);
- break;
- case 3://多选题
- long useranswerNum = answers.stream().filter(ans -> ans.get("useranswer") != null).count();
- if (useranswerNum == 0) {
- break;
- }
- String rightNum = answers.stream().filter(ans ->
- ans.get("ISRIGHT").equals(1)
- ).map(x -> x.get("ORDER").toString()).collect(Collectors.joining(","));
- String userRightNum = answers.stream().filter(ans ->
- ans.get("useranswer") != null && (boolean) ans.get("useranswer")
- ).map(x -> x.get("ORDER").toString()).collect(Collectors.joining(","));
- isRight = rightNum.equals(userRightNum);
- ques.put("isRight", isRight);
- break;
- case 2://填空题
- case 5://简答题
- break;
- }
- }
- }
- @ResponseBody
- @GetMapping("/updateTestManStatu")
- public RequsetData<Integer> updateTestManStatu(@RequestParam(required = false) String testmanId,
- @RequestParam(required = false) Short manStatu) {
- RequsetData<Integer> result = new RequsetData<>();
- int count = 0;
- String message = "";
- try {
- count = examTestService.updateTestManStatu(testmanId, manStatu);
- result.setItem(count);
- } catch (Exception ex) {
- message = ex.getMessage();
- }
- result.setSuccess(count > 0);
- result.setMsg(message);
- return result;
- }
- @ResponseBody
- @GetMapping("/getUserTestPaperQuestions")
- public RequsetData<List<Map<String, Object>>> getUserTestPaperQuestions(@RequestParam(required = false) String paperid,
- @RequestParam(required = false) String testid) {
- RequsetData<List<Map<String, Object>>> result = new RequsetData<>();
- List<Map<String, Object>> list = examTestService.selecteUserTestPaperQuestions(paperid, testid, userService.getLoginUser().getUserid());
- result.setItem(list);
- return result;
- }
- @ResponseBody
- @PostMapping("/submitExamTest")
- public RequsetData<String> submitExamTest(@RequestBody Map<String, Object> reqMap) {
- List<Map<String, Object>> userQuestionList = (List<Map<String, Object>>) reqMap.get("userQuestionList");
- String onlinetestId = (String) reqMap.get("onlinetestId");
- String testmanId = (String) reqMap.get("testmanId");
- return examTestService.submitExamTest(onlinetestId, testmanId, userQuestionList);
- }
- }
|