This commit is contained in:
2026-08-08 21:14:39 +08:00
parent e5c6e03033
commit 2dae8b2029
20 changed files with 53421 additions and 17 deletions
@@ -1416,11 +1416,11 @@ ON DUPLICATE KEY UPDATE
built_in = 1, deleted = 0;
-- 新增平台操作权限默认只授予系统管理员。
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
SELECT 4000001, id, 0
FROM iam_permission
WHERE tenant_id = 0 AND app_code = 'PLATFORM'
AND permission_code IN (
INSERT IGNORE INTO iam_role_permission (role_id, permission_id, tenant_id)
SELECT role.id, permission.id, role.tenant_id
FROM iam_role role
JOIN iam_permission permission ON permission.tenant_id = 0 AND permission.app_code = 'PLATFORM'
AND permission.permission_code IN (
'platform:customer:edit', 'platform:customer:status', 'platform:customer:reset-password',
'platform:customer:delete', 'platform:customer:impersonate', 'platform:user:grant-role',
'platform:permission:edit', 'platform:permission:status', 'platform:permission:delete',
@@ -1428,7 +1428,7 @@ WHERE tenant_id = 0 AND app_code = 'PLATFORM'
'platform:counterparty:list', 'platform:counterparty:create', 'platform:counterparty:edit', 'platform:counterparty:status',
'platform:customer:export', 'platform:download:list', 'platform:download:all'
)
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
WHERE role.tenant_id = 0 AND role.role_code IN ('PLATFORM_ADMIN', 'ORDER_OPERATOR');
-- 已有客户运营角色继续具备客户导出与本人下载任务查询能力,但不授予查看全部任务。
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
@@ -7397,6 +7397,24 @@ BEGIN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = '统一迁移失败:三期入库装柜权限 ID 未完成迁移';
END IF;
IF (SELECT COUNT(DISTINCT CONCAT(role.role_code, '|', permission.permission_code))
FROM baiyue_iam.iam_role_permission role_permission
JOIN baiyue_iam.iam_role role
ON role.id = role_permission.role_id AND role.tenant_id = role_permission.tenant_id
JOIN baiyue_iam.iam_permission permission
ON permission.id = role_permission.permission_id
AND permission.tenant_id = role_permission.tenant_id
WHERE role.tenant_id = 0
AND role.role_code IN ('PLATFORM_ADMIN', 'ORDER_OPERATOR')
AND permission.permission_code IN (
'firstleg:inbound:split', 'firstleg:inbound:preload',
'firstleg:inbound:preload-view', 'platform:firstleg:inbound:loading:edit',
'platform:firstleg:inbound:loading:view', 'platform:firstleg:inbound:loading:complete',
'platform:firstleg:inbound:delivery:complete', 'platform:firstleg:inbound:picking:edit',
'platform:firstleg:inbound:picking:view')) <> 18 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = '统一迁移失败:三期入库装柜角色授权未完整写入';
END IF;
IF (SELECT COUNT(*) FROM baiyue_iam.iam_permission
WHERE tenant_id = 0 AND app_code = 'PLATFORM'
AND ((id = 5102091 AND permission_code = 'platform:firstleg:container:view' AND parent_id = 5102090)
@@ -7778,18 +7796,18 @@ BEGIN
AND permission_code LIKE 'platform:firstleg:truck-appointment:%') <> 5 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:订舱或拖车预约权限未完整写入';
END IF;
IF (SELECT COUNT(DISTINCT p.permission_code)
IF (SELECT COUNT(DISTINCT CONCAT(r.role_code, '|', p.permission_code))
FROM baiyue_iam.iam_role_permission rp
JOIN baiyue_iam.iam_role r ON r.id=rp.role_id AND r.tenant_id=rp.tenant_id
JOIN baiyue_iam.iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id
WHERE r.tenant_id=0 AND r.role_code IN ('PLATFORM_ADMIN','ORDER_OPERATOR')
AND p.permission_code LIKE 'platform:firstleg:ocean-booking:%') <> 10
OR (SELECT COUNT(DISTINCT p.permission_code)
AND p.permission_code LIKE 'platform:firstleg:ocean-booking:%') <> 20
OR (SELECT COUNT(DISTINCT CONCAT(r.role_code, '|', p.permission_code))
FROM baiyue_iam.iam_role_permission rp
JOIN baiyue_iam.iam_role r ON r.id=rp.role_id AND r.tenant_id=rp.tenant_id
JOIN baiyue_iam.iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id
WHERE r.tenant_id=0 AND r.role_code IN ('PLATFORM_ADMIN','ORDER_OPERATOR')
AND p.permission_code LIKE 'platform:firstleg:truck-appointment:%') <> 5 THEN
AND p.permission_code LIKE 'platform:firstleg:truck-appointment:%') <> 10 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:订舱或拖车预约角色授权未完整写入';
END IF;
END$$