package com.mindskip.xzs.controller.wx.student; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.controller.wx.BaseWXApiController; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.Subject; import com.mindskip.xzs.service.ExamPaperService; import com.mindskip.xzs.service.SubjectService; 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.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageResponseVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @Controller("WXStudentExamController") @RequestMapping(value = "/api/wx/student/exampaper") @ResponseBody public class ExamPaperController extends BaseWXApiController { private final ExamPaperService examPaperService; private final SubjectService subjectService; @Autowired public ExamPaperController(ExamPaperService examPaperService, SubjectService subjectService) { this.examPaperService = examPaperService; this.subjectService = subjectService; } @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) public RestResponse select(@PathVariable Integer id) { return RestResponse.ok(examPaperService.examPaperToVM(id)); } @RequestMapping(value = "/pageList", method = RequestMethod.POST) public RestResponse> pageList(@Valid ExamPaperPageVM model) { model.setLevelId(getCurrentUser().getUserLevel()); PageInfo pageInfo = examPaperService.studentPage(model); PageInfo page = PageInfoHelper.copyMap(pageInfo, e -> { ExamPaperPageResponseVM vm = modelMapper.map(e, ExamPaperPageResponseVM.class); Subject subject = subjectService.selectById(vm.getSubjectId()); vm.setSubjectName(subject.getName()); vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); return vm; }); return RestResponse.ok(page); } }