All checks were successful
Build and Deploy / deploy (push) Successful in 1m0s
分区明细独立版本化并缓存加载,计费包缺失严格失败;同步态接口不再拉全文。 Co-authored-by: Cursor <cursoragent@cursor.com>
57 lines
3.5 KiB
SQL
57 lines
3.5 KiB
SQL
-- 分区包发布表(价区 / 黑名单 / 偏远):卖价/规则发布钉包,计费按 version 加载
|
||
SET @db := DATABASE();
|
||
|
||
SET @tbl := (
|
||
SELECT COUNT(1)
|
||
FROM information_schema.TABLES
|
||
WHERE TABLE_SCHEMA = @db
|
||
AND TABLE_NAME = 't_kpi_area_publish_record'
|
||
);
|
||
SET @sql := IF(
|
||
@tbl = 0,
|
||
'CREATE TABLE `t_kpi_area_publish_record` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT ''主键'',
|
||
`AreaId` INT NOT NULL COMMENT ''所属分区表 t_kpi_area.Id'',
|
||
`AreaType` VARCHAR(32) NOT NULL COMMENT ''分区类型:price=价格分区,blacklist=黑名单,remote=偏远'',
|
||
`Version` VARCHAR(32) NOT NULL COMMENT ''包版本号(yyyyMMddHHmmssfff)'',
|
||
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT ''状态:1=生效 Active,2=失效 Inactive'',
|
||
`ContentHash` VARCHAR(64) NOT NULL COMMENT ''规范化分区明细 Content 的 SHA256(hex),同 AreaId+Hash 去重复用'',
|
||
`Content` JSON NULL COMMENT ''分区明细快照 JSON(KpiAreaSnapshotRuleDto 数组)'',
|
||
`PublishUser` VARCHAR(64) NOT NULL DEFAULT '''' COMMENT ''发布人'',
|
||
`PublishTime` DATETIME NOT NULL COMMENT ''发布时间'',
|
||
`Description` VARCHAR(512) NULL COMMENT ''发布说明'',
|
||
`IsDeleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''软删除:0=否,1=是'',
|
||
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT ''创建人'',
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ''创建时间'',
|
||
`UpdateUserId` INT NULL COMMENT ''更新人'',
|
||
`UpdateTime` DATETIME NULL COMMENT ''更新时间'',
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_kpi_pack_area_hash` (`AreaId`, `ContentHash`),
|
||
KEY `idx_kpi_pack_area_ver` (`AreaId`, `Version`),
|
||
KEY `idx_kpi_pack_area_type_time` (`AreaId`, `AreaType`, `PublishTime`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=''KPI分区发布包(价区/黑名单/偏远明细不可变快照)''',
|
||
'SELECT ''t_kpi_area_publish_record already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql;
|
||
EXECUTE stmt;
|
||
DEALLOCATE PREPARE stmt;
|
||
|
||
-- 表已存在时回填表/字段注释(可重复执行;不包进 PREPARE)
|
||
ALTER TABLE `t_kpi_area_publish_record`
|
||
COMMENT = 'KPI分区发布包(价区/黑名单/偏远明细不可变快照)',
|
||
MODIFY COLUMN `Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
MODIFY COLUMN `AreaId` INT NOT NULL COMMENT '所属分区表 t_kpi_area.Id',
|
||
MODIFY COLUMN `AreaType` VARCHAR(32) NOT NULL COMMENT '分区类型:price=价格分区,blacklist=黑名单,remote=偏远',
|
||
MODIFY COLUMN `Version` VARCHAR(32) NOT NULL COMMENT '包版本号(yyyyMMddHHmmssfff)',
|
||
MODIFY COLUMN `Status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1=生效 Active,2=失效 Inactive',
|
||
MODIFY COLUMN `ContentHash` VARCHAR(64) NOT NULL COMMENT '规范化分区明细 Content 的 SHA256(hex),同 AreaId+Hash 去重复用',
|
||
MODIFY COLUMN `Content` JSON NULL COMMENT '分区明细快照 JSON(KpiAreaSnapshotRuleDto 数组)',
|
||
MODIFY COLUMN `PublishUser` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '发布人',
|
||
MODIFY COLUMN `PublishTime` DATETIME NOT NULL COMMENT '发布时间',
|
||
MODIFY COLUMN `Description` VARCHAR(512) NULL COMMENT '发布说明',
|
||
MODIFY COLUMN `IsDeleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除:0=否,1=是',
|
||
MODIFY COLUMN `CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
|
||
MODIFY COLUMN `CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
MODIFY COLUMN `UpdateUserId` INT NULL COMMENT '更新人',
|
||
MODIFY COLUMN `UpdateTime` DATETIME NULL COMMENT '更新时间';
|