- 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.
68 lines
3.3 KiB
SQL
68 lines
3.3 KiB
SQL
-- 跨域联合招聘会 - 联盟城市表
|
||
-- 用于「各地市就业信息」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);
|