Files
jczxw-pc/docs/sql/app_subscription.sql
2026-04-23 16:30:57 +08:00

54 lines
3.0 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- 应用订阅表
-- 用于记录用户在应用市场购买/订阅的应用
-- ============================================================
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='应用订阅表';