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 >= #{recruitment.startTime} </if> <if test="recruitment.endTime!=null and recruitment.endTime!=''"> and sr.end_time <= #{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 <= #{recruitment.maxSalary} and sr.max_salary >= #{recruitment.maxSalary} </if> <if test="recruitment.maxSalary==null and recruitment.minSalary!=null"> and sr.min_salary <= #{recruitment.minSalary} and sr.max_salary >= #{recruitment.minSalary} </if> <if test="recruitment.maxSalary!=null and recruitment.minSalary!=null"> and sr.max_salary <= #{recruitment.maxSalary} and sr.max_salary >= #{recruitment.minSalary} or ( sr.min_salary <= #{recruitment.maxSalary} and sr.min_salary >= #{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 <= #{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