招聘会
This commit is contained in:
411
docs/cms-public-job-fair-api.md
Normal file
411
docs/cms-public-job-fair-api.md
Normal file
@@ -0,0 +1,411 @@
|
||||
# CMS 公共招聘会管理接口文档
|
||||
|
||||
## 基础路径
|
||||
`/cms/publicJobFair`
|
||||
|
||||
---
|
||||
|
||||
## 界面功能操作指南
|
||||
|
||||
### 页面一:招聘会列表页
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 公共招聘会管理 │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 招聘会标题: [________] 类型: [全部▼] [搜索] [重置] [+新增] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ □ | 标题 | 地址 | 类型 | 开始时间 | 操作 │
|
||||
│ ───────────────────────────────────────────────────────────── │
|
||||
│ □ | 春风行动招聘会 | 人力市场 | 线下 | 2026-01-20 | 编辑 删除 │
|
||||
│ □ | 高校毕业生专场 | 线上 | 线上 | 2026-02-15 | 编辑 删除 │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 共 2 条 < 1 > │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 操作 | 触发方式 | 调用接口 |
|
||||
|------|---------|---------|
|
||||
| 搜索 | 点击【搜索】按钮 | `GET /list` |
|
||||
| 重置 | 点击【重置】按钮 | 清空条件后调用 `GET /list` |
|
||||
| 新增 | 点击【+新增】按钮 | 打开新增弹窗 |
|
||||
| 编辑 | 点击行内【编辑】 | `GET /{id}` 获取详情后打开编辑弹窗 |
|
||||
| 删除 | 点击行内【删除】 | 确认后调用 `DELETE /{ids}` |
|
||||
| 批量删除 | 勾选多行后点击【删除】 | `DELETE /{ids}` (逗号分隔) |
|
||||
|
||||
---
|
||||
|
||||
### 页面二:新增/编辑招聘会弹窗
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 新增招聘会 [×] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 招聘会标题*: [________________________________] │
|
||||
│ 招聘会地址*: [________________________________] │
|
||||
│ 招聘会类型*: ○线上 ●线下 │
|
||||
│ 开始时间*: [2026-01-20 09:00:00 📅] │
|
||||
│ 结束时间*: [2026-01-20 17:00:00 📅] │
|
||||
│ 报名开始时间: [2026-01-10 00:00:00 📅] │
|
||||
│ 报名结束时间: [2026-01-19 23:59:59 📅] │
|
||||
│ 主办单位: [________________________________] │
|
||||
│ 协办单位: [________________________________] │
|
||||
│ 承办单位: [________________________________] │
|
||||
│ 联系电话: [________________] │
|
||||
│ 招聘会简介: [________________________________] │
|
||||
│ [________________________________] │
|
||||
│ │
|
||||
│ 地图选点: [点击选择位置 🗺️] │
|
||||
│ ┌─────────────────────────────────────────┐ │
|
||||
│ │ │ │
|
||||
│ │ 高德地图选点组件 │ │
|
||||
│ │ 📍 │ │
|
||||
│ │ │ │
|
||||
│ └─────────────────────────────────────────┘ │
|
||||
│ 经度: [86.0419 ] 纬度: [44.3066 ] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ [取消] [确定] │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 操作 | 触发方式 | 调用接口 |
|
||||
|------|---------|---------|
|
||||
| 地图选点 | 点击地图或搜索地址 | 高德地图API,自动填充经纬度 |
|
||||
| 确定(新增) | 填写表单后点击【确定】 | `POST /` |
|
||||
| 确定(编辑) | 修改表单后点击【确定】 | `PUT /` |
|
||||
| 取消 | 点击【取消】或【×】 | 关闭弹窗 |
|
||||
|
||||
---
|
||||
|
||||
### 页面三:招聘会详情页(含企业岗位管理)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 招聘会详情: 春风行动专场招聘会 [返回列表] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 基本信息 │
|
||||
│ ───────────────────────────────────────────────────────────── │
|
||||
│ 标题: 春风行动专场招聘会 类型: 线下 │
|
||||
│ 地址: 石河子市人力资源市场 电话: 0993-2012345 │
|
||||
│ 时间: 2026-01-20 09:00 ~ 17:00 │
|
||||
│ 报名时间: 2026-01-10 ~ 2026-01-19 │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 参会企业及岗位 [+添加企业] │
|
||||
│ ───────────────────────────────────────────────────────────── │
|
||||
│ ▼ 新疆某某科技有限公司 (互联网/100-499人) [移除企业] │
|
||||
│ ├─ Java开发工程师 | 8K-15K | 本科 | 招2人 [+添加岗位] [移除]│
|
||||
│ └─ 前端开发工程师 | 7K-12K | 大专 | 招3人 [移除]│
|
||||
│ ▼ 石河子农业发展有限公司 (农业/50-99人) [移除企业] │
|
||||
│ └─ 农业技术员 | 5K-8K | 大专 | 招5人 [移除]│
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 报名人员 [查看全部报名] │
|
||||
│ ───────────────────────────────────────────────────────────── │
|
||||
│ 张三 | 13800138000 | 2026-01-15 10:30 | 已报名 │
|
||||
│ 李四 | 13900139000 | 2026-01-16 14:20 | 已报名 │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 操作 | 触发方式 | 调用接口 |
|
||||
|------|---------|---------|
|
||||
| 进入详情 | 列表页点击【编辑】或行 | `GET /{jobFairId}` |
|
||||
| 添加企业 | 点击【+添加企业】 | 打开企业选择弹窗 |
|
||||
| 移除企业 | 点击企业行【移除企业】 | `DELETE /company/{id}` |
|
||||
| 添加岗位 | 点击企业下【+添加岗位】 | 打开岗位选择弹窗 |
|
||||
| 移除岗位 | 点击岗位行【移除】 | `DELETE /job/{id}` |
|
||||
| 查看全部报名 | 点击【查看全部报名】 | 跳转报名列表页 |
|
||||
|
||||
---
|
||||
|
||||
### 页面四:添加企业弹窗
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 选择企业 [×] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 企业名称: [________] [搜索] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ □ | 企业名称 | 行业 | 规模 | 类型 │
|
||||
│ ───────────────────────────────────────────────────────────── │
|
||||
│ ☑ | 新疆某某科技有限公司 | 互联网 | 100-499人 | 民营 │
|
||||
│ ☑ | 石河子农业发展有限公司 | 农业 | 50-99人 | 国企 │
|
||||
│ □ | 某某建筑工程公司 | 建筑 | 500-999人 | 民营 │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ [取消] [确定添加] │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 操作 | 触发方式 | 调用接口 |
|
||||
|------|---------|---------|
|
||||
| 搜索企业 | 输入名称点击【搜索】 | 调用企业列表接口 |
|
||||
| 确定添加(单个) | 勾选1个企业点击【确定添加】 | `POST /company` |
|
||||
| 确定添加(多个) | 勾选多个企业点击【确定添加】 | `POST /company/batch` |
|
||||
|
||||
---
|
||||
|
||||
### 页面五:添加岗位弹窗
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 选择岗位 - 新疆某某科技有限公司 [×] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 岗位名称: [________] [搜索] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ □ | 岗位名称 | 薪资 | 学历 | 经验 | 招聘人数 │
|
||||
│ ───────────────────────────────────────────────────────────── │
|
||||
│ ☑ | Java开发工程师 | 8K-15K | 本科 | 3-5年 | 2人 │
|
||||
│ ☑ | 前端开发工程师 | 7K-12K | 大专 | 1-3年 | 3人 │
|
||||
│ □ | 产品经理 | 10K-20K | 本科 | 5年以上| 1人 │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ [取消] [确定添加] │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 操作 | 触发方式 | 调用接口 |
|
||||
|------|---------|---------|
|
||||
| 搜索岗位 | 输入名称点击【搜索】 | 调用该企业岗位列表接口 |
|
||||
| 确定添加(单个) | 勾选1个岗位点击【确定添加】 | `POST /job` |
|
||||
| 确定添加(多个) | 勾选多个岗位点击【确定添加】 | `POST /job/batch` |
|
||||
|
||||
---
|
||||
|
||||
### 页面六:报名人员列表页
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 报名人员 - 春风行动专场招聘会 [返回详情] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 用户名: [________] 状态: [全部▼] [搜索] [重置] [导出] │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 用户名 | 姓名 | 手机号 | 报名时间 | 状态 │
|
||||
│ ───────────────────────────────────────────────────────────── │
|
||||
│ zhangsan | 张三 | 13800138000 | 2026-01-15 10:30:00 | 已报名 │
|
||||
│ lisi | 李四 | 13900139000 | 2026-01-16 14:20:00 | 已报名 │
|
||||
│ wangwu | 王五 | 13700137000 | 2026-01-17 09:15:00 | 已取消 │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ 共 3 条 < 1 > │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 操作 | 触发方式 | 调用接口 |
|
||||
|------|---------|---------|
|
||||
| 搜索 | 点击【搜索】按钮 | `GET /signups/{jobFairId}` |
|
||||
| 重置 | 点击【重置】按钮 | 清空条件后调用 `GET /signups/{jobFairId}` |
|
||||
| 导出 | 点击【导出】按钮 | 可扩展导出接口 |
|
||||
|
||||
---
|
||||
|
||||
## 接口详情
|
||||
|
||||
### 1. 查询招聘会列表
|
||||
- **URL**: `GET /cms/publicJobFair/list`
|
||||
- **权限**: `cms:publicJobFair:list`
|
||||
- **请求参数**:
|
||||
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| pageNum | Integer | 否 | 页码,默认1 |
|
||||
| pageSize | Integer | 否 | 每页条数,默认10 |
|
||||
| jobFairTitle | String | 否 | 招聘会标题(模糊查询) |
|
||||
| jobFairType | String | 否 | 招聘会类型(1-线上 2-线下) |
|
||||
|
||||
- **响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"rows": [{
|
||||
"jobFairId": "1",
|
||||
"jobFairTitle": "2026年春风行动专场招聘会",
|
||||
"jobFairAddress": "石河子市人力资源市场",
|
||||
"jobFairType": "2",
|
||||
"jobFairStartTime": "2026-01-20 10:00:00",
|
||||
"jobFairEndTime": "2026-01-20 16:00:00",
|
||||
"enterpriseNum": "3",
|
||||
"boothNum": "10"
|
||||
}],
|
||||
"total": 1
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. 获取招聘会详情(含企业及岗位)
|
||||
- **URL**: `GET /cms/publicJobFair/{jobFairId}`
|
||||
- **权限**: `cms:publicJobFair:query`
|
||||
- **响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"data": {
|
||||
"jobFairId": "1",
|
||||
"jobFairTitle": "2026年春风行动专场招聘会",
|
||||
"jobFairAddress": "石河子市人力资源市场",
|
||||
"jobFairType": "2",
|
||||
"jobFairStartTime": "2026-01-20 10:00:00",
|
||||
"jobFairEndTime": "2026-01-20 16:00:00",
|
||||
"jobFairHostUnit": "石河子市人社局",
|
||||
"jobFairIntroduction": "招聘会简介...",
|
||||
"latitude": 44.3066,
|
||||
"longitude": 86.0419,
|
||||
"companyList": [{
|
||||
"id": "company-relation-id",
|
||||
"companyId": 100,
|
||||
"companyName": "新疆某某科技有限公司",
|
||||
"scale": "100-499人",
|
||||
"industry": "互联网/IT",
|
||||
"companyType": "民营企业",
|
||||
"jobInfoList": [{
|
||||
"jobId": 200,
|
||||
"jobTitle": "Java开发工程师",
|
||||
"minSalary": 8000,
|
||||
"maxSalary": 15000,
|
||||
"education": "本科",
|
||||
"experience": "3-5年",
|
||||
"vacancies": 2
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. 新增招聘会
|
||||
- **URL**: `POST /cms/publicJobFair`
|
||||
- **权限**: `cms:publicJobFair:add`
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"jobFairTitle": "招聘会标题",
|
||||
"jobFairAddress": "招聘会地址",
|
||||
"jobFairType": "2",
|
||||
"jobFairStartTime": "2026-02-01 09:00:00",
|
||||
"jobFairEndTime": "2026-02-01 17:00:00",
|
||||
"jobFairHostUnit": "主办单位",
|
||||
"jobFairIntroduction": "招聘会简介",
|
||||
"jobFairPhone": "联系电话",
|
||||
"jobFairSignUpStartTime": "2026-01-20 00:00:00",
|
||||
"jobFairSignUpEndTime": "2026-01-31 23:59:59",
|
||||
"latitude": 44.3066,
|
||||
"longitude": 86.0419
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 4. 修改招聘会
|
||||
- **URL**: `PUT /cms/publicJobFair`
|
||||
- **权限**: `cms:publicJobFair:edit`
|
||||
- **请求体**: 同新增,需包含 `jobFairId`
|
||||
|
||||
---
|
||||
|
||||
### 5. 删除招聘会
|
||||
- **URL**: `DELETE /cms/publicJobFair/{jobFairIds}`
|
||||
- **权限**: `cms:publicJobFair:remove`
|
||||
- **说明**: 支持批量删除,多个ID用逗号分隔
|
||||
|
||||
---
|
||||
|
||||
### 6. 添加企业到招聘会
|
||||
- **URL**: `POST /cms/publicJobFair/company`
|
||||
- **权限**: `cms:publicJobFair:edit`
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"jobFairId": "1",
|
||||
"companyId": 100
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 7. 批量添加企业
|
||||
- **URL**: `POST /cms/publicJobFair/company/batch`
|
||||
- **请求体**:
|
||||
```json
|
||||
[
|
||||
{"jobFairId": "1", "companyId": 100},
|
||||
{"jobFairId": "1", "companyId": 101}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 8. 移除招聘会企业
|
||||
- **URL**: `DELETE /cms/publicJobFair/company/{id}`
|
||||
- **说明**: `id` 为关联表主键
|
||||
|
||||
---
|
||||
|
||||
### 9. 添加岗位到招聘会
|
||||
- **URL**: `POST /cms/publicJobFair/job`
|
||||
- **请求体**:
|
||||
```json
|
||||
{
|
||||
"jobFairId": "1",
|
||||
"jobId": 200,
|
||||
"companyId": 100
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 10. 批量添加岗位
|
||||
- **URL**: `POST /cms/publicJobFair/job/batch`
|
||||
- **请求体**:
|
||||
```json
|
||||
[
|
||||
{"jobFairId": "1", "jobId": 200, "companyId": 100},
|
||||
{"jobFairId": "1", "jobId": 201, "companyId": 100}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 11. 移除招聘会岗位
|
||||
- **URL**: `DELETE /cms/publicJobFair/job/{id}`
|
||||
|
||||
---
|
||||
|
||||
### 12. 查询招聘会报名列表
|
||||
- **URL**: `GET /cms/publicJobFair/signups/{jobFairId}`
|
||||
- **权限**: `cms:publicJobFair:query`
|
||||
- **响应示例**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"rows": [{
|
||||
"id": 1,
|
||||
"jobFairId": 1,
|
||||
"userId": 1,
|
||||
"userName": "zhangsan",
|
||||
"realName": "张三",
|
||||
"phone": "13800138000",
|
||||
"signUpTime": "2026-01-15 10:30:00",
|
||||
"status": "0"
|
||||
}],
|
||||
"total": 1
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 13. 查询招聘会企业及岗位
|
||||
- **URL**: `GET /cms/publicJobFair/companies/{jobFairId}`
|
||||
- **权限**: `cms:publicJobFair:query`
|
||||
|
||||
---
|
||||
|
||||
## 数据字典
|
||||
|
||||
### 招聘会类型 (jobFairType)
|
||||
| 值 | 说明 |
|
||||
|---|------|
|
||||
| 1 | 线上招聘会 |
|
||||
| 2 | 线下招聘会 |
|
||||
|
||||
### 报名状态 (status)
|
||||
| 值 | 说明 |
|
||||
|---|------|
|
||||
| 0 | 已报名 |
|
||||
| 1 | 已取消 |
|
||||
@@ -4,11 +4,13 @@ package com.ruoyi.cms.controller.app;
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
import com.ruoyi.cms.service.IFairCollectionService;
|
||||
import com.ruoyi.cms.service.IJobFairService;
|
||||
import com.ruoyi.cms.service.rc.IJobFairSignUpService;
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -30,6 +32,8 @@ public class AppFairController extends BaseController
|
||||
private IJobFairService jobFairService;
|
||||
@Autowired
|
||||
private IFairCollectionService fairCollectionService;
|
||||
@Autowired
|
||||
private IJobFairSignUpService jobFairSignUpService;
|
||||
/**
|
||||
* 招聘会列表
|
||||
*/
|
||||
@@ -71,4 +75,26 @@ public class AppFairController extends BaseController
|
||||
{
|
||||
return toAjax(fairCollectionService.cancel(fairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 报名招聘会
|
||||
*/
|
||||
@BussinessLog(title = "报名招聘会")
|
||||
@ApiOperation("报名招聘会")
|
||||
@PostMapping("/signUp/{fairId}")
|
||||
public AjaxResult signUp(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return toAjax(jobFairSignUpService.signUp(fairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消报名招聘会
|
||||
*/
|
||||
@BussinessLog(title = "取消报名招聘会")
|
||||
@ApiOperation("取消报名招聘会")
|
||||
@DeleteMapping("/signUp/{fairId}")
|
||||
public AjaxResult cancelSignUp(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return toAjax(jobFairSignUpService.cancelSignUp(fairId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.rc.PublicJobFairCompanyVO;
|
||||
import com.ruoyi.cms.domain.rc.PublicJobFairDetail;
|
||||
import com.ruoyi.cms.domain.rc.PublicJobFairQuery;
|
||||
import com.ruoyi.cms.domain.rc.PublicJobFairResponse;
|
||||
import com.ruoyi.cms.service.rc.IPublicJobFairService;
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公共招聘会Controller(石河子)
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/app/jobfair/public/jobfair")
|
||||
@Api(tags = "公共接口:招聘会(石河子)")
|
||||
public class PublicJobFairController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IPublicJobFairService publicJobFairService;
|
||||
|
||||
/**
|
||||
* 分页查询招聘会列表
|
||||
*/
|
||||
@BussinessLog(title = "公共招聘会列表")
|
||||
@ApiOperation("分页查询招聘会列表")
|
||||
@GetMapping("/page")
|
||||
public PublicJobFairResponse page(PublicJobFairQuery query) {
|
||||
return publicJobFairService.getJobFairPage(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取招聘会详情
|
||||
*/
|
||||
@BussinessLog(title = "公共招聘会详情")
|
||||
@ApiOperation("获取招聘会详情")
|
||||
@GetMapping("/detail")
|
||||
public AjaxResult detail(@ApiParam("招聘会ID") @RequestParam String jobFairId) {
|
||||
PublicJobFairDetail detail = publicJobFairService.getJobFairDetail(jobFairId);
|
||||
return success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取招聘会企业及岗位列表
|
||||
*/
|
||||
@BussinessLog(title = "招聘会企业及岗位列表")
|
||||
@ApiOperation("获取招聘会企业及岗位列表")
|
||||
@GetMapping("/enterprises-with-jobs-by-job-fair-id")
|
||||
public AjaxResult enterprisesWithJobs(@ApiParam("招聘会ID") @RequestParam String jobFairId) {
|
||||
List<PublicJobFairCompanyVO> list = publicJobFairService.getEnterprisesWithJobs(jobFairId);
|
||||
return success(list);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.rc.*;
|
||||
import com.ruoyi.cms.service.rc.IPublicJobFairService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公共招聘会管理Controller(CMS后台)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/publicJobFair")
|
||||
@Api(tags = "后台:公共招聘会管理")
|
||||
public class CmsPublicJobFairController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IPublicJobFairService publicJobFairService;
|
||||
|
||||
/**
|
||||
* 查询招聘会列表
|
||||
*/
|
||||
@ApiOperation("查询招聘会列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(PublicJobFairQuery query) {
|
||||
startPage();
|
||||
List<PublicJobFair> list = publicJobFairService.selectList(query);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取招聘会详情
|
||||
*/
|
||||
@ApiOperation("获取招聘会详情")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:query')")
|
||||
@GetMapping("/{jobFairId}")
|
||||
public AjaxResult getInfo(@ApiParam("招聘会ID") @PathVariable String jobFairId) {
|
||||
return success(publicJobFairService.selectById(jobFairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增招聘会
|
||||
*/
|
||||
@ApiOperation("新增招聘会")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:add')")
|
||||
@Log(title = "公共招聘会", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody PublicJobFair publicJobFair) {
|
||||
return toAjax(publicJobFairService.insert(publicJobFair));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改招聘会
|
||||
*/
|
||||
@ApiOperation("修改招聘会")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
|
||||
@Log(title = "公共招聘会", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody PublicJobFair publicJobFair) {
|
||||
return toAjax(publicJobFairService.update(publicJobFair));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除招聘会
|
||||
*/
|
||||
@ApiOperation("删除招聘会")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:remove')")
|
||||
@Log(title = "公共招聘会", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{jobFairIds}")
|
||||
public AjaxResult remove(@ApiParam("招聘会ID数组") @PathVariable String[] jobFairIds) {
|
||||
return toAjax(publicJobFairService.deleteByIds(jobFairIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加企业到招聘会
|
||||
*/
|
||||
@ApiOperation("添加企业到招聘会")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
|
||||
@Log(title = "招聘会添加企业", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/company")
|
||||
public AjaxResult addCompany(@RequestBody PublicJobFairCompany company) {
|
||||
return toAjax(publicJobFairService.addCompany(company));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加企业到招聘会
|
||||
*/
|
||||
@ApiOperation("批量添加企业到招聘会")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
|
||||
@Log(title = "招聘会批量添加企业", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/company/batch")
|
||||
public AjaxResult addCompanyBatch(@RequestBody List<PublicJobFairCompany> companies) {
|
||||
return toAjax(publicJobFairService.addCompanyBatch(companies));
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除招聘会企业
|
||||
*/
|
||||
@ApiOperation("移除招聘会企业")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
|
||||
@Log(title = "移除招聘会企业", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/company/{id}")
|
||||
public AjaxResult removeCompany(@ApiParam("关联ID") @PathVariable String id) {
|
||||
return toAjax(publicJobFairService.removeCompany(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加岗位到招聘会
|
||||
*/
|
||||
@ApiOperation("添加岗位到招聘会")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
|
||||
@Log(title = "招聘会添加岗位", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/job")
|
||||
public AjaxResult addJob(@RequestBody PublicJobFairJob job) {
|
||||
return toAjax(publicJobFairService.addJob(job));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加岗位到招聘会
|
||||
*/
|
||||
@ApiOperation("批量添加岗位到招聘会")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
|
||||
@Log(title = "招聘会批量添加岗位", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/job/batch")
|
||||
public AjaxResult addJobBatch(@RequestBody List<PublicJobFairJob> jobs) {
|
||||
return toAjax(publicJobFairService.addJobBatch(jobs));
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除招聘会岗位
|
||||
*/
|
||||
@ApiOperation("移除招聘会岗位")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
|
||||
@Log(title = "移除招聘会岗位", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/job/{id}")
|
||||
public AjaxResult removeJob(@ApiParam("关联ID") @PathVariable String id) {
|
||||
return toAjax(publicJobFairService.removeJob(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询招聘会报名列表
|
||||
*/
|
||||
@ApiOperation("查询招聘会报名列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:query')")
|
||||
@GetMapping("/signups/{jobFairId}")
|
||||
public TableDataInfo getSignUpList(@ApiParam("招聘会ID") @PathVariable String jobFairId) {
|
||||
startPage();
|
||||
List<JobFairSignUpVO> list = publicJobFairService.selectSignUpList(jobFairId);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询招聘会关联的企业列表
|
||||
*/
|
||||
@ApiOperation("查询招聘会关联的企业列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:query')")
|
||||
@GetMapping("/companies/{jobFairId}")
|
||||
public AjaxResult getCompanyList(@ApiParam("招聘会ID") @PathVariable String jobFairId) {
|
||||
return success(publicJobFairService.getEnterprisesWithJobs(jobFairId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 招聘会报名对象
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("招聘会报名")
|
||||
@TableName("rc_job_fair_sign_up")
|
||||
public class JobFairSignUp extends BaseEntity {
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
@ApiModelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("招聘会ID")
|
||||
private Long jobFairId;
|
||||
|
||||
@ApiModelProperty("用户ID")
|
||||
private Long userId;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("报名时间")
|
||||
private Date signUpTime;
|
||||
|
||||
@ApiModelProperty("状态 0正常 1已取消")
|
||||
private String status;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 招聘会报名信息VO(包含用户信息)
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("招聘会报名信息")
|
||||
public class JobFairSignUpVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("报名ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("招聘会ID")
|
||||
private Long jobFairId;
|
||||
|
||||
@ApiModelProperty("用户ID")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("用户名")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty("真实姓名")
|
||||
private String realName;
|
||||
|
||||
@ApiModelProperty("手机号")
|
||||
private String phone;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("报名时间")
|
||||
private Date signUpTime;
|
||||
|
||||
@ApiModelProperty("状态 0正常 1已取消")
|
||||
private String status;
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公共招聘会信息对象(对接石河子/喀什地区)
|
||||
* @author kiro
|
||||
* @date 2026-01-10
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公共招聘会信息")
|
||||
public class PublicJobFair implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("招聘会ID")
|
||||
private String jobFairId;
|
||||
|
||||
@ApiModelProperty("招聘会标题")
|
||||
private String jobFairTitle;
|
||||
|
||||
@ApiModelProperty("招聘会地址")
|
||||
private String jobFairAddress;
|
||||
|
||||
@ApiModelProperty("招聘会类型")
|
||||
private String jobFairType;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("招聘会开始时间")
|
||||
private Date jobFairStartTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("招聘会结束时间")
|
||||
private Date jobFairEndTime;
|
||||
|
||||
@ApiModelProperty("主办单位")
|
||||
private String jobFairHostUnit;
|
||||
|
||||
@ApiModelProperty("协办单位")
|
||||
private String jobFairHelpUnit;
|
||||
|
||||
@ApiModelProperty("承办单位")
|
||||
private String jobFairOrganizeUnit;
|
||||
|
||||
@ApiModelProperty("招聘会简介")
|
||||
private String jobFairIntroduction;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String jobFairRemark;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
private String jobFairPhone;
|
||||
|
||||
@ApiModelProperty("招聘会图片")
|
||||
private String jobFairImage;
|
||||
|
||||
@ApiModelProperty("招聘会区域图片")
|
||||
private String jobFairAreaImage;
|
||||
|
||||
@ApiModelProperty("创建人")
|
||||
private String createBy;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty("更新人")
|
||||
private String updateBy;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty("招聘会场馆ID")
|
||||
private String jobFairVenueId;
|
||||
|
||||
@ApiModelProperty("场馆区域展位信息")
|
||||
private String jobFairVenueAreaAndBoothInfo;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("报名开始时间")
|
||||
private Date jobFairSignUpStartTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("报名结束时间")
|
||||
private Date jobFairSignUpEndTime;
|
||||
|
||||
@ApiModelProperty("是否报名")
|
||||
private String isSignUp;
|
||||
|
||||
@ApiModelProperty("企业数量")
|
||||
private String enterpriseNum;
|
||||
|
||||
@ApiModelProperty("区域展位信息")
|
||||
private String jobFairAreaAndBoothInfo;
|
||||
|
||||
@ApiModelProperty("人员ID")
|
||||
private String personId;
|
||||
|
||||
@ApiModelProperty("企业ID")
|
||||
private String enterpriseId;
|
||||
|
||||
@ApiModelProperty("投递数量")
|
||||
private String deliverNum;
|
||||
|
||||
@ApiModelProperty("企业审核状态")
|
||||
private String enterpriseReviewStatus;
|
||||
|
||||
@ApiModelProperty("企业审核意见")
|
||||
private String enterpriseReviewComments;
|
||||
|
||||
@ApiModelProperty("简历数量")
|
||||
private String resumeCount;
|
||||
|
||||
@ApiModelProperty("展位数量")
|
||||
private String boothNum;
|
||||
|
||||
@ApiModelProperty("区域展位名称")
|
||||
private String jobFairAreaBoothName;
|
||||
|
||||
@ApiModelProperty("我的岗位数量")
|
||||
private String myJobNum;
|
||||
|
||||
@ApiModelProperty("省份")
|
||||
private String divisionProvince;
|
||||
|
||||
@ApiModelProperty("城市")
|
||||
private String divisionCity;
|
||||
|
||||
@ApiModelProperty("区县")
|
||||
private String divisionCounty;
|
||||
|
||||
@ApiModelProperty("区域名称")
|
||||
private String divisionName;
|
||||
|
||||
@ApiModelProperty("校验码")
|
||||
private String checkCode;
|
||||
|
||||
@ApiModelProperty("部门编码(末级)")
|
||||
private String deptCodeLast;
|
||||
|
||||
@ApiModelProperty("部门编码(全部)")
|
||||
private String deptCodeAll;
|
||||
|
||||
@ApiModelProperty("招聘会类别")
|
||||
private String jobFairCategory;
|
||||
|
||||
@ApiModelProperty("纬度")
|
||||
private java.math.BigDecimal latitude;
|
||||
|
||||
@ApiModelProperty("经度")
|
||||
private java.math.BigDecimal longitude;
|
||||
|
||||
@ApiModelProperty("参加的企业及岗位列表")
|
||||
private java.util.List<PublicJobFairCompanyVO> companyList;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 招聘会-企业关联对象
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("招聘会-企业关联")
|
||||
public class PublicJobFairCompany implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("招聘会ID")
|
||||
private String jobFairId;
|
||||
|
||||
@ApiModelProperty("企业ID")
|
||||
private Long companyId;
|
||||
|
||||
@ApiModelProperty("创建者")
|
||||
private String createBy;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty("更新者")
|
||||
private String updateBy;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty("删除标志")
|
||||
private String delFlag;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 招聘会企业VO
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("招聘会企业VO")
|
||||
public class PublicJobFairCompanyVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("企业记录ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("企业ID")
|
||||
private Long companyId;
|
||||
|
||||
@ApiModelProperty("企业名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty("企业规模")
|
||||
private String scale;
|
||||
|
||||
@ApiModelProperty("所属行业")
|
||||
private String industry;
|
||||
|
||||
@ApiModelProperty("企业类型")
|
||||
private String companyType;
|
||||
|
||||
@ApiModelProperty("在招职位列表")
|
||||
private List<Job> jobInfoList;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公共招聘会详情
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公共招聘会详情")
|
||||
public class PublicJobFairDetail implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("招聘会ID")
|
||||
private String jobFairId;
|
||||
|
||||
@ApiModelProperty("招聘会标题")
|
||||
private String jobFairTitle;
|
||||
|
||||
@ApiModelProperty("招聘会地址")
|
||||
private String jobFairAddress;
|
||||
|
||||
@ApiModelProperty("招聘会简介")
|
||||
private String jobFairIntroduction;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("招聘会开始时间")
|
||||
private Date jobFairStartTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("招聘会结束时间")
|
||||
private Date jobFairEndTime;
|
||||
|
||||
@ApiModelProperty("招聘会类型 1-线上 2-线下")
|
||||
private Integer jobFairType;
|
||||
|
||||
@ApiModelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
@ApiModelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
@ApiModelProperty("是否已报名 0-未报名 1-已报名")
|
||||
private Integer isSignUp;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 招聘会-岗位关联对象
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("招聘会-岗位关联")
|
||||
public class PublicJobFairJob implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("招聘会ID")
|
||||
private String jobFairId;
|
||||
|
||||
@ApiModelProperty("岗位ID")
|
||||
private Long jobId;
|
||||
|
||||
@ApiModelProperty("企业ID")
|
||||
private Long companyId;
|
||||
|
||||
@ApiModelProperty("创建者")
|
||||
private String createBy;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty("更新者")
|
||||
private String updateBy;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty("删除标志")
|
||||
private String delFlag;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 公共招聘会查询参数
|
||||
* @author kiro
|
||||
* @date 2026-01-10
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公共招聘会查询参数")
|
||||
public class PublicJobFairQuery implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("页码")
|
||||
private Integer pageNum = 1;
|
||||
|
||||
@ApiModelProperty("每页数量")
|
||||
private Integer pageSize = 10;
|
||||
|
||||
@ApiModelProperty("招聘会标题")
|
||||
private String jobFairTitle;
|
||||
|
||||
@ApiModelProperty("招聘会类型")
|
||||
private String jobFairType;
|
||||
|
||||
@ApiModelProperty("招聘会举办时间(格式:yyyy-MM-dd)")
|
||||
private String zphjbsj;
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公共招聘会响应对象
|
||||
* @author kiro
|
||||
* @date 2026-01-10
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公共招聘会响应")
|
||||
public class PublicJobFairResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("状态码")
|
||||
private Integer code;
|
||||
|
||||
@ApiModelProperty("消息")
|
||||
private String msg;
|
||||
|
||||
@ApiModelProperty("数据")
|
||||
private PageData data;
|
||||
|
||||
@Data
|
||||
public static class PageData implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("总数")
|
||||
private Long total;
|
||||
|
||||
@ApiModelProperty("列表")
|
||||
private List<PublicJobFair> list;
|
||||
|
||||
@ApiModelProperty("当前页码")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("每页数量")
|
||||
private Integer pageSize;
|
||||
|
||||
@ApiModelProperty("当前页数量")
|
||||
private Integer size;
|
||||
|
||||
@ApiModelProperty("起始行")
|
||||
private Integer startRow;
|
||||
|
||||
@ApiModelProperty("结束行")
|
||||
private Integer endRow;
|
||||
|
||||
@ApiModelProperty("总页数")
|
||||
private Integer pages;
|
||||
|
||||
@ApiModelProperty("上一页")
|
||||
private Integer prePage;
|
||||
|
||||
@ApiModelProperty("下一页")
|
||||
private Integer nextPage;
|
||||
|
||||
@ApiModelProperty("是否第一页")
|
||||
private Boolean isFirstPage;
|
||||
|
||||
@ApiModelProperty("是否最后一页")
|
||||
private Boolean isLastPage;
|
||||
|
||||
@ApiModelProperty("是否有上一页")
|
||||
private Boolean hasPreviousPage;
|
||||
|
||||
@ApiModelProperty("是否有下一页")
|
||||
private Boolean hasNextPage;
|
||||
|
||||
@ApiModelProperty("导航页数")
|
||||
private Integer navigatePages;
|
||||
|
||||
@ApiModelProperty("导航页码")
|
||||
private List<Integer> navigatepageNums;
|
||||
|
||||
@ApiModelProperty("导航第一页")
|
||||
private Integer navigateFirstPage;
|
||||
|
||||
@ApiModelProperty("导航最后一页")
|
||||
private Integer navigateLastPage;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.cms.mapper.rc;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.rc.JobFairSignUp;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 招聘会报名Mapper接口
|
||||
*/
|
||||
@Mapper
|
||||
public interface JobFairSignUpMapper extends BaseMapper<JobFairSignUp> {
|
||||
|
||||
/**
|
||||
* 检查是否已报名
|
||||
*/
|
||||
JobFairSignUp checkSignUp(@Param("jobFairId") Long jobFairId, @Param("userId") Long userId);
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.ruoyi.cms.mapper.rc;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.rc.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公共招聘会Mapper接口
|
||||
*/
|
||||
public interface PublicJobFairMapper extends BaseMapper<PublicJobFair> {
|
||||
|
||||
/**
|
||||
* 分页查询招聘会列表
|
||||
*/
|
||||
List<PublicJobFair> selectPublicJobFairList(@Param("query") PublicJobFairQuery query);
|
||||
|
||||
/**
|
||||
* 查询招聘会详情
|
||||
*/
|
||||
PublicJobFairDetail selectPublicJobFairDetailById(@Param("jobFairId") String jobFairId);
|
||||
|
||||
/**
|
||||
* 查询招聘会关联的企业列表
|
||||
*/
|
||||
List<PublicJobFairCompanyVO> selectCompanyListByJobFairId(@Param("jobFairId") String jobFairId);
|
||||
|
||||
/**
|
||||
* 查询招聘会关联的岗位列表
|
||||
*/
|
||||
List<Job> selectJobListByJobFairIdAndCompanyId(@Param("jobFairId") String jobFairId, @Param("companyId") Long companyId);
|
||||
|
||||
/**
|
||||
* 检查用户是否已报名
|
||||
*/
|
||||
Integer checkUserSignUp(@Param("jobFairId") String jobFairId, @Param("personId") Long personId);
|
||||
|
||||
// ========== CMS后台管理接口 ==========
|
||||
|
||||
/**
|
||||
* 根据ID查询招聘会
|
||||
*/
|
||||
PublicJobFair selectPublicJobFairById(@Param("jobFairId") String jobFairId);
|
||||
|
||||
/**
|
||||
* 新增招聘会
|
||||
*/
|
||||
int insertPublicJobFair(PublicJobFair publicJobFair);
|
||||
|
||||
/**
|
||||
* 修改招聘会
|
||||
*/
|
||||
int updatePublicJobFair(PublicJobFair publicJobFair);
|
||||
|
||||
/**
|
||||
* 批量删除招聘会
|
||||
*/
|
||||
int deletePublicJobFairByIds(@Param("jobFairIds") String[] jobFairIds);
|
||||
|
||||
/**
|
||||
* 添加企业到招聘会
|
||||
*/
|
||||
int insertJobFairCompany(PublicJobFairCompany company);
|
||||
|
||||
/**
|
||||
* 批量添加企业到招聘会
|
||||
*/
|
||||
int insertJobFairCompanyBatch(@Param("list") List<PublicJobFairCompany> companies);
|
||||
|
||||
/**
|
||||
* 删除招聘会企业关联
|
||||
*/
|
||||
int deleteJobFairCompanyById(@Param("id") String id);
|
||||
|
||||
/**
|
||||
* 添加岗位到招聘会
|
||||
*/
|
||||
int insertJobFairJob(PublicJobFairJob job);
|
||||
|
||||
/**
|
||||
* 批量添加岗位到招聘会
|
||||
*/
|
||||
int insertJobFairJobBatch(@Param("list") List<PublicJobFairJob> jobs);
|
||||
|
||||
/**
|
||||
* 删除招聘会岗位关联
|
||||
*/
|
||||
int deleteJobFairJobById(@Param("id") String id);
|
||||
|
||||
/**
|
||||
* 查询招聘会报名列表(包含用户信息)
|
||||
*/
|
||||
List<JobFairSignUpVO> selectSignUpListByJobFairId(@Param("jobFairId") String jobFairId);
|
||||
}
|
||||
@@ -67,7 +67,7 @@ public class ESJobSearchImpl implements IESJobSearchService
|
||||
/**
|
||||
* 项目启动时,初始化索引及数据
|
||||
*/
|
||||
@PostConstruct
|
||||
// @PostConstruct
|
||||
public void init()
|
||||
{
|
||||
boolean isLockAcquired = false;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.cms.service.rc;
|
||||
|
||||
/**
|
||||
* 招聘会报名Service接口
|
||||
*/
|
||||
public interface IJobFairSignUpService {
|
||||
|
||||
/**
|
||||
* 报名招聘会
|
||||
*/
|
||||
int signUp(Long jobFairId);
|
||||
|
||||
/**
|
||||
* 取消报名
|
||||
*/
|
||||
int cancelSignUp(Long jobFairId);
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.ruoyi.cms.service.rc;
|
||||
|
||||
import com.ruoyi.cms.domain.rc.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公共招聘会Service接口
|
||||
*/
|
||||
public interface IPublicJobFairService {
|
||||
|
||||
/**
|
||||
* 分页查询招聘会列表(APP端)
|
||||
*/
|
||||
PublicJobFairResponse getJobFairPage(PublicJobFairQuery query);
|
||||
|
||||
/**
|
||||
* 获取招聘会详情(APP端)
|
||||
*/
|
||||
PublicJobFairDetail getJobFairDetail(String jobFairId);
|
||||
|
||||
/**
|
||||
* 获取招聘会企业及岗位列表
|
||||
*/
|
||||
List<PublicJobFairCompanyVO> getEnterprisesWithJobs(String jobFairId);
|
||||
|
||||
// ========== CMS后台管理接口 ==========
|
||||
|
||||
/**
|
||||
* 查询招聘会列表(CMS)
|
||||
*/
|
||||
List<PublicJobFair> selectList(PublicJobFairQuery query);
|
||||
|
||||
/**
|
||||
* 根据ID查询招聘会
|
||||
*/
|
||||
PublicJobFair selectById(String jobFairId);
|
||||
|
||||
/**
|
||||
* 新增招聘会
|
||||
*/
|
||||
int insert(PublicJobFair publicJobFair);
|
||||
|
||||
/**
|
||||
* 修改招聘会
|
||||
*/
|
||||
int update(PublicJobFair publicJobFair);
|
||||
|
||||
/**
|
||||
* 批量删除招聘会
|
||||
*/
|
||||
int deleteByIds(String[] jobFairIds);
|
||||
|
||||
/**
|
||||
* 添加企业到招聘会
|
||||
*/
|
||||
int addCompany(PublicJobFairCompany company);
|
||||
|
||||
/**
|
||||
* 批量添加企业到招聘会
|
||||
*/
|
||||
int addCompanyBatch(List<PublicJobFairCompany> companies);
|
||||
|
||||
/**
|
||||
* 移除招聘会企业
|
||||
*/
|
||||
int removeCompany(String id);
|
||||
|
||||
/**
|
||||
* 添加岗位到招聘会
|
||||
*/
|
||||
int addJob(PublicJobFairJob job);
|
||||
|
||||
/**
|
||||
* 批量添加岗位到招聘会
|
||||
*/
|
||||
int addJobBatch(List<PublicJobFairJob> jobs);
|
||||
|
||||
/**
|
||||
* 移除招聘会岗位
|
||||
*/
|
||||
int removeJob(String id);
|
||||
|
||||
/**
|
||||
* 查询招聘会报名列表
|
||||
*/
|
||||
List<JobFairSignUpVO> selectSignUpList(String jobFairId);
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.cms.service.rc.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cms.domain.rc.JobFairSignUp;
|
||||
import com.ruoyi.cms.mapper.rc.JobFairSignUpMapper;
|
||||
import com.ruoyi.cms.service.rc.IJobFairSignUpService;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 招聘会报名Service业务层处理
|
||||
*/
|
||||
@Service
|
||||
public class JobFairSignUpServiceImpl extends ServiceImpl<JobFairSignUpMapper, JobFairSignUp> implements IJobFairSignUpService {
|
||||
|
||||
@Autowired
|
||||
private JobFairSignUpMapper jobFairSignUpMapper;
|
||||
|
||||
@Override
|
||||
public int signUp(Long jobFairId) {
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
|
||||
// 检查是否已有报名记录
|
||||
JobFairSignUp existSignUp = jobFairSignUpMapper.checkSignUp(jobFairId, userId);
|
||||
|
||||
if (existSignUp != null) {
|
||||
// 已有记录
|
||||
if ("0".equals(existSignUp.getStatus())) {
|
||||
throw new ServiceException("您已报名该招聘会,请勿重复报名");
|
||||
}
|
||||
// 已取消的记录,重新激活
|
||||
existSignUp.setStatus("0");
|
||||
existSignUp.setSignUpTime(new Date());
|
||||
return jobFairSignUpMapper.updateById(existSignUp);
|
||||
}
|
||||
|
||||
// 新增报名记录
|
||||
JobFairSignUp signUp = new JobFairSignUp();
|
||||
signUp.setJobFairId(jobFairId);
|
||||
signUp.setUserId(userId);
|
||||
signUp.setSignUpTime(new Date());
|
||||
signUp.setStatus("0");
|
||||
|
||||
return jobFairSignUpMapper.insert(signUp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int cancelSignUp(Long jobFairId) {
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
|
||||
JobFairSignUp existSignUp = jobFairSignUpMapper.checkSignUp(jobFairId, userId);
|
||||
if (existSignUp == null || "1".equals(existSignUp.getStatus())) {
|
||||
throw new ServiceException("您未报名该招聘会");
|
||||
}
|
||||
|
||||
existSignUp.setStatus("1"); // 已取消
|
||||
return jobFairSignUpMapper.updateById(existSignUp);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
package com.ruoyi.cms.service.rc.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.rc.*;
|
||||
import com.ruoyi.cms.mapper.rc.PublicJobFairMapper;
|
||||
import com.ruoyi.cms.service.rc.IPublicJobFairService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 公共招聘会Service实现
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
||||
|
||||
@Autowired
|
||||
private PublicJobFairMapper publicJobFairMapper;
|
||||
|
||||
@Override
|
||||
public PublicJobFairResponse getJobFairPage(PublicJobFairQuery query) {
|
||||
PageHelper.startPage(query.getPageNum(), query.getPageSize());
|
||||
List<PublicJobFair> list = publicJobFairMapper.selectPublicJobFairList(query);
|
||||
PageInfo<PublicJobFair> pageInfo = new PageInfo<>(list);
|
||||
|
||||
PublicJobFairResponse response = new PublicJobFairResponse();
|
||||
response.setCode(200);
|
||||
|
||||
PublicJobFairResponse.PageData pageData = new PublicJobFairResponse.PageData();
|
||||
pageData.setTotal(pageInfo.getTotal());
|
||||
pageData.setList(list);
|
||||
pageData.setPageNum(pageInfo.getPageNum());
|
||||
pageData.setPageSize(pageInfo.getPageSize());
|
||||
pageData.setSize(pageInfo.getSize());
|
||||
pageData.setStartRow((int) pageInfo.getStartRow());
|
||||
pageData.setEndRow((int) pageInfo.getEndRow());
|
||||
pageData.setPages(pageInfo.getPages());
|
||||
pageData.setPrePage(pageInfo.getPrePage());
|
||||
pageData.setNextPage(pageInfo.getNextPage());
|
||||
pageData.setIsFirstPage(pageInfo.isIsFirstPage());
|
||||
pageData.setIsLastPage(pageInfo.isIsLastPage());
|
||||
pageData.setHasPreviousPage(pageInfo.isHasPreviousPage());
|
||||
pageData.setHasNextPage(pageInfo.isHasNextPage());
|
||||
pageData.setNavigatePages(pageInfo.getNavigatePages());
|
||||
pageData.setNavigatepageNums(Arrays.stream(pageInfo.getNavigatepageNums()).boxed().collect(Collectors.toList()));
|
||||
pageData.setNavigateFirstPage(pageInfo.getNavigateFirstPage());
|
||||
pageData.setNavigateLastPage(pageInfo.getNavigateLastPage());
|
||||
|
||||
response.setData(pageData);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PublicJobFairDetail getJobFairDetail(String jobFairId) {
|
||||
PublicJobFairDetail detail = publicJobFairMapper.selectPublicJobFairDetailById(jobFairId);
|
||||
if (detail == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 获取当前登录用户ID
|
||||
Long userId = null;
|
||||
try {
|
||||
if (SiteSecurityUtils.isLogin()) {
|
||||
userId = SiteSecurityUtils.getUserId();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 未登录,忽略
|
||||
}
|
||||
|
||||
// 检查用户是否已报名
|
||||
if (userId != null) {
|
||||
Integer count = publicJobFairMapper.checkUserSignUp(jobFairId, userId);
|
||||
detail.setIsSignUp(count != null && count > 0 ? 1 : 0);
|
||||
} else {
|
||||
detail.setIsSignUp(0);
|
||||
}
|
||||
|
||||
return detail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PublicJobFairCompanyVO> getEnterprisesWithJobs(String jobFairId) {
|
||||
List<PublicJobFairCompanyVO> companyList = publicJobFairMapper.selectCompanyListByJobFairId(jobFairId);
|
||||
|
||||
if (companyList != null && !companyList.isEmpty()) {
|
||||
for (PublicJobFairCompanyVO company : companyList) {
|
||||
List<Job> jobList = publicJobFairMapper.selectJobListByJobFairIdAndCompanyId(jobFairId, company.getCompanyId());
|
||||
company.setJobInfoList(jobList);
|
||||
}
|
||||
}
|
||||
return companyList;
|
||||
}
|
||||
|
||||
// ========== CMS后台管理接口实现 ==========
|
||||
|
||||
@Override
|
||||
public List<PublicJobFair> selectList(PublicJobFairQuery query) {
|
||||
return publicJobFairMapper.selectPublicJobFairList(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PublicJobFair selectById(String jobFairId) {
|
||||
PublicJobFair jobFair = publicJobFairMapper.selectPublicJobFairById(jobFairId);
|
||||
if (jobFair != null) {
|
||||
// 查询关联的企业及岗位
|
||||
List<PublicJobFairCompanyVO> companyList = getEnterprisesWithJobs(jobFairId);
|
||||
jobFair.setCompanyList(companyList);
|
||||
}
|
||||
return jobFair;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int insert(PublicJobFair publicJobFair) {
|
||||
publicJobFair.setJobFairId(IdUtils.fastSimpleUUID());
|
||||
publicJobFair.setCreateTime(new Date());
|
||||
publicJobFair.setCreateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.insertPublicJobFair(publicJobFair);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int update(PublicJobFair publicJobFair) {
|
||||
publicJobFair.setUpdateTime(new Date());
|
||||
publicJobFair.setUpdateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.updatePublicJobFair(publicJobFair);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int deleteByIds(String[] jobFairIds) {
|
||||
return publicJobFairMapper.deletePublicJobFairByIds(jobFairIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addCompany(PublicJobFairCompany company) {
|
||||
company.setId(IdUtils.fastSimpleUUID());
|
||||
company.setCreateTime(new Date());
|
||||
company.setCreateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.insertJobFairCompany(company);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addCompanyBatch(List<PublicJobFairCompany> companies) {
|
||||
String username = SecurityUtils.getUsername();
|
||||
Date now = new Date();
|
||||
for (PublicJobFairCompany company : companies) {
|
||||
company.setId(IdUtils.fastSimpleUUID());
|
||||
company.setCreateTime(now);
|
||||
company.setCreateBy(username);
|
||||
}
|
||||
return publicJobFairMapper.insertJobFairCompanyBatch(companies);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int removeCompany(String id) {
|
||||
return publicJobFairMapper.deleteJobFairCompanyById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addJob(PublicJobFairJob job) {
|
||||
job.setId(IdUtils.fastSimpleUUID());
|
||||
job.setCreateTime(new Date());
|
||||
job.setCreateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.insertJobFairJob(job);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addJobBatch(List<PublicJobFairJob> jobs) {
|
||||
String username = SecurityUtils.getUsername();
|
||||
Date now = new Date();
|
||||
for (PublicJobFairJob job : jobs) {
|
||||
job.setId(IdUtils.fastSimpleUUID());
|
||||
job.setCreateTime(now);
|
||||
job.setCreateBy(username);
|
||||
}
|
||||
return publicJobFairMapper.insertJobFairJobBatch(jobs);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int removeJob(String id) {
|
||||
return publicJobFairMapper.deleteJobFairJobById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JobFairSignUpVO> selectSignUpList(String jobFairId) {
|
||||
return publicJobFairMapper.selectSignUpListByJobFairId(jobFairId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?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="com.ruoyi.cms.mapper.rc.JobFairSignUpMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.cms.domain.rc.JobFairSignUp" id="JobFairSignUpResult">
|
||||
<id property="id" column="id"/>
|
||||
<result property="jobFairId" column="job_fair_id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="signUpTime" column="sign_up_time"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="remark" column="remark"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="checkSignUp" resultMap="JobFairSignUpResult">
|
||||
select id, job_fair_id, user_id, sign_up_time, status
|
||||
from rc_job_fair_sign_up
|
||||
where job_fair_id = #{jobFairId} and user_id = #{userId} and del_flag = '0'
|
||||
order by sign_up_time desc limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,238 @@
|
||||
<?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="com.ruoyi.cms.mapper.rc.PublicJobFairMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFair" id="PublicJobFairResult">
|
||||
<result property="jobFairId" column="job_fair_id"/>
|
||||
<result property="jobFairTitle" column="job_fair_title"/>
|
||||
<result property="jobFairAddress" column="job_fair_address"/>
|
||||
<result property="jobFairType" column="job_fair_type"/>
|
||||
<result property="jobFairStartTime" column="job_fair_start_time"/>
|
||||
<result property="jobFairEndTime" column="job_fair_end_time"/>
|
||||
<result property="jobFairHostUnit" column="job_fair_host_unit"/>
|
||||
<result property="jobFairHelpUnit" column="job_fair_help_unit"/>
|
||||
<result property="jobFairOrganizeUnit" column="job_fair_organize_unit"/>
|
||||
<result property="jobFairIntroduction" column="job_fair_introduction"/>
|
||||
<result property="jobFairRemark" column="job_fair_remark"/>
|
||||
<result property="jobFairPhone" column="job_fair_phone"/>
|
||||
<result property="jobFairImage" column="job_fair_image"/>
|
||||
<result property="jobFairAreaImage" column="job_fair_area_image"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="jobFairVenueId" column="job_fair_venue_id"/>
|
||||
<result property="jobFairSignUpStartTime" column="job_fair_sign_up_start_time"/>
|
||||
<result property="jobFairSignUpEndTime" column="job_fair_sign_up_end_time"/>
|
||||
<result property="isSignUp" column="is_sign_up"/>
|
||||
<result property="enterpriseNum" column="enterprise_num"/>
|
||||
<result property="boothNum" column="booth_num"/>
|
||||
<result property="divisionName" column="division_name"/>
|
||||
<result property="deptCodeLast" column="dept_code_last"/>
|
||||
<result property="deptCodeAll" column="dept_code_all"/>
|
||||
<result property="jobFairCategory" column="job_fair_category"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFairDetail" id="DetailResult">
|
||||
<result property="jobFairId" column="job_fair_id"/>
|
||||
<result property="jobFairTitle" column="job_fair_title"/>
|
||||
<result property="jobFairAddress" column="job_fair_address"/>
|
||||
<result property="jobFairIntroduction" column="job_fair_introduction"/>
|
||||
<result property="jobFairStartTime" column="job_fair_start_time"/>
|
||||
<result property="jobFairEndTime" column="job_fair_end_time"/>
|
||||
<result property="jobFairType" column="job_fair_type"/>
|
||||
<result property="latitude" column="latitude"/>
|
||||
<result property="longitude" column="longitude"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFairCompanyVO" id="CompanyVOResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="companyId" column="company_id"/>
|
||||
<result property="companyName" column="name"/>
|
||||
<result property="scale" column="scale"/>
|
||||
<result property="industry" column="industry"/>
|
||||
<result property="companyType" column="nature"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectPublicJobFairVo">
|
||||
select job_fair_id, job_fair_title, job_fair_address, job_fair_type, job_fair_start_time, job_fair_end_time,
|
||||
job_fair_host_unit, job_fair_help_unit, job_fair_organize_unit, job_fair_introduction, job_fair_remark,
|
||||
job_fair_phone, job_fair_image, job_fair_area_image, create_by, create_time, update_by, update_time,
|
||||
job_fair_venue_id, job_fair_sign_up_start_time, job_fair_sign_up_end_time, enterprise_num, booth_num,
|
||||
division_name, dept_code_last, dept_code_all, job_fair_category
|
||||
from public_job_fair
|
||||
</sql>
|
||||
|
||||
<select id="selectPublicJobFairList" resultMap="PublicJobFairResult">
|
||||
<include refid="selectPublicJobFairVo"/>
|
||||
<where>
|
||||
del_flag = '0'
|
||||
<if test="query.jobFairTitle != null and query.jobFairTitle != ''">
|
||||
and job_fair_title like concat('%', #{query.jobFairTitle}, '%')
|
||||
</if>
|
||||
<if test="query.jobFairType != null and query.jobFairType != ''">
|
||||
and job_fair_type = #{query.jobFairType}
|
||||
</if>
|
||||
<if test="query.zphjbsj != null and query.zphjbsj != ''">
|
||||
and to_char(job_fair_start_time, 'YYYY-MM-DD') <= #{query.zphjbsj}
|
||||
and to_char(job_fair_end_time, 'YYYY-MM-DD') >= #{query.zphjbsj}
|
||||
</if>
|
||||
</where>
|
||||
order by job_fair_start_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectPublicJobFairDetailById" resultMap="DetailResult">
|
||||
select job_fair_id, job_fair_title, job_fair_address, job_fair_introduction,
|
||||
job_fair_start_time, job_fair_end_time, job_fair_type, latitude, longitude
|
||||
from public_job_fair
|
||||
where job_fair_id = #{jobFairId} and del_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="selectCompanyListByJobFairId" resultMap="CompanyVOResult">
|
||||
select pfc.id, pfc.company_id, c.name, c.scale, c.industry, c.nature
|
||||
from public_job_fair_company pfc
|
||||
left join company c on pfc.company_id = c.company_id
|
||||
where pfc.job_fair_id = #{jobFairId} and pfc.del_flag = '0'
|
||||
order by pfc.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectJobListByJobFairIdAndCompanyId" resultType="com.ruoyi.cms.domain.Job">
|
||||
select j.job_id, j.job_title, j.min_salary, j.max_salary, j.education, j.experience,
|
||||
j.company_name, j.job_location, j.job_location_area_code, j.posting_date, j.vacancies,
|
||||
j.company_id, j.description, j.job_category
|
||||
from public_job_fair_job pfj
|
||||
inner join job j on pfj.job_id = j.job_id
|
||||
where pfj.job_fair_id = #{jobFairId} and pfj.company_id = #{companyId} and pfj.del_flag = '0' and j.del_flag = '0'
|
||||
order by j.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="checkUserSignUp" resultType="java.lang.Integer">
|
||||
select count(1) from rc_job_fair_sign_up
|
||||
where job_fair_id = #{jobFairId}::bigint and user_id = #{personId} and del_flag = '0' and status = '0'
|
||||
</select>
|
||||
|
||||
<!-- ========== CMS后台管理SQL ========== -->
|
||||
|
||||
<select id="selectPublicJobFairById" resultMap="PublicJobFairResult">
|
||||
<include refid="selectPublicJobFairVo"/>
|
||||
where job_fair_id = #{jobFairId} and del_flag = '0'
|
||||
</select>
|
||||
|
||||
<insert id="insertPublicJobFair">
|
||||
insert into public_job_fair (
|
||||
job_fair_id, job_fair_title, job_fair_address, job_fair_type,
|
||||
job_fair_start_time, job_fair_end_time, job_fair_host_unit, job_fair_help_unit,
|
||||
job_fair_organize_unit, job_fair_introduction, job_fair_remark, job_fair_phone,
|
||||
job_fair_image, job_fair_area_image, job_fair_venue_id,
|
||||
job_fair_sign_up_start_time, job_fair_sign_up_end_time,
|
||||
enterprise_num, booth_num, division_name, dept_code_last, dept_code_all,
|
||||
job_fair_category, latitude, longitude,
|
||||
create_by, create_time, del_flag
|
||||
) values (
|
||||
#{jobFairId}, #{jobFairTitle}, #{jobFairAddress}, #{jobFairType},
|
||||
#{jobFairStartTime}, #{jobFairEndTime}, #{jobFairHostUnit}, #{jobFairHelpUnit},
|
||||
#{jobFairOrganizeUnit}, #{jobFairIntroduction}, #{jobFairRemark}, #{jobFairPhone},
|
||||
#{jobFairImage}, #{jobFairAreaImage}, #{jobFairVenueId},
|
||||
#{jobFairSignUpStartTime}, #{jobFairSignUpEndTime},
|
||||
#{enterpriseNum}, #{boothNum}, #{divisionName}, #{deptCodeLast}, #{deptCodeAll},
|
||||
#{jobFairCategory}, #{latitude}, #{longitude},
|
||||
#{createBy}, #{createTime}, '0'
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updatePublicJobFair">
|
||||
update public_job_fair
|
||||
<set>
|
||||
<if test="jobFairTitle != null">job_fair_title = #{jobFairTitle},</if>
|
||||
<if test="jobFairAddress != null">job_fair_address = #{jobFairAddress},</if>
|
||||
<if test="jobFairType != null">job_fair_type = #{jobFairType},</if>
|
||||
<if test="jobFairStartTime != null">job_fair_start_time = #{jobFairStartTime},</if>
|
||||
<if test="jobFairEndTime != null">job_fair_end_time = #{jobFairEndTime},</if>
|
||||
<if test="jobFairHostUnit != null">job_fair_host_unit = #{jobFairHostUnit},</if>
|
||||
<if test="jobFairHelpUnit != null">job_fair_help_unit = #{jobFairHelpUnit},</if>
|
||||
<if test="jobFairOrganizeUnit != null">job_fair_organize_unit = #{jobFairOrganizeUnit},</if>
|
||||
<if test="jobFairIntroduction != null">job_fair_introduction = #{jobFairIntroduction},</if>
|
||||
<if test="jobFairRemark != null">job_fair_remark = #{jobFairRemark},</if>
|
||||
<if test="jobFairPhone != null">job_fair_phone = #{jobFairPhone},</if>
|
||||
<if test="jobFairImage != null">job_fair_image = #{jobFairImage},</if>
|
||||
<if test="jobFairAreaImage != null">job_fair_area_image = #{jobFairAreaImage},</if>
|
||||
<if test="jobFairVenueId != null">job_fair_venue_id = #{jobFairVenueId},</if>
|
||||
<if test="jobFairSignUpStartTime != null">job_fair_sign_up_start_time = #{jobFairSignUpStartTime},</if>
|
||||
<if test="jobFairSignUpEndTime != null">job_fair_sign_up_end_time = #{jobFairSignUpEndTime},</if>
|
||||
<if test="enterpriseNum != null">enterprise_num = #{enterpriseNum},</if>
|
||||
<if test="boothNum != null">booth_num = #{boothNum},</if>
|
||||
<if test="divisionName != null">division_name = #{divisionName},</if>
|
||||
<if test="deptCodeLast != null">dept_code_last = #{deptCodeLast},</if>
|
||||
<if test="deptCodeAll != null">dept_code_all = #{deptCodeAll},</if>
|
||||
<if test="jobFairCategory != null">job_fair_category = #{jobFairCategory},</if>
|
||||
<if test="latitude != null">latitude = #{latitude},</if>
|
||||
<if test="longitude != null">longitude = #{longitude},</if>
|
||||
update_by = #{updateBy},
|
||||
update_time = #{updateTime}
|
||||
</set>
|
||||
where job_fair_id = #{jobFairId}
|
||||
</update>
|
||||
|
||||
<update id="deletePublicJobFairByIds">
|
||||
update public_job_fair set del_flag = '2'
|
||||
where job_fair_id in
|
||||
<foreach item="jobFairId" collection="jobFairIds" open="(" separator="," close=")">
|
||||
#{jobFairId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<insert id="insertJobFairCompany">
|
||||
insert into public_job_fair_company (id, job_fair_id, company_id, create_by, create_time, del_flag)
|
||||
values (#{id}, #{jobFairId}, #{companyId}, #{createBy}, #{createTime}, '0')
|
||||
</insert>
|
||||
|
||||
<insert id="insertJobFairCompanyBatch">
|
||||
insert into public_job_fair_company (id, job_fair_id, company_id, create_by, create_time, del_flag)
|
||||
values
|
||||
<foreach item="item" collection="list" separator=",">
|
||||
(#{item.id}, #{item.jobFairId}, #{item.companyId}, #{item.createBy}, #{item.createTime}, '0')
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="deleteJobFairCompanyById">
|
||||
update public_job_fair_company set del_flag = '2' where id = #{id}
|
||||
</update>
|
||||
|
||||
<insert id="insertJobFairJob">
|
||||
insert into public_job_fair_job (id, job_fair_id, job_id, company_id, create_by, create_time, del_flag)
|
||||
values (#{id}, #{jobFairId}, #{jobId}, #{companyId}, #{createBy}, #{createTime}, '0')
|
||||
</insert>
|
||||
|
||||
<insert id="insertJobFairJobBatch">
|
||||
insert into public_job_fair_job (id, job_fair_id, job_id, company_id, create_by, create_time, del_flag)
|
||||
values
|
||||
<foreach item="item" collection="list" separator=",">
|
||||
(#{item.id}, #{item.jobFairId}, #{item.jobId}, #{item.companyId}, #{item.createBy}, #{item.createTime}, '0')
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="deleteJobFairJobById">
|
||||
update public_job_fair_job set del_flag = '2' where id = #{id}
|
||||
</update>
|
||||
|
||||
<resultMap type="com.ruoyi.cms.domain.rc.JobFairSignUpVO" id="SignUpVOResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="jobFairId" column="job_fair_id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="userName" column="user_name"/>
|
||||
<result property="realName" column="nick_name"/>
|
||||
<result property="phone" column="phonenumber"/>
|
||||
<result property="signUpTime" column="sign_up_time"/>
|
||||
<result property="status" column="status"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectSignUpListByJobFairId" resultMap="SignUpVOResult">
|
||||
select s.id, s.job_fair_id, s.user_id, s.sign_up_time, s.status,
|
||||
u.user_name, u.nick_name, u.phonenumber
|
||||
from rc_job_fair_sign_up s
|
||||
left join sys_user u on s.user_id = u.user_id
|
||||
where s.job_fair_id = #{jobFairId}::bigint and s.del_flag = '0'
|
||||
order by s.sign_up_time desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
142
sql/public_job_fair.sql
Normal file
142
sql/public_job_fair.sql
Normal file
@@ -0,0 +1,142 @@
|
||||
-- 公共招聘会信息表(石河子)
|
||||
-- 瀚高数据库
|
||||
|
||||
-- 删除之前创建的不需要的表
|
||||
DROP TABLE IF EXISTS "public_job_fair_area";
|
||||
DROP TABLE IF EXISTS "public_job_fair_booth";
|
||||
|
||||
-- 删除旧表(如果存在)
|
||||
DROP TABLE IF EXISTS "public_job_fair_signup";
|
||||
DROP TABLE IF EXISTS "public_job_fair_job";
|
||||
DROP TABLE IF EXISTS "public_job_fair_company";
|
||||
DROP TABLE IF EXISTS "public_job_fair";
|
||||
|
||||
-- 招聘会主表
|
||||
CREATE TABLE "public_job_fair" (
|
||||
"job_fair_id" VARCHAR(64) PRIMARY KEY,
|
||||
"job_fair_title" VARCHAR(500),
|
||||
"job_fair_address" VARCHAR(500),
|
||||
"job_fair_type" VARCHAR(10),
|
||||
"job_fair_start_time" TIMESTAMP,
|
||||
"job_fair_end_time" TIMESTAMP,
|
||||
"job_fair_host_unit" VARCHAR(200),
|
||||
"job_fair_help_unit" VARCHAR(200),
|
||||
"job_fair_organize_unit" VARCHAR(200),
|
||||
"job_fair_introduction" TEXT,
|
||||
"job_fair_remark" VARCHAR(500),
|
||||
"job_fair_phone" VARCHAR(50),
|
||||
"job_fair_image" VARCHAR(500),
|
||||
"job_fair_area_image" VARCHAR(500),
|
||||
"create_by" VARCHAR(64),
|
||||
"create_time" TIMESTAMP,
|
||||
"update_by" VARCHAR(64),
|
||||
"update_time" TIMESTAMP,
|
||||
"job_fair_venue_id" VARCHAR(64),
|
||||
"job_fair_sign_up_start_time" TIMESTAMP,
|
||||
"job_fair_sign_up_end_time" TIMESTAMP,
|
||||
"enterprise_num" VARCHAR(20),
|
||||
"booth_num" VARCHAR(20),
|
||||
"division_name" VARCHAR(200),
|
||||
"dept_code_last" VARCHAR(50),
|
||||
"dept_code_all" VARCHAR(200),
|
||||
"job_fair_category" VARCHAR(50),
|
||||
"latitude" DECIMAL(10,7),
|
||||
"longitude" DECIMAL(10,7),
|
||||
"del_flag" CHAR(1) DEFAULT '0'
|
||||
);
|
||||
|
||||
COMMENT ON TABLE "public_job_fair" IS '公共招聘会信息表';
|
||||
COMMENT ON COLUMN "public_job_fair"."job_fair_type" IS '招聘会类型 1-线上 2-线下';
|
||||
COMMENT ON COLUMN "public_job_fair"."latitude" IS '纬度';
|
||||
COMMENT ON COLUMN "public_job_fair"."longitude" IS '经度';
|
||||
COMMENT ON COLUMN "public_job_fair"."del_flag" IS '删除标志(0正常 2删除)';
|
||||
|
||||
-- 招聘会-企业关联表
|
||||
CREATE TABLE "public_job_fair_company" (
|
||||
"id" VARCHAR(64) PRIMARY KEY,
|
||||
"job_fair_id" VARCHAR(64),
|
||||
"company_id" BIGINT,
|
||||
"create_by" VARCHAR(64),
|
||||
"create_time" TIMESTAMP,
|
||||
"update_by" VARCHAR(64),
|
||||
"update_time" TIMESTAMP,
|
||||
"del_flag" CHAR(1) DEFAULT '0'
|
||||
);
|
||||
|
||||
COMMENT ON TABLE "public_job_fair_company" IS '招聘会-企业关联表';
|
||||
|
||||
-- 招聘会-岗位关联表
|
||||
CREATE TABLE "public_job_fair_job" (
|
||||
"id" VARCHAR(64) PRIMARY KEY,
|
||||
"job_fair_id" VARCHAR(64),
|
||||
"job_id" BIGINT,
|
||||
"company_id" BIGINT,
|
||||
"create_by" VARCHAR(64),
|
||||
"create_time" TIMESTAMP,
|
||||
"update_by" VARCHAR(64),
|
||||
"update_time" TIMESTAMP,
|
||||
"del_flag" CHAR(1) DEFAULT '0'
|
||||
);
|
||||
|
||||
COMMENT ON TABLE "public_job_fair_job" IS '招聘会-岗位关联表';
|
||||
|
||||
-- 招聘会-用户报名表
|
||||
CREATE TABLE "public_job_fair_signup" (
|
||||
"id" VARCHAR(64) PRIMARY KEY,
|
||||
"job_fair_id" VARCHAR(64),
|
||||
"person_id" BIGINT,
|
||||
"create_by" VARCHAR(64),
|
||||
"create_time" TIMESTAMP,
|
||||
"update_by" VARCHAR(64),
|
||||
"update_time" TIMESTAMP,
|
||||
"del_flag" CHAR(1) DEFAULT '0'
|
||||
);
|
||||
|
||||
COMMENT ON TABLE "public_job_fair_signup" IS '招聘会-用户报名表';
|
||||
|
||||
-- 创建索引
|
||||
CREATE INDEX "idx_public_job_fair_type" ON "public_job_fair"("job_fair_type");
|
||||
CREATE INDEX "idx_public_job_fair_start_time" ON "public_job_fair"("job_fair_start_time");
|
||||
CREATE INDEX "idx_public_job_fair_company_fair_id" ON "public_job_fair_company"("job_fair_id");
|
||||
CREATE INDEX "idx_public_job_fair_company_company_id" ON "public_job_fair_company"("company_id");
|
||||
CREATE INDEX "idx_public_job_fair_job_fair_id" ON "public_job_fair_job"("job_fair_id");
|
||||
CREATE INDEX "idx_public_job_fair_job_job_id" ON "public_job_fair_job"("job_id");
|
||||
CREATE INDEX "idx_public_job_fair_signup_fair_id" ON "public_job_fair_signup"("job_fair_id");
|
||||
CREATE INDEX "idx_public_job_fair_signup_person_id" ON "public_job_fair_signup"("person_id");
|
||||
|
||||
-- 插入石河子招聘会测试数据
|
||||
INSERT INTO "public_job_fair" (
|
||||
"job_fair_id", "job_fair_title", "job_fair_address", "job_fair_type",
|
||||
"job_fair_start_time", "job_fair_end_time", "job_fair_host_unit", "job_fair_help_unit",
|
||||
"job_fair_organize_unit", "job_fair_introduction", "job_fair_phone",
|
||||
"create_time", "update_time", "job_fair_venue_id",
|
||||
"job_fair_sign_up_start_time", "job_fair_sign_up_end_time",
|
||||
"enterprise_num", "booth_num", "division_name", "dept_code_last", "dept_code_all",
|
||||
"job_fair_category", "latitude", "longitude", "del_flag"
|
||||
) VALUES (
|
||||
'1',
|
||||
'2026年石河子市春风行动暨就业援助月专场招聘会',
|
||||
'石河子市人力资源市场(石河子市北四路)',
|
||||
'2',
|
||||
'2026-01-20 10:00:00',
|
||||
'2026-01-20 16:00:00',
|
||||
'石河子市人力资源和社会保障局',
|
||||
'石河子市就业服务中心',
|
||||
'石河子市公共就业服务中心',
|
||||
'为促进石河子市劳动者就业创业,搭建用人单位与求职者双向交流平台,特举办本次春风行动暨就业援助月专场招聘会。',
|
||||
'0993-2012345',
|
||||
'2026-01-10 09:00:00',
|
||||
'2026-01-10 09:00:00',
|
||||
'1',
|
||||
'2026-01-10 09:00:00',
|
||||
'2026-01-19 18:00:00',
|
||||
'3',
|
||||
'10',
|
||||
'石河子市',
|
||||
'659001000000',
|
||||
'659001000000',
|
||||
'社会招聘',
|
||||
44.3066,
|
||||
86.0419,
|
||||
'0'
|
||||
);
|
||||
10
sql/public_job_fair_data.sql
Normal file
10
sql/public_job_fair_data.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
-- 招聘会关联数据(石河子)
|
||||
-- job_fair_id = 1
|
||||
|
||||
-- 插入招聘会-企业关联
|
||||
INSERT INTO "public_job_fair_company" ("id", "job_fair_id", "company_id", "create_by", "create_time", "update_by", "update_time", "del_flag")
|
||||
VALUES ('1', '1', 82158, 'admin', now(), 'admin', now(), '0');
|
||||
|
||||
-- 插入招聘会-岗位关联
|
||||
INSERT INTO "public_job_fair_job" ("id", "job_fair_id", "job_id", "company_id", "create_by", "create_time", "update_by", "update_time", "del_flag")
|
||||
VALUES ('1', '1', 119156166, 82158, 'admin', now(), 'admin', now(), '0');
|
||||
32
sql/rc_job_fair_sign_up.sql
Normal file
32
sql/rc_job_fair_sign_up.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- 招聘会报名表 (PostgreSQL)
|
||||
DROP TABLE IF EXISTS rc_job_fair_sign_up;
|
||||
CREATE TABLE rc_job_fair_sign_up (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
job_fair_id BIGINT NOT NULL,
|
||||
user_id BIGINT NOT NULL,
|
||||
sign_up_time TIMESTAMP,
|
||||
status CHAR(1) DEFAULT '0',
|
||||
del_flag CHAR(1) DEFAULT '0',
|
||||
create_by VARCHAR(64) DEFAULT '',
|
||||
create_time TIMESTAMP,
|
||||
update_by VARCHAR(64) DEFAULT '',
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE rc_job_fair_sign_up IS '招聘会报名表';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.id IS '主键ID';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.job_fair_id IS '招聘会ID';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.user_id IS '用户ID';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.sign_up_time IS '报名时间';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.status IS '状态 0正常 1已取消';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.del_flag IS '删除标志 0正常 2删除';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.create_by IS '创建者';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.create_time IS '创建时间';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.update_by IS '更新者';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.update_time IS '更新时间';
|
||||
COMMENT ON COLUMN rc_job_fair_sign_up.remark IS '备注';
|
||||
|
||||
CREATE INDEX idx_job_fair_sign_up_fair_id ON rc_job_fair_sign_up(job_fair_id);
|
||||
CREATE INDEX idx_job_fair_sign_up_user_id ON rc_job_fair_sign_up(user_id);
|
||||
CREATE UNIQUE INDEX uk_fair_user ON rc_job_fair_sign_up(job_fair_id, user_id);
|
||||
Reference in New Issue
Block a user