feat: Add Cross-Domain Job Fair and Alliance City Management

- Implemented AppOutdoorFairController for outdoor job fair public H5 interfaces.
- Created CrossCityAllianceController for managing cross-domain alliance cities.
- Added CrossCityAlliance domain model and corresponding service and mapper.
- Developed CrossDomainJobVO for aggregating job data across job fairs.
- Created SQL scripts for initializing the cross-city alliance table and modifying the public job fair schema.
- Added migration script for backing up and restoring the HighGo database schema.
This commit is contained in:
2026-06-27 22:44:56 +08:00
parent 0ccfb6e6dc
commit b35ed5989e
29 changed files with 1969 additions and 50 deletions

View File

@@ -0,0 +1,67 @@
-- 跨域联合招聘会 - 联盟城市表
-- 用于「各地市就业信息」Tab 的联盟城市筛选与管理(替代前端硬编码 mock
-- 依赖sys_menu 已存在 menu_id=2114「跨域联合招聘会管理」parent_id=2055
CREATE SEQUENCE IF NOT EXISTS shz.cms_cross_city_alliance_id_seq
START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
CREATE TABLE IF NOT EXISTS shz.cms_cross_city_alliance (
id BIGINT NOT NULL DEFAULT nextval('shz.cms_cross_city_alliance_id_seq'::regclass) PRIMARY KEY,
name VARCHAR(64) NOT NULL,
create_by VARCHAR(64),
create_time TIMESTAMP,
update_by VARCHAR(64),
update_time TIMESTAMP,
remark VARCHAR(500),
del_flag CHAR(1) DEFAULT '0'
);
COMMENT ON TABLE shz.cms_cross_city_alliance IS '跨域联合招聘会-联盟城市表';
COMMENT ON COLUMN shz.cms_cross_city_alliance.id IS '主键';
COMMENT ON COLUMN shz.cms_cross_city_alliance.name IS '城市名称';
COMMENT ON COLUMN shz.cms_cross_city_alliance.del_flag IS '删除标志0存在 2删除';
-- 种子8 个联盟城市(与原前端 mock 一致),仅在表为空时插入
INSERT INTO shz.cms_cross_city_alliance (name, create_by, create_time, del_flag)
SELECT * FROM (VALUES
('乌鲁木齐市', 'admin', now(), '0'),
('克拉玛依市', 'admin', now(), '0'),
('昌吉回族自治州', 'admin', now(), '0'),
('哈密市', 'admin', now(), '0'),
('吐鲁番市', 'admin', now(), '0'),
('喀什地区', 'admin', now(), '0'),
('阿克苏地区', 'admin', now(), '0'),
('伊犁哈萨克自治州','admin', now(), '0')
) AS seed(name, create_by, create_time, del_flag)
WHERE NOT EXISTS (SELECT 1 FROM shz.cms_cross_city_alliance);
-- 给已存在的页面菜单 2114 补上 perms仅当为空时
UPDATE sys_menu
SET perms = 'cms:crossCityFair:list', update_by = 'system', update_time = now()
WHERE menu_id = 2114 AND (perms IS NULL OR perms = '');
-- 新增 4 个按钮权限(仅在不存在时插入)
INSERT INTO sys_menu (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, remark)
SELECT btn.menu_name, 2114, btn.order_num, '', NULL, NULL, '', 1, 0, 'F', '0', '0', btn.perms, '#', 'system', now(), '跨域联合招聘会-按钮'
FROM (VALUES
('联盟城市查询', 1, 'cms:crossCityFair:query'),
('联盟城市新增', 2, 'cms:crossCityFair:add'),
('联盟城市修改', 3, 'cms:crossCityFair:edit'),
('联盟城市删除', 4, 'cms:crossCityFair:remove')
) AS btn(menu_name, order_num, perms)
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = btn.perms);
-- 授权:把上述按钮权限授予拥有 menu_id=2114 的角色
WITH cross_roles AS (
SELECT DISTINCT role_id FROM sys_role_menu WHERE menu_id = 2114
),
new_menus AS (
SELECT menu_id FROM sys_menu
WHERE perms IN ('cms:crossCityFair:query','cms:crossCityFair:add','cms:crossCityFair:edit','cms:crossCityFair:remove')
),
rows AS (
SELECT cross_roles.role_id, new_menus.menu_id FROM cross_roles CROSS JOIN new_menus
)
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT rows.role_id, rows.menu_id FROM rows
WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu ex WHERE ex.role_id = rows.role_id AND ex.menu_id = rows.menu_id);

View File

@@ -0,0 +1,7 @@
-- 公共招聘会:新增「跨域联盟城市」列,存逗号分隔的城市名称。
-- 依赖shz.public_job_fair 已存在shz.cms_cross_city_alliance 提供城市数据。
ALTER TABLE public_job_fair
ADD COLUMN IF NOT EXISTS cross_domain_cities VARCHAR(500);
COMMENT ON COLUMN public_job_fair.cross_domain_cities IS '跨域联盟城市(逗号分隔的城市名称)';