package org.springblade.modules.training.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.exam.entity.ExamPaper; import org.springblade.modules.exam.service.ExamPaperService; import org.springblade.modules.training.entity.TrainExam; import org.springblade.modules.training.service.TrainExamService; import org.springblade.modules.training.vo.TrainExamVo; import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * @author zhongrj * @time 2021-07-23 * @desc 报名培训申请管理控制层 */ @RestController @AllArgsConstructor @RequestMapping("/trainExam") public class TrainExamController { private final TrainExamService trainExamService; private final ExamPaperService examPaperService; /** * 自定义分页 * @param query page,size * @param trainExam 报名培训申请信息对象 */ @GetMapping("/page") public R> page(TrainExamVo trainExam, Query query) { IPage pages = trainExamService.selectTrainExamPage(Condition.getPage(query), trainExam); return R.data(pages); } /** * 新增 * @param trainExam 报名培训申请信息对象 */ @PostMapping("/save") @ApiOperation(value = "新增", notes = "传入trainExam") public R save(@RequestBody TrainExam trainExam) { return R.status(trainExamService.save(trainExam)); } /** * 修改 * @param trainExam 报名培训申请信息对象 */ @PostMapping("/update") public R update(@RequestBody TrainExam trainExam) { return R.status(trainExamService.updateById(trainExam)); } /** * 审核修改 * @param trainExam 报名培训申请信息对象 */ @PostMapping("/update-audit") public R updateAudit(@RequestBody TrainExam trainExam) throws Exception { //审核通过,插入一条考试信息 if (trainExam.getAuditStatus()==1){ //查询考试申请 TrainExam exam = trainExamService.getById(trainExam.getId()); //如果已通过申请,则修改后返回 if (exam.getAuditStatus()==1){ return R.status(trainExamService.updateById(trainExam)); } ExamPaper examPaper = new ExamPaper(); examPaper.setTrainExamId(trainExam.getId()); examPaper.setExamName(trainExam.getTrainExamName()); examPaper.setStartTime(trainExam.getStartTime()); examPaper.setEndTime(trainExam.getEndTime()); examPaper.setCreatorDate(new Date()); //区间时间 String start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(trainExam.getStartTime()); String end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(trainExam.getEndTime()); String examTime = "[\"" +start+ "\""+","+"\"" +end+ "\"]"; examPaper.setExamTime(examTime); //1:正式考试 2:模拟考试 examPaper.setExamType(2); examPaperService.save(examPaper); } return R.status(trainExamService.updateById(trainExam)); } /** * 新增或修改 * @param trainExam 报名培训申请信息对象 */ @PostMapping("/submit") public R submit(@RequestBody TrainExam trainExam) { if (null==trainExam.getId()){ trainExam.setCreateTime(new Date()); trainExam.setAuditStatus(3); } return R.status(trainExamService.saveOrUpdate(trainExam)); } /** * 删除 * @param ids 报名培训申请信息ids 数组 */ @PostMapping("/remove") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { return R.status(trainExamService.removeByIds(Func.toLongList(ids))); } /** * 详情 * @param trainExam 报名培训申请信息对象 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入trainExam") public R detail(TrainExam trainExam) { TrainExamVo detail = trainExamService.selectTrainExamInfo(trainExam); return R.data(detail); } /** * 自定义树 * @param trainExam 报名培训申请信息对象 * @return */ @GetMapping("/page-tree") public R pageTree(TrainExam trainExam) { List pages = trainExamService.selectTrainExamPageTree(trainExam); return R.data(pages); } }