Administrator
2021-07-06 0c301aeabc900b20ac4e9baad58a7633c82f9144
新增招聘curd接口
2 files modified
7 files added
438 ■■■■■ changed files
src/main/java/org/springblade/modules/recruitment/controller/RecruitmentController.java 93 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recruitment/entity/Recruitment.java 162 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.xml 70 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recruitment/service/RecruitmentService.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recruitment/service/impl/RecruitmentServiceImpl.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recruitment/vo/RecruitmentVo.java 15 ●●●●● patch | view | raw | blame | history
src/main/resources/application-dev.yml 2 ●●● patch | view | raw | blame | history
src/main/resources/application.yml 3 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recruitment/controller/RecruitmentController.java
New file
@@ -0,0 +1,93 @@
package org.springblade.modules.recruitment.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.recruitment.entity.Recruitment;
import org.springblade.modules.recruitment.service.RecruitmentService;
import org.springblade.modules.recruitment.vo.RecruitmentVo;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
 * @author zhongrj
 * @time 2021-07-06
 * @desc 招聘管理控制层
 */
@RestController
@AllArgsConstructor
@RequestMapping("/recruitment")
public class RecruitmentController {
    private final RecruitmentService recruitmentService;
    /**
     * 自定义分页
     * @param query page,size
     * @param recruitment 招聘信息对象
     */
    @GetMapping("/page")
    public R<IPage<RecruitmentVo>> page(RecruitmentVo recruitment, Query query) {
        IPage<RecruitmentVo> pages = recruitmentService.selectRecruitmentPage(Condition.getPage(query), recruitment);
        return R.data(pages);
    }
    /**
     * 新增
     * @param recruitment 招聘信息对象
     */
    @PostMapping("/save")
    @ApiOperation(value = "新增", notes = "传入recruitment")
    public R save(@RequestBody Recruitment recruitment) {
        recruitment.setCreateTime(new Date());
        return R.status(recruitmentService.save(recruitment));
    }
    /**
     * 修改
     * @param recruitment 招聘信息对象
     */
    @PostMapping("/update")
    public R update(@RequestBody Recruitment recruitment) {
        return R.status(recruitmentService.updateById(recruitment));
    }
    /**
     * 新增或修改
     * @param recruitment 招聘信息对象
     */
    @PostMapping("/submit")
    public R submit(@RequestBody Recruitment recruitment) {
        if (null==recruitment.getId()){
            recruitment.setCreateTime(new Date());
        }
        return R.status(recruitmentService.saveOrUpdate(recruitment));
    }
    /**
     * 删除
     * @param ids 招聘信息ids 数组
     */
    @PostMapping("/remove")
    public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
        return R.status(recruitmentService.removeByIds(Func.toLongList(ids)));
    }
    /**
     * 详情
     * @param recruitment 招聘信息对象
     */
    @GetMapping("/detail")
    @ApiOperation(value = "详情", notes = "传入recruitment")
    public R<RecruitmentVo> detail(Recruitment recruitment) {
        RecruitmentVo detail = recruitmentService.selectRecruitmentInfo(recruitment);
        return R.data(detail);
    }
}
src/main/java/org/springblade/modules/recruitment/entity/Recruitment.java
New file
@@ -0,0 +1,162 @@
package org.springblade.modules.recruitment.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-06
 */
