Files
baiyue-firstleg/iam/src/main/resources/db/customer-dimension-config-permissions.sql
T
2026-08-07 19:23:40 +08:00

53 lines
2.1 KiB
SQL

-- 客户尺寸计算配置权限;仅用于平台后台查看和维护,不控制内部初始化接口。
USE baiyue_iam;
SET NAMES utf8mb4;
DROP PROCEDURE IF EXISTS migrate_customer_dimension_config_permissions;
DELIMITER $$
CREATE PROCEDURE migrate_customer_dimension_config_permissions()
BEGIN
IF EXISTS (
SELECT 1
FROM iam_permission
WHERE (id = 5102111 AND permission_code <> 'firstleg:dimension-config:view')
OR (id = 5102112 AND permission_code <> 'firstleg:dimension-config:edit')
OR (permission_code = 'firstleg:dimension-config:view' AND id <> 5102111)
OR (permission_code = 'firstleg:dimension-config:edit' AND id <> 5102112)
) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'customer dimension config permission id/code conflict';
END IF;
INSERT INTO iam_permission
(id, tenant_id, app_code, permission_type, parent_id, permission_code,
permission_name, route_path, http_method, sort_no, status, built_in, deleted)
VALUES
(5102111, 0, 'PLATFORM', 'BUTTON', 5100010,
'firstleg:dimension-config:view', '查看客户尺寸计算配置', NULL, NULL, 90, 'ACTIVE', 1, 0),
(5102112, 0, 'PLATFORM', 'BUTTON', 5100010,
'firstleg:dimension-config:edit', '维护客户尺寸计算配置', NULL, NULL, 100, 'ACTIVE', 1, 0)
ON DUPLICATE KEY UPDATE
permission_name = VALUES(permission_name), parent_id = VALUES(parent_id),
status = 'ACTIVE', built_in = 1, deleted = 0;
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'
WHERE role.tenant_id = 0
AND role.app_code = 'PLATFORM'
AND (
(role.role_code = 'PLATFORM_ADMIN'
AND permission.permission_code IN (
'firstleg:dimension-config:view', 'firstleg:dimension-config:edit'))
OR (role.role_code = 'ORDER_OPERATOR'
AND permission.permission_code = 'firstleg:dimension-config:view')
);
END$$
DELIMITER ;
CALL migrate_customer_dimension_config_permissions();
DROP PROCEDURE IF EXISTS migrate_customer_dimension_config_permissions;