package com.mindskip.xzs.controller.student; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.domain.ExamPaperAnswer; import com.mindskip.xzs.domain.ExamTemplatesUserCount; import com.mindskip.xzs.domain.User; import com.mindskip.xzs.domain.vo.ExamTemplatesUserCountVO; import com.mindskip.xzs.repository.ExamTemplatesMapper; import com.mindskip.xzs.service.ExamPaperAnswerService; import com.mindskip.xzs.service.ExamTemplatesUserCountService; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.stream.Collectors; @RestController("StudentExamTemplatesUserCountController") @RequestMapping(value = "/api/student/exam/count") public class ExamTemplatesUserCountController extends BaseApiController { private final ExamTemplatesUserCountService examTemplatesUserCountService; private final ExamTemplatesMapper examTemplatesMapper; private final ExamPaperAnswerService examPaperAnswerService; public ExamTemplatesUserCountController(ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesMapper examTemplatesMapper, ExamPaperAnswerService examPaperAnswerService) { this.examTemplatesUserCountService = examTemplatesUserCountService; this.examTemplatesMapper = examTemplatesMapper; this.examPaperAnswerService = examPaperAnswerService; } @RequestMapping(value = "/list", method = RequestMethod.POST) public RestResponse> select(@RequestBody ExamPaperPageRequestVM model) throws Exception { User user = getCurrentUser(); model.setUserId(user.getId()); PageInfo info = examTemplatesUserCountService.list(model); info.setList(info.getList().stream().map(e->{ e.setName(examTemplatesMapper.getById(e.getId()).getName()); return e; }).collect(Collectors.toList())); return RestResponse.ok(info); } @RequestMapping(value = "/sourceList", method = RequestMethod.POST) public RestResponse> selectSource(@RequestBody ExamTemplatesUserCountVO examTemplatesUserCountVO) throws Exception { List pageInfo = examTemplatesUserCountService.getByUserIdAndTemplatesId(examTemplatesUserCountVO); PageInfo idDesc = PageHelper.startPage(examTemplatesUserCountVO.getPageIndex(), examTemplatesUserCountVO.getPageSize(), "id desc").doSelectPageInfo(() -> examPaperAnswerService.getByExamPaperIdAndUserId(pageInfo)); return RestResponse.ok(idDesc); } }