package com.mindskip.xzs.controller.admin; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.ExamPaperSubject; import com.mindskip.xzs.domain.vo.PaperExcelVO; import com.mindskip.xzs.service.ExamPaperDepartmentService; import com.mindskip.xzs.service.ExamPaperService; import com.mindskip.xzs.service.ExamPaperSubjectService; import com.mindskip.xzs.service.ExamTemplatesUserCountService; import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.utility.excel.ExcelUtils; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM; import com.mindskip.xzs.viewmodel.admin.exam.ExamResponseVM; import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Arrays; import java.util.List; @RestController("AdminExamPaperController") @RequestMapping(value = "/api/admin/exam/paper") public class ExamPaperController extends BaseApiController { private final ExamPaperService examPaperService; private final ExamPaperSubjectService examPaperSubjectService; private final ExamPaperDepartmentService examPaperDepartmentService; private final ExamTemplatesUserCountService examTemplatesUserCountService; @Autowired public ExamPaperController(ExamPaperService examPaperService, ExamPaperSubjectService examPaperSubjectService, ExamPaperDepartmentService examPaperDepartmentService, ExamTemplatesUserCountService examTemplatesUserCountService) { this.examPaperService = examPaperService; this.examPaperSubjectService = examPaperSubjectService; this.examPaperDepartmentService = examPaperDepartmentService; this.examTemplatesUserCountService = examTemplatesUserCountService; } @RequestMapping(value = "/page", method = RequestMethod.POST) public RestResponse> pageList(@RequestBody ExamPaperPageRequestVM model) { model.setType("0"); PageInfo pageInfo = examPaperService.page(model); PageInfo page = PageInfoHelper.copyMap(pageInfo, e -> { ExamResponseVM vm = modelMapper.map(e, ExamResponseVM.class); vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); vm.setSubjectId(examPaperSubjectService.getByExamPaperId(vm.getId()) .stream().map(ExamPaperSubject::getSubjectId).toArray(Integer[]::new)); return vm; }); return RestResponse.ok(page); } @RequestMapping(value = "/taskExamPage", method = RequestMethod.POST) public RestResponse> taskExamPageList(@RequestBody ExamPaperPageRequestVM model) { PageInfo pageInfo = examPaperService.taskExamPage(model); PageInfo page = PageInfoHelper.copyMap(pageInfo, e -> { ExamResponseVM vm = modelMapper.map(e, ExamResponseVM.class); vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); Integer[] ids = examPaperSubjectService.getByExamPaperId(vm.getId()) .stream().map(ExamPaperSubject::getSubjectId).toArray(Integer[]::new); vm.setSubjectId(ids); return vm; }); return RestResponse.ok(page); } @RequestMapping(value = "/edit", method = RequestMethod.POST) public RestResponse edit(@RequestBody @Valid ExamPaperEditRequestVM model) throws Exception { Object[] obj = Arrays.stream(model.getUserIds()).sorted().distinct().toArray(); Integer[] userIds = new Integer[obj.length]; for(int i = 0;i missExam(@RequestBody ExamPaperEditRequestVM model) { examPaperService.missExam(model); return RestResponse.ok("操作成功"); } @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) public RestResponse select(@PathVariable Integer id) { ExamPaperEditRequestVO vm = examPaperService.examPaperToVM(id); return RestResponse.ok(vm); } @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST) public RestResponse delete(@PathVariable Integer id) { ExamPaper examPaper = examPaperService.selectById(id); examPaper.setDeleted(true); examPaperService.updateByIdFilter(examPaper); examPaperDepartmentService.removeByExamPaperId(id); examPaperSubjectService.removeByExamPaperId(id); return RestResponse.ok(); } @RequestMapping(value = "/exportTemplatesId/{id}", method = RequestMethod.GET) @SneakyThrows public void exportTemplatesId(@PathVariable("id") Integer id, HttpServletResponse response, HttpServletRequest request) { List list = examPaperService.getPaperExcelById(id); ExcelUtils.export(response,"个人练习",list,PaperExcelVO.class); } }