mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
feat: 租户访客策略 SQL、访客邀约验证包、component-org 与发布脚本
- docs/sql: organization_* 与 tenant_* 访客楼层策略脚本 - docs/testing: 访客邀约页初始化验证、pack 脚本与 README(忽略 dist/__pycache__) - maven-ninca-common-component-organization: CpImageStoreServiceImpl、starter、run-verify、releases 脚本与 javap 审计 JSON - docs/superpowers: component-org 生产问题修复计划 - scripts/test-env/prepare-db.sh 更新 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
-- 租户访客默认楼层策略(组织库 component-organization)
|
||||
-- 表结构与电梯库 cw-elevator-application 在 tenant_visitor_floor_policy_v2.sql 之后一致,便于双库同步或备查。
|
||||
-- 设计说明:docs/business/租户访客默认楼层-数据库配置阶段技术设计.md
|
||||
-- 本脚本会先 DROP 再 CREATE:将删除现有 tenant_visitor_floor_policy 及其中全部数据,执行前请自行备份。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
USE `component-organization`;
|
||||
|
||||
DROP TABLE IF EXISTS tenant_visitor_floor_policy;
|
||||
|
||||
CREATE TABLE tenant_visitor_floor_policy (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 已废弃,以 org_id 为准',
|
||||
org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID)',
|
||||
policy_type VARCHAR(32) NOT NULL DEFAULT 'INTERSECT_ALLOWLIST' COMMENT '策略类型',
|
||||
allow_zone_ids TEXT NULL COMMENT 'JSON 数组,zoneId 列表',
|
||||
building_id VARCHAR(64) NULL COMMENT '预留:楼栋维度;租户默认填 NULL',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '1 启用 0 停用',
|
||||
policy_version BIGINT NOT NULL DEFAULT 1 COMMENT '配置版本号',
|
||||
remark VARCHAR(256) NULL,
|
||||
created_by VARCHAR(64) NULL,
|
||||
created_at BIGINT NULL,
|
||||
updated_by VARCHAR(64) NULL,
|
||||
updated_at BIGINT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_org_building (org_id, building_id),
|
||||
KEY idx_business_enabled (business_id, enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户访客默认楼层策略(组织库;与电梯库结构对齐)';
|
||||
@@ -0,0 +1,75 @@
|
||||
-- =============================================================================
|
||||
-- 组织库 component-organization:策略表 + 初始化数据(一站式)
|
||||
-- =============================================================================
|
||||
-- 将先 DROP 现有 tenant_visitor_floor_policy(含全部数据),再建表并灌入种子。执行前请备份。
|
||||
-- 推荐拆分执行:organization_tenant_visitor_floor_policy.sql + 两个 init_*.sql(与下列逻辑同源)。
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
USE `component-organization`;
|
||||
|
||||
DROP TABLE IF EXISTS tenant_visitor_floor_policy;
|
||||
|
||||
CREATE TABLE tenant_visitor_floor_policy (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 已废弃,以 org_id 为准',
|
||||
org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID)',
|
||||
policy_type VARCHAR(32) NOT NULL DEFAULT 'INTERSECT_ALLOWLIST' COMMENT '策略类型',
|
||||
allow_zone_ids TEXT NULL COMMENT 'JSON 数组,zoneId 列表',
|
||||
building_id VARCHAR(64) NULL COMMENT '预留:楼栋维度;租户默认填 NULL',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '1 启用 0 停用',
|
||||
policy_version BIGINT NOT NULL DEFAULT 1 COMMENT '配置版本号',
|
||||
remark VARCHAR(256) NULL,
|
||||
created_by VARCHAR(64) NULL,
|
||||
created_at BIGINT NULL,
|
||||
updated_by VARCHAR(64) NULL,
|
||||
updated_at BIGINT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_org_building (org_id, building_id),
|
||||
KEY idx_business_enabled (business_id, enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户访客默认楼层策略(组织库;与电梯库结构对齐)';
|
||||
|
||||
-- ----- 广发 -----
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, org_id, business_id, policy_type, allow_zone_ids, building_id,
|
||||
enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'gf_vstr_policy_guangfa_fund_001x',
|
||||
'488b8ad049bb43408a6fbcc50bcb89ac',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008"]',
|
||||
NULL,
|
||||
1, 1,
|
||||
'广发基金:访客与 floorList 求交后仅保留 allowlist(默认仅 28F zone)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
org_id = VALUES(org_id),
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ----- 物业 7 条 -----
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES
|
||||
('pm_6f_vstr_policy_001','2524639890ba4f2cba9ba1a4eeaa4015','64fdc8eaf5824df5a1329819af29b79f','INTERSECT_ALLOWLIST','["605560541473144832"]',NULL,1,1,'星河湾物业管理有限公司:访客默认仅开放 6F。',UNIX_TIMESTAMP(NOW())*1000,UNIX_TIMESTAMP(NOW())*1000),
|
||||
('pm_6f_vstr_policy_002','2524639890ba4f2cba9ba1a4eeaa4015','8fc3f910bd834198a539832017fe920e','INTERSECT_ALLOWLIST','["605560541473144832"]',NULL,1,1,'星河湾物业管理公司:访客默认仅开放 6F。',UNIX_TIMESTAMP(NOW())*1000,UNIX_TIMESTAMP(NOW())*1000),
|
||||
('pm_6f_vstr_policy_003','2524639890ba4f2cba9ba1a4eeaa4015','cc760fdf9c384a0cbf4951ccf2c6452e','INTERSECT_ALLOWLIST','["605560541473144832"]',NULL,1,1,'星河湾物管公司:访客默认仅开放 6F。',UNIX_TIMESTAMP(NOW())*1000,UNIX_TIMESTAMP(NOW())*1000),
|
||||
('pm_6f_vstr_policy_004','2524639890ba4f2cba9ba1a4eeaa4015','f216235e54ca42bfa0379e69b3754aff','INTERSECT_ALLOWLIST','["605560541473144832"]',NULL,1,1,'星中心物业管理公司:访客默认仅开放 6F。',UNIX_TIMESTAMP(NOW())*1000,UNIX_TIMESTAMP(NOW())*1000),
|
||||
('pm_6f_vstr_policy_005','2524639890ba4f2cba9ba1a4eeaa4015','95818575a2284db6833289474d33671f','INTERSECT_ALLOWLIST','["605560541473144832"]',NULL,1,1,'星中心物业服务中心:访客默认仅开放 6F。',UNIX_TIMESTAMP(NOW())*1000,UNIX_TIMESTAMP(NOW())*1000),
|
||||
('pm_6f_vstr_policy_006','2524639890ba4f2cba9ba1a4eeaa4015','348328d755624b3491cd307a3109f36a','INTERSECT_ALLOWLIST','["605560541473144832"]',NULL,1,1,'星中心物管公司:访客默认仅开放 6F。',UNIX_TIMESTAMP(NOW())*1000,UNIX_TIMESTAMP(NOW())*1000),
|
||||
('pm_6f_vstr_policy_007','2524639890ba4f2cba9ba1a4eeaa4015','dde6cc9a4f6b4f5490d03e26fb016200','INTERSECT_ALLOWLIST','["605560541473144832"]',NULL,1,1,'物业管理总部:访客默认仅开放 6F。',UNIX_TIMESTAMP(NOW())*1000,UNIX_TIMESTAMP(NOW())*1000)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
@@ -0,0 +1,46 @@
|
||||
-- 广发基金租户:访客默认楼层策略初始化(组织库 component-organization)
|
||||
-- 与 tenant_visitor_floor_policy_init_guangfa_fund.sql(电梯库)数据一致,便于双库对齐。
|
||||
-- 请先执行 organization_tenant_visitor_floor_policy.sql(会先 DROP 再 CREATE 表)。
|
||||
--
|
||||
-- 数据来源(现场查询 192.168.3.12:3307):
|
||||
-- org_id:component-organization.cw_is_organization
|
||||
-- NAME='[28-38F]广发基金管理有限公司' -> ID = 488b8ad049bb43408a6fbcc50bcb89ac
|
||||
-- 28F zone_id:cw-elevator-application.code_elevator_area
|
||||
-- zone_id = 605560545117995008(zone_name=28F,code=0x1C)
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
USE `component-organization`;
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id,
|
||||
org_id,
|
||||
business_id,
|
||||
policy_type,
|
||||
allow_zone_ids,
|
||||
building_id,
|
||||
enabled,
|
||||
policy_version,
|
||||
remark,
|
||||
created_at,
|
||||
updated_at
|
||||
) VALUES (
|
||||
'gf_vstr_policy_guangfa_fund_001x',
|
||||
'488b8ad049bb43408a6fbcc50bcb89ac',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008"]',
|
||||
NULL,
|
||||
1,
|
||||
1,
|
||||
'广发基金:访客与 floorList 求交后仅保留 allowlist(默认仅 28F zone)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
org_id = VALUES(org_id),
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
@@ -0,0 +1,158 @@
|
||||
-- 物业公司租户:访客默认楼层策略初始化(组织库 component-organization)
|
||||
-- 与 tenant_visitor_floor_policy_init_property_mgmt_6f.sql(电梯库)数据一致。
|
||||
-- 请先执行 organization_tenant_visitor_floor_policy.sql(会先 DROP 再 CREATE 表)。
|
||||
--
|
||||
-- 数据来源(192.168.3.12:3307):
|
||||
-- org_id:component-organization.cw_is_organization(下列 NAME → ID)
|
||||
-- 6F zone_id:cw-elevator-application.code_elevator_area → 605560541473144832(code=0x06)
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
USE `component-organization`;
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_001',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'64fdc8eaf5824df5a1329819af29b79f',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物业管理有限公司:访客默认仅开放 6F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_002',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'8fc3f910bd834198a539832017fe920e',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物业管理公司:访客默认仅开放 6F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_003',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'cc760fdf9c384a0cbf4951ccf2c6452e',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物管公司:访客默认仅开放 6F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_004',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'f216235e54ca42bfa0379e69b3754aff',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物业管理公司:访客默认仅开放 6F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_005',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'95818575a2284db6833289474d33671f',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物业服务中心:访客默认仅开放 6F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_006',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'348328d755624b3491cd307a3109f36a',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物管公司:访客默认仅开放 6F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_007',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'dde6cc9a4f6b4f5490d03e26fb016200',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'物业管理总部:访客默认仅开放 6F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
@@ -0,0 +1,26 @@
|
||||
-- 组织库:从「仅 business_id 版」升级到 org_id 版(与电梯库 tenant_visitor_floor_policy_v2.sql 等价,仅库名不同)
|
||||
-- 使用场景:早期已在 component-organization 建过无 org_id 的 tenant_visitor_floor_policy,需原地升级。
|
||||
-- 若改用 organization_tenant_visitor_floor_policy.sql(内含 DROP+CREATE),请勿再执行本文件。
|
||||
|
||||
USE `component-organization`;
|
||||
|
||||
-- 1. 新增 org_id 列
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
ADD COLUMN org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID)'
|
||||
AFTER business_id;
|
||||
|
||||
-- 2. 替换唯一约束
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
DROP INDEX uk_biz_building,
|
||||
ADD UNIQUE KEY uk_org_building (org_id, building_id);
|
||||
|
||||
-- 3. 标记 business_id 为废弃
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
MODIFY COLUMN business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 已废弃,以 org_id 为准';
|
||||
|
||||
-- 验证
|
||||
SELECT COLUMN_NAME, COLUMN_KEY, COLUMN_COMMENT
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = 'component-organization'
|
||||
AND TABLE_NAME = 'tenant_visitor_floor_policy'
|
||||
ORDER BY ORDINAL_POSITION;
|
||||
@@ -1,9 +1,23 @@
|
||||
-- 租户访客默认楼层策略(电梯应用库)
|
||||
-- 租户访客默认楼层策略(电梯应用库 cw-elevator-application)
|
||||
-- 设计说明:docs/business/租户访客默认楼层-数据库配置阶段技术设计.md
|
||||
--
|
||||
-- 本脚本会先 DROP 再 CREATE:删除现有 tenant_visitor_floor_policy 及全部历史数据,然后按 v2 后最终结构建空表。
|
||||
-- 执行前请备份;若仅需 ALTER 升级旧表而不删数据,请改用 tenant_visitor_floor_policy_v2.sql(勿与本脚本混用)。
|
||||
--
|
||||
-- 连接方式任选其一:
|
||||
-- mysql -h ... -u ... -p... cw-elevator-application < tenant_visitor_floor_policy.sql
|
||||
-- 或在本文件中依赖下方 USE(手工客户端执行时)。
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tenant_visitor_floor_policy (
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
USE `cw-elevator-application`;
|
||||
|
||||
DROP TABLE IF EXISTS tenant_visitor_floor_policy;
|
||||
|
||||
CREATE TABLE tenant_visitor_floor_policy (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
business_id VARCHAR(64) NOT NULL COMMENT '机构/租户 ID',
|
||||
business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 已废弃,以 org_id 为准',
|
||||
org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID)',
|
||||
policy_type VARCHAR(32) NOT NULL DEFAULT 'INTERSECT_ALLOWLIST' COMMENT '策略类型',
|
||||
allow_zone_ids TEXT NULL COMMENT 'JSON 数组,zoneId 列表',
|
||||
building_id VARCHAR(64) NULL COMMENT '预留:楼栋维度;租户默认填 NULL',
|
||||
@@ -15,13 +29,6 @@ CREATE TABLE IF NOT EXISTS tenant_visitor_floor_policy (
|
||||
updated_by VARCHAR(64) NULL,
|
||||
updated_at BIGINT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_biz_building (business_id, building_id),
|
||||
UNIQUE KEY uk_org_building (org_id, building_id),
|
||||
KEY idx_business_enabled (business_id, enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户访客默认楼层策略(与组织 floorList 求交)';
|
||||
|
||||
-- 示例(实施时替换占位符后执行)
|
||||
-- INSERT INTO tenant_visitor_floor_policy
|
||||
-- (id, business_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, remark, created_at, updated_at)
|
||||
-- VALUES
|
||||
-- (REPLACE(UUID(),'-',''), 'REPLACE_WITH_BUSINESS_ID', 'INTERSECT_ALLOWLIST',
|
||||
-- '["REPLACE_ZONE_A","REPLACE_ZONE_B"]', NULL, 1, 1, '实施录入', UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000);
|
||||
|
||||
@@ -10,9 +10,12 @@
|
||||
-- zone_id = 605560545117995008(zone_name=28F,code=0x1C)
|
||||
--
|
||||
-- 重复执行:使用固定 id + ON DUPLICATE KEY UPDATE,幂等。
|
||||
-- 请先执行 tenant_visitor_floor_policy.sql(会先 DROP 再建表)。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
USE `cw-elevator-application`;
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id,
|
||||
org_id,
|
||||
|
||||
@@ -14,9 +14,12 @@
|
||||
-- zone_id = 605560541473144832(code=0x06)
|
||||
--
|
||||
-- 重复执行:使用固定 id + ON DUPLICATE KEY UPDATE。
|
||||
-- 请先执行 tenant_visitor_floor_policy.sql(会先 DROP 再建表)。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
USE `cw-elevator-application`;
|
||||
|
||||
-- ============================================================
|
||||
-- 1. 星河湾物业管理有限公司
|
||||
-- ============================================================
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
-- 租户访客楼层策略:org_id 粒度修复
|
||||
-- 执行顺序:先 DDL → 数据迁移 → 发应用包
|
||||
-- 租户访客楼层策略:org_id 粒度修复(原地 ALTER,不删表)
|
||||
-- 若已执行新版 tenant_visitor_floor_policy.sql(内含 DROP+CREATE 完整结构),请勿再执行本文件。
|
||||
-- 执行顺序(历史流程):先 DDL → 数据迁移 → 发应用包
|
||||
-- 回滚:DROP INDEX uk_org_building, DROP COLUMN org_id, ADD UNIQUE KEY uk_biz_building (business_id, building_id)
|
||||
|
||||
USE `cw-elevator-application`;
|
||||
|
||||
Reference in New Issue
Block a user