Administrator
2021-07-23 8bb82c8ace9b0accda62a120253cb7a8eaacce8a
培训报名申请接口新增
1 files modified
7 files added
408 ■■■■■ changed files
src/main/java/org/springblade/modules/training/controller/TrainExamController.java 106 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/entity/TrainExam.java 101 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/mapper/TrainExamMapper.java 40 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/mapper/TrainExamMapper.xml 61 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/service/TrainExamService.java 36 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/service/impl/TrainExamServiceImpl.java 44 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/vo/TrainExamVo.java 19 ●●●●● patch | view | raw | blame | history
src/main/resources/application.yml 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/controller/TrainExamController.java
New file
@@ -0,0 +1,106 @@
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.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.util.Date;
import java.util.List;
/**
 * @author zhongrj
 * @time 2021-07-23
 * @desc 报名培训申请管理控制层
 */
@RestController
@AllArgsConstructor
@RequestMapping("/trainExam")
public class TrainExamController {
    private final TrainExamService trainExamService;
    /**
     * 自定义分页
     * @param query page,size
     * @param trainExam 报名培训申请信息对象
     */
    @GetMapping("/page")
    public R<IPage<TrainExamVo>> page(TrainExamVo trainExam, Query query) {
        IPage<TrainExamVo> 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("/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<TrainExamVo> detail(TrainExam trainExam) {
        TrainExamVo detail = trainExamService.selectTrainExamInfo(trainExam);
        return R.data(detail);
    }
    /**
     * 自定义树
     * @param trainExam 报名培训申请信息对象
     * @return
     */
    @GetMapping("/page-tree")
    public R pageTree(TrainExam trainExam) {
        List<TrainExam> pages = trainExamService.selectTrainExamPageTree(trainExam);
        return R.data(pages);
    }
}
src/main/java/org/springblade/modules/training/entity/TrainExam.java
New file
@@ -0,0 +1,101 @@
package org.springblade.modules.training.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 报名培训申请实体类
 * @author zhongrj
 * @time 2021-07-23
 */
@Data
@TableName("sys_train_exam")
public class TrainExam implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 报名培训申请主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;
    /**
     * 培训考试名称
     */
    @TableField("train_exam_name")
    private String trainExamName;
    /**
     * 开始时间
     */
    @TableField("start_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 结束时间
     */
    @TableField("end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
     * 总分
     */
    @TableField("total_score")
    private Integer totalScore;
    /**
     * 组织机构id
     */
    @TableField("dept_id")
    private Long deptId;
    /**
     * 审核状态   1:通过   2:不通过  3:待审核
     */
    @TableField("audit_status")
    private Integer auditStatus;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 审核明细
     */
    @TableField("audit_detail")
    private String auditDetail;
}
src/main/java/org/springblade/modules/training/mapper/TrainExamMapper.java
New file
@@ -0,0 +1,40 @@
package org.springblade.modules.training.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.training.entity.TrainExam;
import org.springblade.modules.training.vo.TrainExamVo;
import java.util.List;
/**
 * 报名培训申请Mapper 接口
 * @author zhongrj
 */
public interface TrainExamMapper extends BaseMapper<TrainExam> {
    /**
     * 自定义分页
     *
     * @param page   分页
     * @param trainExam 实体
     * @return
     */
    List<TrainExamVo> selectTrainExamPage(IPage page, @Param("trainExam") TrainExamVo trainExam);
    /**
     * 详情
     * @param trainExam 报名培训申请信息对象
     */
    TrainExamVo selectTrainExamInfo(@Param("trainExam") TrainExam trainExam);
    /**
     * 自定义树
     * @param trainExam 报名培训申请信息对象
     * @return
     */
    List<TrainExam> selectTrainExamPageTree(@Param("trainExam") TrainExam trainExam);
}
src/main/java/org/springblade/modules/training/mapper/TrainExamMapper.xml
New file
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.training.mapper.TrainExamMapper">
    <!--报名培训分页信息-->
    <select id="selectTrainExamPage" resultType="org.springblade.modules.training.vo.TrainExamVo">
        SELECT
            sr.*,bt.dept_name AS deptName
        FROM
            sys_train_exam sr
        LEFT JOIN
            blade_dept bt
        ON
            sr.dept_id = bt.id
        WHERE
            1=1
        <if test="trainExam.deptName!=null and  trainExam.deptName!=''">
            and bt.dept_name like concat('%', #{trainExam.deptName},'%')
        </if>
        <if test="trainExam.trainExamName!=null and  trainExam.trainExamName!=''">
            and sr.train_exam_name like concat('%', #{trainExam.trainExamName},'%')
        </if>
        <if test="trainExam.auditStatus!=null">
            and sr.audit_status = #{trainExam.auditStatus}
        </if>
        <if test="trainExam.deptId!=null and trainExam.deptId!=''">
            and sr.dept_id = #{trainExam.deptId}
        </if>
    </select>
    <!--报名培训详情信息-->
    <select id="selectTrainExamInfo" resultType="org.springblade.modules.training.vo.TrainExamVo">
        SELECT
            sr.*,bt.dept_name AS deptName
        FROM
            sys_train_exam sr
        LEFT JOIN
            blade_dept bt
        ON
            sr.dept_id = bt.id
        WHERE
            1=1
        <if test="trainExam.id!=null">
            and sr.id = #{trainExam.id}
        </if>
    </select>
    <!--自定义树-->
    <select id="selectTrainExamPageTree" resultType="org.springblade.modules.training.entity.TrainExam">
        select
            id,train_exam_name trainExamName
        from
            sys_train_exam
        where
            1=1
        <if test="trainExam.trainExamName!=null and  trainExam.trainExamName!=''">
            and sr.train_exam_name like concat('%', #{trainExam.trainExamName},'%')
        </if>
    </select>
</mapper>
src/main/java/org/springblade/modules/training/service/TrainExamService.java
New file
@@ -0,0 +1,36 @@
package org.springblade.modules.training.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.training.entity.TrainExam;
import org.springblade.modules.training.vo.TrainExamVo;
import java.util.List;
/**
 * 报名培训申请服务类
 * @author zhongrj
 */
public interface TrainExamService extends IService<TrainExam> {
    /**
     * 自定义分页
     * @param page
     * @param trainExam
     * @return
     */
    IPage<TrainExamVo> selectTrainExamPage(IPage<TrainExamVo> page, TrainExamVo recruitment);
    /**
     * 详情
     * @param trainExam 报名培训申请信息对象
     */
    TrainExamVo selectTrainExamInfo(TrainExam trainExam);
    /**
     * 自定义树
     * @param trainExam 报名培训申请信息对象
     * @return
     */
    List<TrainExam> selectTrainExamPageTree(TrainExam trainExam);
}
src/main/java/org/springblade/modules/training/service/impl/TrainExamServiceImpl.java
New file
@@ -0,0 +1,44 @@
package org.springblade.modules.training.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.training.entity.TrainExam;
import org.springblade.modules.training.mapper.TrainExamMapper;
import org.springblade.modules.training.service.TrainExamService;
import org.springblade.modules.training.vo.TrainExamVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * 报名培训申请服务实现类
 * @author zhongrj
 */
@Service
public class TrainExamServiceImpl extends ServiceImpl<TrainExamMapper, TrainExam> implements TrainExamService {
    @Override
    public IPage<TrainExamVo> selectTrainExamPage(IPage<TrainExamVo> page, TrainExamVo trainExam) {
        return page.setRecords(baseMapper.selectTrainExamPage(page, trainExam));
    }
    /**
     * 详情
     * @param trainExam 报名培训申请信息对象
     */
    @Override
    public TrainExamVo selectTrainExamInfo(TrainExam trainExam) {
        return baseMapper.selectTrainExamInfo(trainExam);
    }
    /**
     * 自定义树
     * @param trainExam 报名培训申请信息对象
     * @return
     */
    @Override
    public List<TrainExam> selectTrainExamPageTree(TrainExam trainExam) {
        return baseMapper.selectTrainExamPageTree(trainExam);
    }
}
src/main/java/org/springblade/modules/training/vo/TrainExamVo.java
New file
@@ -0,0 +1,19 @@
package org.springblade.modules.training.vo;
import lombok.Data;
import org.springblade.modules.training.entity.TrainExam;
import org.springblade.modules.training.entity.TrainingRegistration;
import java.io.Serializable;
/**
 * @author zhongrj
 */
@Data
public class TrainExamVo extends TrainExam implements Serializable {
    /**
     * 组织机构名称
     */
    private String deptName;
}
src/main/resources/application.yml
@@ -206,6 +206,7 @@
      - /examScore/**
      - /exampaper/**
      - /apply/**
      - /trainExam/**
    #授权认证配置
    auth:
      - method: ALL