|
|
@@ -19,9 +19,6 @@ DROP TABLE IF EXISTS `t_payment_order`;
|
|
|
DROP TABLE IF EXISTS `t_payment_plan`;
|
|
|
DROP TABLE IF EXISTS `t_watchlist`;
|
|
|
DROP TABLE IF EXISTS `t_search_history`;
|
|
|
-DROP TABLE IF EXISTS `t_user_level_version_relation`;
|
|
|
-DROP TABLE IF EXISTS `t_user_level_detail`;
|
|
|
-DROP TABLE IF EXISTS `t_user_level_config_version`;
|
|
|
DROP TABLE IF EXISTS `t_operation_audit_log`;
|
|
|
DROP TABLE IF EXISTS `t_trial_quota_config`;
|
|
|
DROP TABLE IF EXISTS `t_business_license`;
|
|
|
@@ -89,7 +86,7 @@ CREATE TABLE IF NOT EXISTS `t_user_membership` (
|
|
|
CREATE TABLE IF NOT EXISTS `t_membership_benefit` (
|
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
`level` VARCHAR(20) NOT NULL COMMENT '会员等级:PLUS/PRO/ULTRA',
|
|
|
- `benefit_type` VARCHAR(32) NOT NULL COMMENT '权益类型:DAILY_QUOTA-每日加成 MONTHLY_QUOTA-每月加成 MAX_CONCURRENT-并发加成',
|
|
|
+ `benefit_type` VARCHAR(32) NOT NULL COMMENT '权益类型:DAILY_QUOTA-每日加成 MONTHLY_QUOTA-每月加成 YEARLY_QUOTA-每年加成 MAX_CONCURRENT-并发加成',
|
|
|
`benefit_value` INT NOT NULL DEFAULT 0 COMMENT '权益数值',
|
|
|
`description` VARCHAR(256) DEFAULT NULL COMMENT '权益说明',
|
|
|
`status` INT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用 1-启用',
|
|
|
@@ -243,12 +240,15 @@ CREATE TABLE IF NOT EXISTS `t_crawler_quota_grant` (
|
|
|
INSERT INTO `t_membership_benefit` (`level`, `benefit_type`, `benefit_value`, `description`)
|
|
|
VALUES
|
|
|
('PLUS', 'DAILY_QUOTA', 10, '普通会员:每日有效查询10次'),
|
|
|
- ('PLUS', 'MONTHLY_QUOTA', 200, '普通会员:每月查询200次'),
|
|
|
+ ('PLUS', 'MONTHLY_QUOTA', 300, '普通会员:每月查询300次'),
|
|
|
+ ('PLUS', 'YEARLY_QUOTA', 3650, '普通会员:每年查询3650次(10*365)'),
|
|
|
('PRO', 'DAILY_QUOTA', 999, '高级会员:每日不限量(最高999次)'),
|
|
|
- ('PRO', 'MONTHLY_QUOTA', 20000, '高级会员:每月查询20000次'),
|
|
|
+ ('PRO', 'MONTHLY_QUOTA', 29970, '高级会员:每月查询29970次(999*30)'),
|
|
|
+ ('PRO', 'YEARLY_QUOTA', 364635, '高级会员:每年查询364635次(999*365)'),
|
|
|
('PRO', 'MAX_CONCURRENT', 5, '高级会员最大并发数'),
|
|
|
('ULTRA', 'DAILY_QUOTA', 999, '超级会员:每日不限量'),
|
|
|
- ('ULTRA', 'MONTHLY_QUOTA', 99999, '超级会员:每月查询99999次'),
|
|
|
+ ('ULTRA', 'MONTHLY_QUOTA', 29970, '超级会员:每月查询29970次(999*30)'),
|
|
|
+ ('ULTRA', 'YEARLY_QUOTA', 364635, '超级会员:每年查询364635次(999*365)'),
|
|
|
('ULTRA', 'MAX_CONCURRENT', 10, '超级会员最大并发数')
|
|
|
ON DUPLICATE KEY UPDATE
|
|
|
`benefit_value` = VALUES(`benefit_value`),
|
|
|
@@ -423,73 +423,6 @@ CREATE TABLE IF NOT EXISTS `t_trial_quota_config` (
|
|
|
KEY `idx_effective_time` (`effective_from`, `effective_to`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='体验配额配置表';
|
|
|
|
|
|
--- ============================================
|
|
|
--- 用户等级版本管理相关表
|
|
|
--- ============================================
|
|
|
-
|
|
|
--- 用户等级配置版本表
|
|
|
-CREATE TABLE IF NOT EXISTS `t_user_level_config_version` (
|
|
|
- `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
- `version` VARCHAR(20) NOT NULL COMMENT '版本号(如:v1.0, v2.0)',
|
|
|
- `version_name` VARCHAR(100) NOT NULL COMMENT '版本名称',
|
|
|
- `is_current` TINYINT(1) DEFAULT 0 COMMENT '是否为当前激活版本',
|
|
|
- `effective_from` DATETIME DEFAULT NULL COMMENT '生效开始时间',
|
|
|
- `effective_to` DATETIME DEFAULT NULL COMMENT '生效结束时间',
|
|
|
- `status` VARCHAR(20) DEFAULT 'DRAFT' COMMENT '状态:DRAFT/ACTIVE/INACTIVE',
|
|
|
- `change_log` TEXT DEFAULT NULL COMMENT '变更说明',
|
|
|
- `created_by` BIGINT DEFAULT NULL COMMENT '创建人ID',
|
|
|
- `activated_by` BIGINT DEFAULT NULL COMMENT '激活人ID',
|
|
|
- `activated_at` DATETIME DEFAULT NULL COMMENT '激活时间',
|
|
|
- `user_count` INT DEFAULT 0 COMMENT '关联的用户数量',
|
|
|
- `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
- PRIMARY KEY (`id`),
|
|
|
- UNIQUE KEY `uk_version` (`version`),
|
|
|
- KEY `idx_is_current` (`is_current`),
|
|
|
- KEY `idx_status` (`status`)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户等级配置版本表';
|
|
|
-
|
|
|
--- 用户等级明细表
|
|
|
-CREATE TABLE IF NOT EXISTS `t_user_level_detail` (
|
|
|
- `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
- `config_version_id` BIGINT NOT NULL COMMENT '所属配置版本ID',
|
|
|
- `level_name` VARCHAR(50) NOT NULL COMMENT '等级名称',
|
|
|
- `level_code` VARCHAR(20) NOT NULL COMMENT '等级编码',
|
|
|
- `level_weight` INT NOT NULL COMMENT '等级权重',
|
|
|
- `daily_quota` INT NOT NULL COMMENT '每日爬虫次数配额',
|
|
|
- `monthly_quota` INT NOT NULL COMMENT '每月爬虫次数配额',
|
|
|
- `max_concurrent` INT NOT NULL COMMENT '最大并发爬虫数',
|
|
|
- `monthly_watchlist_limit` INT DEFAULT NULL COMMENT '每月关注品种数限制',
|
|
|
- `description` VARCHAR(500) DEFAULT NULL COMMENT '等级描述',
|
|
|
- `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0-禁用 1-启用',
|
|
|
- `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
- PRIMARY KEY (`id`),
|
|
|
- KEY `idx_config_version_id` (`config_version_id`),
|
|
|
- KEY `idx_level_code` (`level_code`),
|
|
|
- UNIQUE KEY `uk_version_level` (`config_version_id`, `level_code`)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户等级明细表';
|
|
|
-
|
|
|
--- 用户等级版本关联表
|
|
|
-CREATE TABLE IF NOT EXISTS `t_user_level_version_relation` (
|
|
|
- `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
- `user_id` BIGINT NOT NULL COMMENT '用户ID',
|
|
|
- `config_version_id` BIGINT NOT NULL COMMENT '当前使用的配置版本ID',
|
|
|
- `level_detail_id` BIGINT NOT NULL COMMENT '当前等级ID',
|
|
|
- `level_code` VARCHAR(20) NOT NULL COMMENT '当前等级编码(冗余)',
|
|
|
- `from_version_id` BIGINT DEFAULT NULL COMMENT '迁移来源版本ID',
|
|
|
- `migrate_reason` VARCHAR(50) DEFAULT NULL COMMENT '迁移原因:AUTO_REGISTER/MANUAL_MIGRATE/BATCH_MIGRATE',
|
|
|
- `migrated_by` BIGINT DEFAULT NULL COMMENT '迁移操作人ID',
|
|
|
- `migrated_at` DATETIME DEFAULT NULL COMMENT '迁移时间',
|
|
|
- `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注说明',
|
|
|
- `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
- PRIMARY KEY (`id`),
|
|
|
- UNIQUE KEY `uk_user_id` (`user_id`),
|
|
|
- KEY `idx_config_version_id` (`config_version_id`),
|
|
|
- KEY `idx_level_code` (`level_code`)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户等级版本关联表';
|
|
|
-
|
|
|
-- ============================================
|
|
|
-- 操作审计日志表
|
|
|
-- ============================================
|
|
|
@@ -595,31 +528,6 @@ ON DUPLICATE KEY UPDATE
|
|
|
`enabled` = VALUES(`enabled`),
|
|
|
`description` = VALUES(`description`);
|
|
|
|
|
|
--- 初始化MVP初始等级配置版本(v1.0)
|
|
|
-INSERT INTO `t_user_level_config_version` (`version`, `version_name`, `is_current`, `status`, `change_log`, `user_count`)
|
|
|
-VALUES
|
|
|
- ('v1.0', 'MVP初始版本', 1, 'ACTIVE', '项目上线初始版本,包含3个会员等级:普通会员(PLUS)、高级会员(PRO)、超级会员(ULTRA)', 0)
|
|
|
-ON DUPLICATE KEY UPDATE
|
|
|
- `version_name` = VALUES(`version_name`),
|
|
|
- `is_current` = VALUES(`is_current`),
|
|
|
- `status` = VALUES(`status`),
|
|
|
- `change_log` = VALUES(`change_log`);
|
|
|
-
|
|
|
--- 初始化v1.0版本的等级明细(与会员权益表保持一致)
|
|
|
-INSERT INTO `t_user_level_detail` (`config_version_id`, `level_name`, `level_code`, `level_weight`, `daily_quota`, `monthly_quota`, `max_concurrent`, `monthly_watchlist_limit`, `description`)
|
|
|
-VALUES
|
|
|
- (1, '普通会员', 'PLUS', 1, 10, 200, 1, 100, '普通会员:每日有效查询10次'),
|
|
|
- (1, '高级会员', 'PRO', 2, 999, 20000, 5, 500, '高级会员:每日不限量(最高999次)'),
|
|
|
- (1, '超级会员', 'ULTRA', 3, 999, 99999, 10, 9999, '超级会员:连锁专用,多店铺管理')
|
|
|
-ON DUPLICATE KEY UPDATE
|
|
|
- `level_name` = VALUES(`level_name`),
|
|
|
- `level_weight` = VALUES(`level_weight`),
|
|
|
- `daily_quota` = VALUES(`daily_quota`),
|
|
|
- `monthly_quota` = VALUES(`monthly_quota`),
|
|
|
- `max_concurrent` = VALUES(`max_concurrent`),
|
|
|
- `monthly_watchlist_limit` = VALUES(`monthly_watchlist_limit`),
|
|
|
- `description` = VALUES(`description`);
|
|
|
-
|
|
|
-- 初始化邀请配置(奖励类型为赠送会员时长:邀请人送1个月,被邀请人送5次爬虫+2个月普通会员)
|
|
|
INSERT INTO `t_invite_config` (`id`, `reward_type`, `reward_months`, `reward_crawler_count`, `max_daily_reward`, `invite_code_expire_days`, `max_invite_per_day`, `landing_title`, `landing_desc`, `app_name`, `status`)
|
|
|
VALUES
|