feat(finance): add customer wallet recharge flow
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
-- 客户资金账户与充值权限。只读访问和资金写操作使用独立权限。
|
||||
USE baiyue_iam;
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
DROP PROCEDURE IF EXISTS migrate_wallet_permissions;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE migrate_wallet_permissions()
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM iam_permission
|
||||
WHERE (id = 5105056 AND (tenant_id <> 0 OR app_code <> 'PLATFORM'
|
||||
OR permission_type <> 'BUTTON'
|
||||
OR permission_code <> 'platform:finance:recharge:review'))
|
||||
OR (id = 5105057 AND (tenant_id <> 0 OR app_code <> 'PLATFORM'
|
||||
OR permission_type <> 'BUTTON'
|
||||
OR permission_code <> 'platform:finance:customer-account:adjust'))
|
||||
OR (id = 5305020 AND (tenant_id <> 0 OR app_code <> 'MERCHANT'
|
||||
OR permission_type <> 'MENU'
|
||||
OR permission_code <> 'merchant:finance:account:view'))
|
||||
OR (id = 5305021 AND (tenant_id <> 0 OR app_code <> 'MERCHANT'
|
||||
OR permission_type <> 'BUTTON'
|
||||
OR permission_code <> 'merchant:finance:recharge:create'))
|
||||
OR (permission_code = 'platform:finance:recharge:review'
|
||||
AND (id <> 5105056 OR tenant_id <> 0 OR app_code <> 'PLATFORM'))
|
||||
OR (permission_code = 'platform:finance:customer-account:adjust'
|
||||
AND (id <> 5105057 OR tenant_id <> 0 OR app_code <> 'PLATFORM'))
|
||||
OR (permission_code = 'merchant:finance:account:view'
|
||||
AND (id <> 5305020 OR tenant_id <> 0 OR app_code <> 'MERCHANT'))
|
||||
OR (permission_code = 'merchant:finance:recharge:create'
|
||||
AND (id <> 5305021 OR tenant_id <> 0 OR app_code <> 'MERCHANT'))
|
||||
) THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='资金账户权限初始化失败:权限ID、编码或类型冲突';
|
||||
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
|
||||
(5105056,0,'PLATFORM','BUTTON',5105040,'platform:finance:recharge:review',
|
||||
'审核客户充值',NULL,'POST',100,'ACTIVE',1,0),
|
||||
(5105057,0,'PLATFORM','BUTTON',5105040,'platform:finance:customer-account:adjust',
|
||||
'调整客户资金账户',NULL,'POST',110,'ACTIVE',1,0),
|
||||
(5305020,0,'MERCHANT','MENU',5300000,'merchant:finance:account:view',
|
||||
'资金账户','/finance/account','GET',50,'ACTIVE',1,0),
|
||||
(5305021,0,'MERCHANT','BUTTON',5305020,'merchant:finance:recharge:create',
|
||||
'提交充值申请',NULL,'POST',10,'ACTIVE',1,0)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
permission_name=VALUES(permission_name), parent_id=VALUES(parent_id),
|
||||
route_path=VALUES(route_path), http_method=VALUES(http_method),
|
||||
sort_no=VALUES(sort_no), status='ACTIVE', built_in=1, deleted=0;
|
||||
|
||||
INSERT IGNORE INTO iam_role_permission (tenant_id, role_id, permission_id, created_at)
|
||||
SELECT 0, role.id, permission.id, CURRENT_TIMESTAMP(3)
|
||||
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 role.status='ACTIVE' AND role.deleted=0
|
||||
AND permission.permission_code IN (
|
||||
'platform:finance:recharge:review',
|
||||
'platform:finance:customer-account:adjust')
|
||||
AND permission.status='ACTIVE' AND permission.deleted=0;
|
||||
|
||||
INSERT IGNORE INTO iam_role_permission (tenant_id, role_id, permission_id, created_at)
|
||||
SELECT 0, role.id, permission.id, CURRENT_TIMESTAMP(3)
|
||||
FROM iam_role role
|
||||
JOIN iam_permission permission ON permission.tenant_id=0 AND permission.app_code='MERCHANT'
|
||||
WHERE role.tenant_id=0 AND role.app_code='MERCHANT' AND role.role_code='MERCHANT_OWNER'
|
||||
AND role.status='ACTIVE' AND role.deleted=0
|
||||
AND permission.permission_code IN (
|
||||
'merchant:finance:account:view',
|
||||
'merchant:finance:recharge:create')
|
||||
AND permission.status='ACTIVE' AND permission.deleted=0;
|
||||
|
||||
IF (SELECT COUNT(*) FROM iam_permission
|
||||
WHERE tenant_id=0 AND app_code='PLATFORM' AND permission_type='BUTTON'
|
||||
AND parent_id=5105040 AND status='ACTIVE' AND built_in=1 AND deleted=0
|
||||
AND permission_code IN (
|
||||
'platform:finance:recharge:review',
|
||||
'platform:finance:customer-account:adjust')) <> 2 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='资金账户权限初始化失败:平台写权限资源不完整';
|
||||
END IF;
|
||||
|
||||
IF (SELECT COUNT(*) FROM iam_permission
|
||||
WHERE tenant_id=0 AND app_code='MERCHANT' AND status='ACTIVE' AND built_in=1 AND deleted=0
|
||||
AND ((id=5305020 AND permission_type='MENU' AND parent_id=5300000
|
||||
AND permission_code='merchant:finance:account:view')
|
||||
OR (id=5305021 AND permission_type='BUTTON' AND parent_id=5305020
|
||||
AND permission_code='merchant:finance:recharge:create'))) <> 2 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='资金账户权限初始化失败:客户权限资源不完整';
|
||||
END IF;
|
||||
|
||||
IF (SELECT COUNT(*) FROM iam_role_permission grant_row
|
||||
JOIN iam_role role ON role.id=grant_row.role_id AND role.tenant_id=grant_row.tenant_id
|
||||
JOIN iam_permission permission ON permission.id=grant_row.permission_id
|
||||
WHERE role.tenant_id=0 AND role.app_code='PLATFORM' AND role.role_code='PLATFORM_ADMIN'
|
||||
AND role.status='ACTIVE' AND role.deleted=0
|
||||
AND permission.tenant_id=0 AND permission.app_code='PLATFORM'
|
||||
AND permission.status='ACTIVE' AND permission.deleted=0
|
||||
AND permission.permission_code IN (
|
||||
'platform:finance:recharge:review',
|
||||
'platform:finance:customer-account:adjust')) <> 2 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='资金账户权限初始化失败:平台超级管理员授权不完整';
|
||||
END IF;
|
||||
|
||||
IF (SELECT COUNT(*) FROM iam_role_permission grant_row
|
||||
JOIN iam_role role ON role.id=grant_row.role_id AND role.tenant_id=grant_row.tenant_id
|
||||
JOIN iam_permission permission ON permission.id=grant_row.permission_id
|
||||
WHERE role.tenant_id=0 AND role.app_code='MERCHANT' AND role.role_code='MERCHANT_OWNER'
|
||||
AND role.status='ACTIVE' AND role.deleted=0
|
||||
AND permission.tenant_id=0 AND permission.app_code='MERCHANT'
|
||||
AND permission.status='ACTIVE' AND permission.deleted=0
|
||||
AND permission.permission_code IN (
|
||||
'merchant:finance:account:view',
|
||||
'merchant:finance:recharge:create')) <> 2 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='资金账户权限初始化失败:企业负责人授权不完整';
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL migrate_wallet_permissions();
|
||||
DROP PROCEDURE IF EXISTS migrate_wallet_permissions;
|
||||
Reference in New Issue
Block a user