From 0c301aeabc900b20ac4e9baad58a7633c82f9144 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Tue, 06 Jul 2021 20:10:47 +0800
Subject: [PATCH] 新增招聘curd接口

---
 src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.java            |   33 ++++
 src/main/java/org/springblade/modules/recruitment/service/impl/RecruitmentServiceImpl.java |   32 ++++
 src/main/java/org/springblade/modules/recruitment/vo/RecruitmentVo.java                    |   15 +
 src/main/java/org/springblade/modules/recruitment/entity/Recruitment.java                  |  162 ++++++++++++++++++++
 src/main/java/org/springblade/modules/recruitment/service/RecruitmentService.java          |   28 +++
 src/main/resources/application-dev.yml                                                     |    2 
 src/main/java/org/springblade/modules/recruitment/controller/RecruitmentController.java    |   93 +++++++++++
 src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.xml             |   70 ++++++++
 src/main/resources/application.yml                                                         |    3 
 9 files changed, 436 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/springblade/modules/recruitment/controller/RecruitmentController.java b/src/main/java/org/springblade/modules/recruitment/controller/RecruitmentController.java
new file mode 100644
index 0000000..b0c4955
--- /dev/null
+++ b/src/main/java/org/springblade/modules/recruitment/controller/RecruitmentController.java
@@ -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);
+	}
+
+}
diff --git a/src/main/java/org/springblade/modules/recruitment/entity/Recruitment.java b/src/main/java/org/springblade/modules/recruitment/entity/Recruitment.java
new file mode 100644
index 0000000..b0b5139
--- /dev/null
+++ b/src/main/java/org/springblade/modules/recruitment/entity/Recruitment.java
@@ -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;
+
+
+
+}
diff --git a/src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.java b/src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.java
new file mode 100644
index 0000000..699d494
--- /dev/null
+++ b/src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.java
@@ -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);
+}
diff --git a/src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.xml b/src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.xml
new file mode 100644
index 0000000..45e5ef3
--- /dev/null
+++ b/src/main/java/org/springblade/modules/recruitment/mapper/RecruitmentMapper.xml
@@ -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>
diff --git a/src/main/java/org/springblade/modules/recruitment/service/RecruitmentService.java b/src/main/java/org/springblade/modules/recruitment/service/RecruitmentService.java
new file mode 100644
index 0000000..313d57b
--- /dev/null
+++ b/src/main/java/org/springblade/modules/recruitment/service/RecruitmentService.java
@@ -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);
+}
diff --git a/src/main/java/org/springblade/modules/recruitment/service/impl/RecruitmentServiceImpl.java b/src/main/java/org/springblade/modules/recruitment/service/impl/RecruitmentServiceImpl.java
new file mode 100644
index 0000000..551f06b
--- /dev/null
+++ b/src/main/java/org/springblade/modules/recruitment/service/impl/RecruitmentServiceImpl.java
@@ -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);
+	}
+}
diff --git a/src/main/java/org/springblade/modules/recruitment/vo/RecruitmentVo.java b/src/main/java/org/springblade/modules/recruitment/vo/RecruitmentVo.java
new file mode 100644
index 0000000..8c9841b
--- /dev/null
+++ b/src/main/java/org/springblade/modules/recruitment/vo/RecruitmentVo.java
@@ -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;
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 8890bb6..69fd133 100644
--- a/src/main/resources/application-dev.yml
+++ b/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
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index dbe474f..9b586ae 100644
--- a/src/main/resources/application.yml
+++ b/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

--
Gitblit v1.9.3