This commit is contained in:
2026-01-12 16:43:08 +08:00
parent dc747139c9
commit 3c6e2683f5
110 changed files with 9630 additions and 481 deletions

View File

@@ -0,0 +1,44 @@
-- ============================================
-- 用户模块白名单表 - 创建表
-- ============================================
-- 说明:创建 user_feature_whitelist 表用于记录用户身份证号对应的feature屏蔽白名单
-- 执行时间2024-XX-XX
-- ============================================
CREATE TABLE `user_feature_whitelist` (
`id` CHAR(36) NOT NULL COMMENT 'UUID主键',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`del_state` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态0=未删除1=已删除',
`version` bigint NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)',
/* 业务字段 */
`id_card` varchar(50) NOT NULL COMMENT '身份证号(查询对象标识)',
`feature_id` CHAR(36) NOT NULL COMMENT 'Feature的UUID',
`feature_api_id` varchar(100) NOT NULL COMMENT 'Feature的API标识冗余字段方便查询',
`user_id` CHAR(36) NOT NULL COMMENT '操作用户ID代理的user_id以后可扩展为普通用户',
`order_id` CHAR(36) DEFAULT NULL COMMENT '关联的查询订单ID可选记录来源',
`whitelist_order_id` CHAR(36) DEFAULT NULL COMMENT '关联的白名单订单ID用于付费',
`amount` decimal(10,2) NOT NULL COMMENT '费用(单位:元)',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1=生效2=已失效',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_id_card_feature_id` (`id_card`, `feature_id`, `del_state`) COMMENT '身份证号和feature_id联合唯一索引',
UNIQUE KEY `uk_id_card_feature_api_id` (`id_card`, `feature_api_id`, `del_state`) COMMENT '身份证号和feature_api_id联合唯一索引',
UNIQUE KEY `uk_whitelist_order_id` (`whitelist_order_id`) COMMENT '白名单订单ID唯一索引',
KEY `idx_id_card` (`id_card`) COMMENT '优化按身份证号查询',
KEY `idx_feature_id` (`feature_id`) COMMENT '优化按feature查询',
KEY `idx_feature_api_id` (`feature_api_id`) COMMENT '优化按API标识查询',
KEY `idx_user_id` (`user_id`) COMMENT '优化按用户查询',
KEY `idx_status` (`status`) COMMENT '优化按状态查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户模块白名单表';
-- ============================================
-- 说明:
-- 1. 以身份证号id_card+ feature_id 为单位,记录白名单屏蔽关系
-- 2. user_id 使用操作用户的ID代理的user_id便于以后扩展为普通用户操作
-- 3. status=1表示生效status=2表示已失效可手动失效或系统失效
-- 4. 一旦生效,该身份证号+feature组合永久屏蔽除非手动失效
-- ============================================