package com.ots.project.exam.controller;
|
import com.ots.common.enums.UserTypeEnum;
|
import com.ots.common.utils.security.ShiroUtils;
|
import com.ots.framework.web.controller.BaseController;
|
import com.ots.framework.web.page.TableDataInfo;
|
import com.ots.project.exam.domain.EntTestDetail;
|
import com.ots.project.exam.domain.TExamReport;
|
import com.ots.project.exam.domain.comparator.IdComparator;
|
import com.ots.project.exam.domain.comparator.TimeSpentComparator;
|
import com.ots.project.exam.dto.QuestionReport;
|
import com.ots.project.exam.service.ITExamReportService;
|
import com.ots.project.system.user.domain.User;
|
import com.ots.project.tool.exam.DateTimeUtil;
|
import com.ots.project.tool.exam.ExamUtil;
|
import com.ots.project.tool.exam.JsonUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.web.bind.annotation.*;
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.Objects;
|
|
@Controller
|
@RequestMapping("/exam/entTestDetail")
|
public class EntTestDetailController extends BaseController {
|
private String prefix = "exam/entTestDetail";
|
@Autowired
|
private ITExamReportService examReportService;
|
@GetMapping("/testDetail/{tokens}")
|
|
public String entTestDetail(@PathVariable List<String> tokens, ModelMap mmap) {
|
EntTestDetail entTestDetail = new EntTestDetail();
|
entTestDetail.setToken(JsonUtil.toJsonStr(tokens));
|
User sysUser = ShiroUtils.getSysUser();
|
entTestDetail.setUserType(UserTypeEnum.SYS_USER.getUserType());
|
mmap.put("entTestDetail", entTestDetail);
|
return prefix + "/entTestDetail";
|
}
|
|
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(EntTestDetail entTestDetail) {
|
startPage();
|
String[] tokenIds = JsonUtil.toJsonObject(entTestDetail.getToken(), String[].class);
|
List<TExamReport> tExamReportList = examReportService.selectTExamReportByTokenList(tokenIds);
|
List<EntTestDetail> entTestDetailList = new ArrayList<>();
|
for (TExamReport tExamReport : tExamReportList) {
|
if (Objects.isNull(tExamReport.getQuestionReport())) {
|
continue;
|
}
|
List<QuestionReport> questionReportList = JsonUtil.toJsonListObject(tExamReport.getQuestionReport(), QuestionReport.class);
|
if (ExamUtil.isListEmpty(questionReportList)) {
|
continue;
|
}
|
|
for (QuestionReport questionReport : questionReportList) {
|
EntTestDetail entTestDetailTemp = new EntTestDetail();
|
entTestDetailTemp.setPermanentId(questionReport.getPermanentId());
|
entTestDetailTemp.setId(questionReport.getId());
|
entTestDetailTemp.setQuestionTitle(questionReport.getQuestionTitle());
|
entTestDetailTemp.setMemberId(tExamReport.getMemberId());
|
entTestDetailTemp.setMemberName(tExamReport.getMemberName());
|
entTestDetailTemp.setStartTime(DateTimeUtil.parseToOften(questionReport.getStartTime()));
|
entTestDetailTemp.setEndTime(DateTimeUtil.parseToOften(questionReport.getEndTime()));
|
entTestDetailTemp.setTimeSpent(questionReport.getTimeSpent());
|
entTestDetailList.add(entTestDetailTemp);
|
}
|
}
|
|
if (Objects.equals("TimeSpent",entTestDetail.getSortType())) {
|
Collections.sort(entTestDetailList, new TimeSpentComparator());
|
}else {
|
Collections.sort(entTestDetailList, new IdComparator());
|
}
|
return getDataTable(entTestDetailList);
|
}
|
|
@GetMapping("/add")
|
public String add() {
|
return prefix + "/add";
|
}
|
}
|