54 lines
3.0 KiB
SQL
54 lines
3.0 KiB
SQL
-- ============================================================
|
||
-- 应用订阅表
|
||
-- 用于记录用户在应用市场购买/订阅的应用
|
||
-- ============================================================
|
||
|
||
CREATE TABLE IF NOT EXISTS `app_subscription` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
`subscription_no` VARCHAR(64) NOT NULL COMMENT '订阅编号(业务唯一)',
|
||
`user_id` BIGINT NOT NULL COMMENT '购买用户ID',
|
||
`product_id` BIGINT NOT NULL COMMENT '应用产品ID',
|
||
`tenant_id` BIGINT DEFAULT NULL COMMENT '租户ID',
|
||
|
||
-- 订阅状态
|
||
`status` VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT 'pending-待支付, active-生效中, expired-已过期, cancelled-已取消',
|
||
|
||
-- 价格信息
|
||
`price_type` VARCHAR(20) NOT NULL COMMENT 'free-免费, one_time-一次性, subscription-订阅',
|
||
`original_price` DECIMAL(10,2) DEFAULT 0 COMMENT '原价(单位:元)',
|
||
`pay_price` DECIMAL(10,2) DEFAULT 0 COMMENT '实付金额(单位:元)',
|
||
`pay_type` TINYINT DEFAULT 0 COMMENT '支付方式: 0-余额, 1-微信, 2-支付宝, 12-免费',
|
||
`pay_status` TINYINT DEFAULT 0 COMMENT '0-未支付, 1-已支付',
|
||
`pay_time` DATETIME DEFAULT NULL COMMENT '支付时间',
|
||
`transaction_id` VARCHAR(128) DEFAULT NULL COMMENT '第三方交易号',
|
||
|
||
-- 订阅周期
|
||
`subscription_period` VARCHAR(10) DEFAULT NULL COMMENT 'month-按月, year-按年',
|
||
`start_time` DATETIME DEFAULT NULL COMMENT '生效时间',
|
||
`expire_time` DATETIME DEFAULT NULL COMMENT '到期时间(订阅型)',
|
||
`auto_renew` TINYINT DEFAULT 0 COMMENT '是否自动续费 0-否 1-是',
|
||
|
||
-- 应用实例信息(购买后分配)
|
||
`instance_domain` VARCHAR(255) DEFAULT NULL COMMENT '分配的域名',
|
||
`instance_admin_url` VARCHAR(500) DEFAULT NULL COMMENT '实例管理后台URL',
|
||
`instance_config` TEXT DEFAULT NULL COMMENT '实例配置(JSON)',
|
||
|
||
-- 关联支付订单号(复用统一支付)
|
||
`order_no` VARCHAR(64) DEFAULT NULL COMMENT '关联的支付订单号',
|
||
`order_id` BIGINT DEFAULT NULL COMMENT '关联的支付订单ID',
|
||
|
||
-- 通用字段
|
||
`remark` VARCHAR(500) DEFAULT NULL,
|
||
`deleted` TINYINT DEFAULT 0,
|
||
`sort_number` INT DEFAULT 0,
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
|
||
INDEX `idx_user_id` (`user_id`),
|
||
INDEX `idx_product_id` (`product_id`),
|
||
INDEX `idx_subscription_no` (`subscription_no`),
|
||
INDEX `idx_status` (`status`),
|
||
INDEX `idx_tenant_id` (`tenant_id`),
|
||
UNIQUE KEY `uk_user_product_active` (`user_id`, `product_id`, `deleted`) COMMENT '同一用户对同一应用只能有一个有效订阅'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用订阅表';
|