From 247cb86585a1d1894596ed18a6c93efecb992946 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 14 十一月 2024 10:34:27 +0800 Subject: [PATCH] 班级成绩图表分析 --- src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java | 134 ++++++++++++++++++++++++++++---------------- 1 files changed, 86 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java b/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java index 89d8875..947e312 100644 --- a/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java +++ b/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java @@ -1,75 +1,113 @@ package com.ycl.jxkg.controller.admin; -import com.ycl.jxkg.base.BaseApiController; -import com.ycl.jxkg.base.RestResponse; -import com.ycl.jxkg.domain.ExamPaper; -import com.ycl.jxkg.service.ExamPaperService; -import com.ycl.jxkg.utility.DateTimeUtil; -import com.ycl.jxkg.utility.PageInfoHelper; -import com.ycl.jxkg.viewmodel.admin.exam.ExamPaperPageRequestVM; -import com.ycl.jxkg.viewmodel.admin.exam.ExamPaperEditRequestVM; -import com.ycl.jxkg.viewmodel.admin.exam.ExamResponseVM; +import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; +import com.ycl.jxkg.base.BaseApiController; +import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.domain.entity.ExamPaper; +import com.ycl.jxkg.domain.entity.ExamPaperQuestion; +import com.ycl.jxkg.domain.form.ExamPaperForm; +import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO; +import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperPageRequestVO; +import com.ycl.jxkg.domain.vo.admin.exam.ExamResponseVO; +import com.ycl.jxkg.domain.vo.admin.exam.QuestionExportVO; +import com.ycl.jxkg.enums.VisibilityEnum; +import com.ycl.jxkg.group.Add; +import com.ycl.jxkg.group.Update; +import com.ycl.jxkg.mapper.ExamPaperMapper; +import com.ycl.jxkg.service.ExamPaperQuestionService; +import com.ycl.jxkg.service.ExamPaperService; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; -import javax.validation.Valid; +import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.List; +@Validated +@RequiredArgsConstructor @RestController("AdminExamPaperController") @RequestMapping(value = "/api/admin/exam/paper") public class ExamPaperController extends BaseApiController { - - private final ExamPaperService examPaperService; - @Autowired - public ExamPaperController(ExamPaperService examPaperService) { - this.examPaperService = examPaperService; - } + private ExamPaperService examPaperService; + @Autowired + private ExamPaperQuestionService examPaperQuestionService; + @Autowired + private ExamPaperMapper baseMapper; @RequestMapping(value = "/page", method = RequestMethod.POST) - public RestResponse<PageInfo<ExamResponseVM>> pageList(@RequestBody ExamPaperPageRequestVM model) { - PageInfo<ExamPaper> pageInfo = examPaperService.page(model); - PageInfo<ExamResponseVM> page = PageInfoHelper.copyMap(pageInfo, e -> { - ExamResponseVM vm = modelMapper.map(e, ExamResponseVM.class); - vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); - return vm; - }); - return RestResponse.ok(page); + public Result<PageInfo<ExamResponseVO>> pageList(@RequestBody ExamPaperPageRequestVO model) { + PageInfo<ExamResponseVO> page = examPaperService.page(model); + return Result.ok(page); } + @RequestMapping(value = "/addPaper", method = RequestMethod.POST) + public Result taskExamPageList(@RequestBody @Validated(Add.class) ExamPaperForm form) { + if (!StringUtils.isBlank(form.getVisibility())) { + form.setVisibility(VisibilityEnum.fromCode(form.getVisibility()).getName()); + } + form.setCreateUser(getCurrentUser().getId()); + form.setCreateTime(new Date()); - - @RequestMapping(value = "/taskExamPage", method = RequestMethod.POST) - public RestResponse<PageInfo<ExamResponseVM>> taskExamPageList(@RequestBody ExamPaperPageRequestVM model) { - PageInfo<ExamPaper> pageInfo = examPaperService.taskExamPage(model); - PageInfo<ExamResponseVM> page = PageInfoHelper.copyMap(pageInfo, e -> { - ExamResponseVM vm = modelMapper.map(e, ExamResponseVM.class); - vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); - return vm; - }); - return RestResponse.ok(page); + return examPaperService.addPaper(form); } - - @RequestMapping(value = "/edit", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> edit(@RequestBody @Valid ExamPaperEditRequestVM model) { - ExamPaper examPaper = examPaperService.savePaperFromVM(model, getCurrentUser()); - ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId()); - return RestResponse.ok(newVM); + public Result edit(@RequestBody @Validated(Update.class) ExamPaperForm form) { + if (!StringUtils.isBlank(form.getVisibility())) { + form.setVisibility(VisibilityEnum.fromCode(form.getVisibility()).getName()); + } + return examPaperService.updateExamPaper(form); + } + + @RequestMapping(value = "/editQuestion", method = RequestMethod.POST) + public Result editQuestion(@RequestBody ExamPaperForm form) { + + return Result.ok(); + } + + @RequestMapping(value = "/selectQuestion/{id}", method = RequestMethod.POST) + public Result<ExamPaperQuestion> selectQuestion(@PathVariable Integer id) { + ExamPaperQuestion vo = examPaperQuestionService.selectById(id); + return Result.ok(vo); } @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> select(@PathVariable Integer id) { - ExamPaperEditRequestVM vm = examPaperService.examPaperToVM(id); - return RestResponse.ok(vm); + public Result<ExamPaperEditRequestVO> select(@PathVariable Integer id) { + ExamPaperEditRequestVO vm = examPaperService.examPaperToVM(id); + return Result.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); - return RestResponse.ok(); + public Result delete(@PathVariable Integer id) { + baseMapper.deleteById(id); + return Result.ok(); } + + @GetMapping("/my") + public Result myExamPaper(Integer paperType) { + List<ExamPaper> list = examPaperService.myExamPaper(paperType); + return Result.ok(list); + } + + @GetMapping("/download/importTemplate") + public void importTemplate(HttpServletResponse response) { + examPaperService.importTemplate(response); + } + + @PostMapping("/export") + public void export(@RequestBody QuestionExportVO query, HttpServletResponse response) { + examPaperService.export(query, response); + } + + @PostMapping("/import") + public Result importPaper(@RequestParam("file") MultipartFile file, @RequestParam("examPaper") String form) { + return examPaperService.importPaper(file, JSON.parseObject(form, ExamPaperForm.class)); + } + } -- Gitblit v1.8.0