package com.mindskip.xzs.controller.teacher; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.service.ExamPaperService; import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM; import com.mindskip.xzs.viewmodel.admin.exam.ExamResponseVM; import com.github.pagehelper.PageInfo; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.stream.Collectors; /** * @version 2.2.0 * @description: 班级试卷 * Copyright (C), 2020-2021, 武汉思维跳跃科技有限公司 * @date 2021 /9/7 9:45 */ @RestController("TeacherExamPaperController") @RequestMapping(value = "/api/teacher/exam/paper") @AllArgsConstructor public class ExamPaperController extends BaseApiController { private final ExamPaperService examPaperService; /** * 班级试卷分页 * * @param model the model * @return the rest response */ @RequestMapping(value = "/page", method = RequestMethod.POST) public RestResponse> pageList(@RequestBody ExamPaperPageRequestVM model) { model.setLevel(getCurrentUser().getUserLevel()); model.setCreateUser(getCurrentUser().getId()); PageInfo pageInfo = examPaperService.page(model); PageInfo page = PageInfoHelper.copyMap(pageInfo, e -> { ExamResponseVM vm = modelMapper.map(e, ExamResponseVM.class); String allClasses = examPaperService.getExamPaperClassesByPaperId(e.getId()).stream() .map(d -> d.getClassesName()) .collect(Collectors.joining(",")); vm.setAllClasses(allClasses); vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); return vm; }); return RestResponse.ok(page); } /** * 试卷编辑 * * @param model the model * @return the rest response */ @RequestMapping(value = "/edit", method = RequestMethod.POST) public RestResponse edit(@RequestBody @Valid ExamPaperEditRequestVM model) { model.setLevel(getCurrentUser().getUserLevel()); examPaperService.savePaperFromVM(model, getCurrentUser()); return RestResponse.ok(); } /** * 试卷查看 * * @param id the id * @return the rest response */ @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) public RestResponse select(@PathVariable Integer id) { ExamPaperEditRequestVM vm = examPaperService.examPaperToVM(id); return RestResponse.ok(vm); } /** * 试卷删除 * * @param id the id * @return the rest response */ @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST) public RestResponse delete(@PathVariable Integer id) { ExamPaper examPaper = examPaperService.selectById(id); examPaper.setDeleted(true); examPaperService.updateByIdFilter(examPaper); return RestResponse.ok(); } }