feat: Add permissions for public job fair management and enhance role access
This commit is contained in:
@@ -339,6 +339,8 @@
|
|||||||
|
|
||||||
### 9. 添加岗位到招聘会
|
### 9. 添加岗位到招聘会
|
||||||
- **URL**: `POST /cms/publicJobFair/job`
|
- **URL**: `POST /cms/publicJobFair/job`
|
||||||
|
- **权限**: `cms:publicJobFair:edit`
|
||||||
|
- **说明**: CMS 后台将已有岗位关联到招聘会;该接口不是企业端报名接口。
|
||||||
- **请求体**:
|
- **请求体**:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -352,6 +354,8 @@
|
|||||||
|
|
||||||
### 10. 批量添加岗位
|
### 10. 批量添加岗位
|
||||||
- **URL**: `POST /cms/publicJobFair/job/batch`
|
- **URL**: `POST /cms/publicJobFair/job/batch`
|
||||||
|
- **权限**: `cms:publicJobFair:edit`
|
||||||
|
- **说明**: CMS 后台批量将已有岗位关联到招聘会;该接口不是企业端报名接口。
|
||||||
- **请求体**:
|
- **请求体**:
|
||||||
```json
|
```json
|
||||||
[
|
[
|
||||||
@@ -364,6 +368,7 @@
|
|||||||
|
|
||||||
### 11. 移除招聘会岗位
|
### 11. 移除招聘会岗位
|
||||||
- **URL**: `DELETE /cms/publicJobFair/job/{id}`
|
- **URL**: `DELETE /cms/publicJobFair/job/{id}`
|
||||||
|
- **权限**: `cms:publicJobFair:edit`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -396,6 +401,37 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 企业端报名并添加岗位
|
||||||
|
|
||||||
|
企业用户报名公共招聘会并填写参会岗位,使用以下企业端接口,不调用 CMS 的岗位关联接口:
|
||||||
|
|
||||||
|
- **URL**: `POST /app/fair/company/signUp`
|
||||||
|
- **认证**: 企业端 `Bearer` token
|
||||||
|
- **请求体**:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"jobFairId": "1051",
|
||||||
|
"jobList": [
|
||||||
|
{
|
||||||
|
"jobTitle": "Java开发工程师",
|
||||||
|
"minSalary": 8000,
|
||||||
|
"maxSalary": 15000,
|
||||||
|
"education": "本科",
|
||||||
|
"experience": "1-3年",
|
||||||
|
"vacancies": 5,
|
||||||
|
"jobAddress": "石河子市",
|
||||||
|
"description": "负责核心系统开发",
|
||||||
|
"type": "0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
该接口会校验企业身份、企业信息和重复报名,并在一次事务中完成企业报名、岗位创建及招聘会-岗位关联。完整字段和错误响应见 [企业报名招聘会接口文档](app-company-job-fair-signup-api.md)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 数据字典
|
## 数据字典
|
||||||
|
|
||||||
### 招聘会类型 (jobFairType)
|
### 招聘会类型 (jobFairType)
|
||||||
|
|||||||
95
sql/migration_public_job_fair_permissions.sql
Normal file
95
sql/migration_public_job_fair_permissions.sql
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
-- 公共招聘会权限补充
|
||||||
|
--
|
||||||
|
-- 目的:
|
||||||
|
-- 1. 补充 CMS 公共招聘会详情/报名列表/企业岗位关联查询权限;
|
||||||
|
-- 2. 将查询权限授予已经拥有公共招聘会列表权限的角色(包括“企业”角色)。
|
||||||
|
--
|
||||||
|
-- 说明:
|
||||||
|
-- - 当前 CMS 详情、报名列表、企业及岗位关联接口统一使用
|
||||||
|
-- cms:publicJobFair:query。
|
||||||
|
-- - 企业端“报名并填写岗位”使用 POST /app/fair/company/signUp,服务层会校验
|
||||||
|
-- 企业身份并创建岗位及招聘会-岗位关联,不需要 CMS 菜单权限。
|
||||||
|
-- - 不将 cms:publicJobFair:edit 授予企业角色。该权限同时控制修改招聘会、
|
||||||
|
-- 添加/移除企业和添加/移除岗位,属于后台管理权限。
|
||||||
|
--
|
||||||
|
-- 本脚本可重复执行:菜单和角色菜单关联均通过权限标识/关联关系幂等处理。
|
||||||
|
|
||||||
|
-- Step 1: 在“线上招聘会”菜单下补充按钮权限。
|
||||||
|
-- 使用 MAX(menu_id)+1,避免依赖某个固定的菜单 ID;当前生产 2056 为列表菜单。
|
||||||
|
INSERT INTO "shz"."sys_menu" (
|
||||||
|
"menu_id", "menu_name", "parent_id", "order_num", "path", "component",
|
||||||
|
"query", "route_name", "is_frame", "is_cache", "menu_type", "visible",
|
||||||
|
"status", "perms", "icon", "create_by", "create_time", "update_by",
|
||||||
|
"update_time", "remark"
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
(SELECT COALESCE(MAX("menu_id"), 0) + 1 FROM "shz"."sys_menu"),
|
||||||
|
'公共招聘会查询',
|
||||||
|
parent_menu."menu_id",
|
||||||
|
1,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
'F',
|
||||||
|
'0',
|
||||||
|
'0',
|
||||||
|
'cms:publicJobFair:query',
|
||||||
|
'#',
|
||||||
|
'admin',
|
||||||
|
CURRENT_TIMESTAMP,
|
||||||
|
'',
|
||||||
|
NULL,
|
||||||
|
'公共招聘会详情、报名及企业岗位关联查询权限'
|
||||||
|
FROM (
|
||||||
|
SELECT "menu_id"
|
||||||
|
FROM "shz"."sys_menu"
|
||||||
|
WHERE "perms" = 'cms:publicJobFair:list'
|
||||||
|
AND "path" = '/jobfair/public-job-fair'
|
||||||
|
ORDER BY "menu_id"
|
||||||
|
LIMIT 1
|
||||||
|
) parent_menu
|
||||||
|
WHERE NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM "shz"."sys_menu"
|
||||||
|
WHERE "perms" = 'cms:publicJobFair:query'
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Step 2: 给已经有列表权限的角色补充查询权限。
|
||||||
|
-- 这样企业角色(当前 role_id=1102)以及其他已有列表权限的角色都会生效。
|
||||||
|
INSERT INTO "shz"."sys_role_menu" ("role_id", "menu_id")
|
||||||
|
SELECT DISTINCT
|
||||||
|
list_role."role_id",
|
||||||
|
query_menu."menu_id"
|
||||||
|
FROM "shz"."sys_role_menu" list_role
|
||||||
|
JOIN "shz"."sys_menu" list_menu
|
||||||
|
ON list_menu."menu_id" = list_role."menu_id"
|
||||||
|
AND list_menu."perms" = 'cms:publicJobFair:list'
|
||||||
|
CROSS JOIN (
|
||||||
|
SELECT "menu_id"
|
||||||
|
FROM "shz"."sys_menu"
|
||||||
|
WHERE "perms" = 'cms:publicJobFair:query'
|
||||||
|
ORDER BY "menu_id"
|
||||||
|
LIMIT 1
|
||||||
|
) query_menu
|
||||||
|
WHERE NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM "shz"."sys_role_menu" existing_role_menu
|
||||||
|
WHERE existing_role_menu."role_id" = list_role."role_id"
|
||||||
|
AND existing_role_menu."menu_id" = query_menu."menu_id"
|
||||||
|
);
|
||||||
|
|
||||||
|
-- 可选验证:
|
||||||
|
-- SELECT menu_id, menu_name, perms
|
||||||
|
-- FROM shz.sys_menu
|
||||||
|
-- WHERE perms LIKE 'cms:publicJobFair:%'
|
||||||
|
-- ORDER BY menu_id;
|
||||||
|
--
|
||||||
|
-- SELECT r.role_id, r.role_name, m.menu_name, m.perms
|
||||||
|
-- FROM shz.sys_role_menu rm
|
||||||
|
-- JOIN shz.sys_role r ON r.role_id = rm.role_id
|
||||||
|
-- JOIN shz.sys_menu m ON m.menu_id = rm.menu_id
|
||||||
|
-- WHERE m.perms = 'cms:publicJobFair:query'
|
||||||
|
-- ORDER BY r.role_id;
|
||||||
Reference in New Issue
Block a user