@Data
@TableName("sys_recruitment")
public class Recruitment implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 招聘主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;
    /**
     * 保安单位id
     */
    @TableField("tenant_id")
    private String tenantId;
    /**
     * 招聘岗位名称
     */
    private String name;
    /**
     * 招聘人数
     */
    private Integer number;
    /**
     * 学历要求
     */
    private String education;
    /**
     * 工作经验
     */
    private String experience;
    /**
     * 工作岗位描述
     */
    @TableField("work_desc")
    private String workDesc;
    /**
     * 福利待遇 社保,五险...
     */
    private String welfare;
    /**
     * 最小薪资
     */
    @TableField("min_salary")
    private Integer minSalary;
    /**
     * 最高薪资
     */
    @TableField("max_salary")
    private Integer maxSalary;
    /**
     * 单位介绍
     */
    @TableField("units_desc")
    private String unitsDesc;
    /**
     * 单位规模 100-500人 ....
     */
    @TableField("units_scale")
    private String unitsScale;
    /**
     * 单位性质 民营。。。
     */
    @TableField("units_nature")
    private String unitsNature;
    /**
     * 行业 安保...
     */
    private String industry;
    /**
     * 联系人
     */
    private String linkman;
    /**
     * 联系电话
     */
    private String phone;
    /**
     * 省
     */
    private Integer province;
    /**
     * 市
     */
    private Integer city;
    /**
     * 区
     */
    private Integer district;
    /**
     * 详细地址
     */
    private String address;
    /**
     * 招聘开始时间
     */
    @TableField("start_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startTime;
    /**
     * 招聘结束时间
     */
    @TableField("end_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endTime;
    /**
     * 招聘发布时间
     */
    @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;
    /**
     * 招聘状态  1:招聘中   2:停止招聘
     */
    private Integer status;
}
src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.java
New file
@@ -0,0 +1,33 @@
package org.springblade.modules.recruitment.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.recruitment.entity.Recruitment;
import org.springblade.modules.recruitment.vo.RecruitmentVo;
import java.util.List;
/**
 * 招聘Mapper 接口
 * @author zhongrj
 */
public interface RecruitmentMapper extends BaseMapper<Recruitment> {
    /**
     * 自定义分页z
     *
     * @param page   分页
     * @param recruitment 实体
     * @return
     */
    List<RecruitmentVo> selectRecruitmentPage(IPage page, @Param("recruitment") RecruitmentVo recruitment);
    /**
     * 详情
     * @param recruitment 招聘信息对象
     */
    RecruitmentVo selectRecruitmentInfo(@Param("recruitment") Recruitment recruitment);
}
src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.xml
New file
@@ -0,0 +1,70 @@
<?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.recruitment.mapper.RecruitmentMapper">
    <!--招聘分页信息-->
    <select id="selectRecruitmentPage" resultType="org.springblade.modules.recruitment.vo.RecruitmentVo">
        SELECT
            sr.*,bt.tenant_name AS tenantName
        FROM
            sys_recruitment sr
        LEFT JOIN
            blade_tenant bt
        ON
            sr.tenant_id = bt.tenant_id
        WHERE
            1=1
        <if test="recruitment.tenantName!=null and  recruitment.tenantName!=''">
            and bt.tenant_name like concat('%', #{recruitment.tenantName},'%')
        </if>
        <if test="recruitment.province!=null">
            and sr.province = #{recruitment.province}
        </if>
        <if test="recruitment.city!=null">
            and sr.city = #{recruitment.city}
        </if>
        <if test="recruitment.district!=null">
            and sr.district = #{recruitment.district}
        </if>
        <if test="recruitment.education!=null and recruitment.education!=''">
            and sr.education = #{recruitment.education}
        </if>
        <if test="recruitment.startTime!=null and recruitment.startTime!=''">
            and sr.start_time &gt;= #{recruitment.startTime}
        </if>
        <if test="recruitment.endTime!=null and recruitment.endTime!=''">
            and sr.end_time &lt;= #{recruitment.endTime}
        </if>
        <if test="recruitment.minSalary!=null or recruitment.maxSalary!=null">
            <if test="recruitment.minSalary==null and recruitment.maxSalary!=null">
                and sr.min_salary &lt;= #{recruitment.maxSalary} and sr.max_salary &gt;= #{recruitment.maxSalary}
            </if>
            <if test="recruitment.maxSalary==null and recruitment.minSalary!=null">
                and sr.min_salary &lt;= #{recruitment.minSalary} and sr.max_salary &gt;= #{recruitment.minSalary}
            </if>
            <if test="recruitment.maxSalary!=null and recruitment.minSalary!=null">
                and sr.max_salary &lt;= #{recruitment.maxSalary} and sr.max_salary &gt;= #{recruitment.minSalary}
                or ( sr.min_salary &lt;= #{recruitment.maxSalary} and sr.min_salary &gt;= #{recruitment.minSalary})
            </if>
        </if>
        order by sr.create_time desc
    </select>
    <!--招聘详情信息-->
    <select id="selectRecruitmentInfo" resultType="org.springblade.modules.recruitment.vo.RecruitmentVo">
        SELECT
            sr.*,bt.tenant_name AS tenantName
        FROM
            sys_recruitment sr
        LEFT JOIN
            blade_tenant bt
        ON
            sr.tenant_id = bt.tenant_id
        WHERE
            1=1
        <if test="recruitment.id!=null">
            and sr.id &lt;= #{recruitment.id}
        </if>
    </select>
</mapper>
src/main/java/org/springblade/modules/recruitment/service/RecruitmentService.java
New file
@@ -0,0 +1,28 @@
package org.springblade.modules.recruitment.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.recruitment.entity.Recruitment;
import org.springblade.modules.recruitment.vo.RecruitmentVo;
/**
 * 招聘服务类
 * @author zhongrj
 */
public interface RecruitmentService extends IService<Recruitment> {
    /**
     * 自定义分页
     * @param page
     * @param recruitment
     * @return
     */
    IPage<RecruitmentVo> selectRecruitmentPage(IPage<RecruitmentVo> page, RecruitmentVo recruitment);
    /**
     * 详情
     * @param recruitment 招聘信息对象
     */
    RecruitmentVo selectRecruitmentInfo(Recruitment recruitment);
}
src/main/java/org/springblade/modules/recruitment/service/impl/RecruitmentServiceImpl.java
New file
@@ -0,0 +1,32 @@
package org.springblade.modules.recruitment.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.recruitment.entity.Recruitment;
import org.springblade.modules.recruitment.mapper.RecruitmentMapper;
import org.springblade.modules.recruitment.service.RecruitmentService;
import org.springblade.modules.recruitment.vo.RecruitmentVo;
import org.springframework.stereotype.Service;
/**
 * 招聘服务实现类
 * @author zhongrj
 */
@Service
public class RecruitmentServiceImpl extends ServiceImpl<RecruitmentMapper,Recruitment> implements RecruitmentService {
    @Override
    public IPage<RecruitmentVo> selectRecruitmentPage(IPage<RecruitmentVo> page, RecruitmentVo recruitment) {
        return page.setRecords(baseMapper.selectRecruitmentPage(page, recruitment));
    }
    /**
     * 详情
     * @param recruitment 招聘信息对象
     */
    @Override
    public RecruitmentVo selectRecruitmentInfo(Recruitment recruitment) {
        return baseMapper.selectRecruitmentInfo(recruitment);
    }
}
src/main/java/org/springblade/modules/recruitment/vo/RecruitmentVo.java
New file
@@ -0,0 +1,15 @@
package org.springblade.modules.recruitment.vo;
import lombok.Data;
import org.springblade.modules.recruitment.entity.Recruitment;
import java.io.Serializable;
/**
 * @author zhongrj
 */
@Data
public class RecruitmentVo extends Recruitment implements Serializable {
    private String tenantName;
}
src/main/resources/application-dev.yml
@@ -25,7 +25,7 @@
    #username: BLADEX_BOOT
    #password: BLADEX_BOOT
    # SqlServer
    url: jdbc:sqlserver://47.110.245.84:1433;DatabaseName=zhba
    url: jdbc:sqlserver://47.110.245.84:1433;DatabaseName=zhbaw
    username: sa
    password: jxpskj2018
src/main/resources/application.yml
@@ -1,6 +1,6 @@
#服务器配置
server:
  port: 80
  port: 81
  undertow:
    # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
    io-threads: 16
@@ -193,6 +193,7 @@
    #接口放行
    skip-url:
      - /blade-test/**
      - /recruitment/**
    #授权认证配置
    auth:
      - method: ALL