package com.ycl.jxkg.controller.admin; import com.ycl.jxkg.base.BaseApiController; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.entity.ExamPaper; import com.ycl.jxkg.domain.form.ExamPaperForm; 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.ExamPaperService; import com.ycl.jxkg.utils.DateTimeUtil; import com.ycl.jxkg.utils.PageInfoHelper; import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperPageRequestVO; import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO; import com.ycl.jxkg.domain.vo.admin.exam.ExamResponseVO; import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Date; @Validated @RequiredArgsConstructor @RestController("AdminExamPaperController") @RequestMapping(value = "/api/admin/exam/paper") public class ExamPaperController extends BaseApiController { private final ExamPaperService examPaperService; private final ExamPaperMapper baseMapper; @RequestMapping(value = "/page", method = RequestMethod.POST) public Result> pageList(@RequestBody ExamPaperPageRequestVO model) { PageInfo pageInfo = examPaperService.page(model); PageInfo page = PageInfoHelper.copyMap(pageInfo, e -> { ExamResponseVO vo = new ExamResponseVO(); BeanUtils.copyProperties(e, vo); vo.setVisibility(VisibilityEnum.valueOf(vo.getVisibility()).getCode()+""); vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); return vo; }); 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()); ExamPaper entity = ExamPaperForm.getEntityByForm(form,null); examPaperService.save(entity); return Result.ok(); } @RequestMapping(value = "/edit", method = RequestMethod.POST) public Result edit(@RequestBody @Validated(Update.class) ExamPaperForm form) { if (!StringUtils.isBlank(form.getVisibility())) { form.setVisibility(VisibilityEnum.fromCode(form.getVisibility()).getName()); } ExamPaper entity = ExamPaperForm.getEntityByForm(form,null); examPaperService.updateById(entity); return Result.ok(); } @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) public Result select(@PathVariable Integer id) { ExamPaperEditRequestVO vm = examPaperService.examPaperToVM(id); return Result.ok(vm); } @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST) public Result delete(@PathVariable Integer id) { baseMapper.deleteById(id); return Result.ok(); } }