package org.springblade.modules.apply.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.apply.entity.Apply; import org.springblade.modules.apply.service.ApplyService; import org.springblade.modules.apply.vo.ApplyVO; import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; /** * @author zhongrj * @time 2021-07-17 * @desc 考试报名管理控制层 */ @RestController @AllArgsConstructor @RequestMapping("/apply") public class ApplyController { private final ApplyService applyService; /** * 自定义分页 * @param query page,size * @param apply 考试报名信息对象 */ @GetMapping("/page") public R> page(ApplyVO apply, Query query) { IPage pages = applyService.selectApplyPage(Condition.getPage(query), apply); return R.data(pages); } /** * 分页 */ @GetMapping("/list") public R> list(Apply apply, Query query) { IPage pages = applyService.page(Condition.getPage(query), Condition.getQueryWrapper(apply)); return R.data(pages); } /** * 新增 * @param apply 考试报名信息对象 */ @PostMapping("/save") @ApiOperation(value = "新增", notes = "传入apply") public R save(@RequestBody Apply apply) { return R.status(applyService.save(apply)); } /** * 修改 * @param apply 考试报名信息对象 */ @PostMapping("/update") public R update(@RequestBody Apply apply) { return R.status(applyService.updateById(apply)); } /** * 新增或修改 * @param apply 考试报名信息对象 */ @PostMapping("/submit") public R submit(@RequestBody Apply apply) { if (null!=apply.getId()){ //去生成准考证 apply.setCandidateNo(getCandidateNo(apply)); } return R.status(applyService.saveOrUpdate(apply)); } /** * 生成准考证 * @param apply 报名对象信息 */ private String getCandidateNo(Apply apply) { String candidateNo = null; if (null!=apply.getExamTime()){ String year = ((Integer) apply.getExamTime().getYear()).toString().substring(2,3); String quarter = null; int month = apply.getExamTime().getMonth(); if (month>0 && month<=3){ quarter = "C"; } if (month>3 && month<=6){ quarter = "X"; } if (month>6 && month<=9){ quarter = "Q"; } if (month>9 && month<=12){ quarter = "D"; } } return "2107XN0001"; } /** * 删除 * @param ids 考试报名信息ids 数组 */ @PostMapping("/remove") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { return R.status(applyService.removeByIds(Func.toLongList(ids))); } /** * 详情 * @param apply 考试报名信息对象 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入apply") public R details(Apply apply) { //查询考试报名详情 ApplyVO detail = applyService.selectApplyInfo(apply); //返回 return R.data(detail); } }