fix: order wallet database assertions
This commit is contained in:
@@ -16531,8 +16531,6 @@ BEGIN
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL assert_finance_permissions();
|
||||
DROP PROCEDURE IF EXISTS assert_finance_permissions;
|
||||
|
||||
-- IAM 跨区安全事件可靠发送箱。来源:iam/src/main/resources/db/security-event-outbox.sql
|
||||
USE baiyue_iam;
|
||||
@@ -17602,12 +17600,6 @@ DELIMITER ;
|
||||
CALL baiyue_firstleg.ensure_smart_loading_candidate_indexes();
|
||||
DROP PROCEDURE IF EXISTS baiyue_firstleg.ensure_smart_loading_candidate_indexes;
|
||||
|
||||
CALL baiyue_firstleg.assert_unified_final_schema();
|
||||
DROP PROCEDURE IF EXISTS baiyue_firstleg.assert_unified_final_schema;
|
||||
SELECT 'PASS' AS migration_status,
|
||||
'统一增量全部执行完成;父子订单、履约分片、装柜门禁、订舱拖车、报关船期、船司查询、仓库角色、费用、Finance人工财务、公共资源、可靠审计及IAM安全事件结构校验通过' AS message;
|
||||
|
||||
|
||||
-- 一件代发客户资金账户:实际余额优先,授信额度补足;冻结后结算或解冻。
|
||||
USE baiyue_finance;
|
||||
CREATE TABLE IF NOT EXISTS fin_wallet_account (
|
||||
@@ -17873,7 +17865,9 @@ DELIMITER ;
|
||||
CALL migrate_wallet_permissions();
|
||||
DROP PROCEDURE IF EXISTS migrate_wallet_permissions;
|
||||
|
||||
SELECT '统一增量全部执行完成;父子订单、履约分片、装柜门禁、订舱拖车、报关船期、船司查询、仓库角色、费用、Finance人工财务、客户资金账户、公共资源、可靠审计及IAM安全事件结构校验通过' AS message;
|
||||
-- 钱包写权限属于 Finance 权限总数的一部分,必须先完成钱包权限迁移再做总量断言。
|
||||
CALL assert_finance_permissions();
|
||||
DROP PROCEDURE IF EXISTS assert_finance_permissions;
|
||||
|
||||
USE baiyue_finance;
|
||||
|
||||
@@ -17911,3 +17905,27 @@ CREATE TABLE IF NOT EXISTS fin_wallet_event_outbox (
|
||||
UNIQUE KEY uk_fin_wallet_event_key (event_key),
|
||||
KEY idx_fin_wallet_event_publish (status,next_retry_at,created_at)
|
||||
) ENGINE=InnoDB COMMENT='国内Finance到海外资金结果可靠发送箱';
|
||||
|
||||
DROP PROCEDURE IF EXISTS assert_wallet_event_schema;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE assert_wallet_event_schema()
|
||||
BEGIN
|
||||
IF (SELECT COUNT(*) FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA='baiyue_finance'
|
||||
AND TABLE_NAME IN ('fin_wallet_command_inbox','fin_wallet_event_outbox')) <> 2 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:客户资金跨区事件表不完整';
|
||||
END IF;
|
||||
IF (SELECT COUNT(*) FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA='baiyue_finance' AND TABLE_NAME='fin_wallet_event_outbox'
|
||||
AND INDEX_NAME='uk_fin_wallet_event_key' AND NON_UNIQUE=0) <> 1 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:客户资金结果事件幂等索引不完整';
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL assert_wallet_event_schema();
|
||||
DROP PROCEDURE IF EXISTS assert_wallet_event_schema;
|
||||
|
||||
CALL baiyue_firstleg.assert_unified_final_schema();
|
||||
DROP PROCEDURE IF EXISTS baiyue_firstleg.assert_unified_final_schema;
|
||||
SELECT 'PASS' AS migration_status,
|
||||
'统一增量全部执行完成;父子订单、履约分片、装柜门禁、订舱拖车、报关船期、船司查询、仓库角色、费用、Finance人工财务、客户资金账户、公共资源、可靠审计及IAM安全事件结构校验通过' AS message;
|
||||
|
||||
@@ -45,5 +45,10 @@ class FinanceContractTest {
|
||||
assertTrue(unified.contains("CREATE DATABASE IF NOT EXISTS baiyue_finance"));
|
||||
assertTrue(unified.contains("assert_finance_permissions"));
|
||||
assertTrue(unified.contains("merchant:finance:statement:view"));
|
||||
int walletEventSchema = unified.indexOf("CREATE TABLE IF NOT EXISTS fin_wallet_event_outbox");
|
||||
int finalPass = unified.lastIndexOf("SELECT 'PASS' AS migration_status");
|
||||
assertTrue(walletEventSchema >= 0);
|
||||
assertTrue(finalPass > walletEventSchema);
|
||||
assertTrue(unified.contains("CREATE PROCEDURE assert_wallet_event_schema()"));
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -66,7 +66,9 @@ class AdminPrototypeMenuPermissionSqlContractTest {
|
||||
.contains("客户全局 Finance 权限模板不完整")
|
||||
.contains("客户全局管理员 Finance 模板授权不完整")
|
||||
.satisfies(content -> assertThat(content.indexOf("(5105050,0,'PLATFORM','BUTTON'"))
|
||||
.isLessThan(content.indexOf("CREATE PROCEDURE assert_finance_permissions()")));
|
||||
.isLessThan(content.indexOf("CREATE PROCEDURE assert_finance_permissions()")))
|
||||
.satisfies(content -> assertThat(content.indexOf("CALL migrate_wallet_permissions();"))
|
||||
.isLessThan(content.indexOf("CALL assert_finance_permissions();")));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user