Files
shz-backend/docs/cms-public-job-fair-api.md
2026-01-11 02:15:16 +08:00

412 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 | 已取消 |