Files
1818web-hoduan/1818ai.sql

1140 lines
79 KiB
MySQL
Raw Permalink Normal View History

2026-02-13 18:18:20 +08:00
/*
Navicat Premium Dump SQL
Source Server : 116.62.4.26
Source Server Type : MySQL
Source Server Version : 50740 (5.7.40-log)
Source Host : 116.62.4.26:3306
Source Schema : 1818ai
Target Server Type : MySQL
Target Server Version : 50740 (5.7.40-log)
File Encoding : 65001
Date: 06/12/2025 15:20:26
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for admin_user
-- ----------------------------
DROP TABLE IF EXISTS `admin_user`;
CREATE TABLE `admin_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '管理员用户名',
`password_hash` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '哈希后的密码',
`role` tinyint(4) NOT NULL COMMENT '角色0工作人员/1管理员',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for ai_task
-- ----------------------------
DROP TABLE IF EXISTS `ai_task`;
CREATE TABLE `ai_task` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`task_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务编号 (系统生成的唯一ID)',
`user_id` bigint(20) NOT NULL COMMENT '关联的用户ID',
`model_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求的模型名称 (如: sora_image)',
`task_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务类型 (image/video)',
`provider_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'AI服务提供商类型',
`provider_task_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务商返回的任务ID',
`provider_response` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '服务商原始响应JSON',
`prompt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户提交的提示词',
`image_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参考图片URL用于图生视频',
`image_base64` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '参考图片Base64编码用于图生视频',
`input_images` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '输入图片列表JSON格式用于图生视频',
`aspect_ratio` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片比例(如: 2:3, 3:2, 1:1仅图片生成使用',
`duration` int(11) NULL DEFAULT NULL COMMENT '视频时长(秒,仅视频生成使用)',
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'created' COMMENT '任务状态 (created, queued, processing, completed, failed, cancelled)',
`progress` int(11) NULL DEFAULT 0 COMMENT '生成进度百分比 (0-100)',
`progress_message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '当前进度文本描述',
`points_frozen` int(11) NOT NULL COMMENT '本次任务冻结的积分',
`points_consumed` int(11) NULL DEFAULT 0 COMMENT '任务成功后实际消耗的积分',
`result_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成结果的URL',
`error_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '任务失败时的错误信息',
`queue_time` datetime NULL DEFAULT NULL COMMENT '进入队列的时间',
`start_time` datetime NULL DEFAULT NULL COMMENT '开始处理的时间',
`complete_time` datetime NULL DEFAULT NULL COMMENT '任务完成或失败的时间',
`expire_time` datetime NULL DEFAULT NULL COMMENT '结果URL的过期时间 (根据第三方API策略设定)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '任务创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
`provider_pid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务商返回的PID用于速创Sora2的续作ID',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `task_no`(`task_no`) USING BTREE,
UNIQUE INDEX `uk_task_no`(`task_no`) USING BTREE,
INDEX `idx_user_status`(`user_id`, `status`) USING BTREE,
INDEX `idx_status_time`(`status`, `create_time`) USING BTREE,
INDEX `idx_provider_task_id`(`provider_task_id`) USING BTREE,
INDEX `idx_provider_type_status`(`provider_type`, `status`) USING BTREE,
INDEX `idx_task_type`(`task_type`) USING BTREE,
CONSTRAINT `ai_task_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1876 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'AI生成任务表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for api_key
-- ----------------------------
DROP TABLE IF EXISTS `api_key`;
CREATE TABLE `api_key` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`key_value` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'API密钥值',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
`last_used_at` datetime NULL DEFAULT NULL COMMENT '最后使用时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `key_value`(`key_value`) USING BTREE,
UNIQUE INDEX `uk_api_key_user`(`user_id`) USING BTREE,
INDEX `idx_api_key_value`(`key_value`) USING BTREE,
INDEX `idx_api_key_active`(`is_active`) USING BTREE,
CONSTRAINT `api_key_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for banner
-- ----------------------------
DROP TABLE IF EXISTS `banner`;
CREATE TABLE `banner` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`image` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '图片URL',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
`button_text` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮文字',
`link_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'internal' COMMENT '链接类型 (internal: 内部路由跳转, external: 外部链接跳转)',
`link` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跳转链接',
`sort_order` int(11) NOT NULL DEFAULT 0 COMMENT '排序字段',
`is_enabled` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用(0禁用/1启用)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_banner_enabled`(`is_enabled`) USING BTREE,
INDEX `idx_banner_sort`(`sort_order`) USING BTREE,
INDEX `idx_banner_create_time`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for category
-- ----------------------------
DROP TABLE IF EXISTS `category`;
CREATE TABLE `category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类目名称',
`type` tinyint(4) NOT NULL COMMENT '类目类型(1课程分类/2工作流分类)',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类目描述',
`sort_order` int(11) NOT NULL DEFAULT 0 COMMENT '排序字段',
`is_enabled` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用(0禁用/1启用)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_category_name_type`(`name`, `type`) USING BTREE,
INDEX `idx_category_type`(`type`) USING BTREE,
INDEX `idx_category_enabled`(`is_enabled`) USING BTREE,
INDEX `idx_category_sort`(`sort_order`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '类目表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for content_revenue
-- ----------------------------
DROP TABLE IF EXISTS `content_revenue`;
CREATE TABLE `content_revenue` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '内容创作者ID',
`content_type` tinyint(4) NOT NULL COMMENT '内容类型 (1工作流/2视频)',
`content_id` bigint(20) NOT NULL COMMENT '内容ID',
`revenue_source` tinyint(4) NOT NULL COMMENT '收益来源 (1购买/2复制/3观看)',
`source_value` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '来源基础价值',
`quantity` int(11) NOT NULL DEFAULT 0 COMMENT '数量',
`commission_rate` decimal(5, 4) NOT NULL DEFAULT 0.0000 COMMENT '分成比例',
`revenue_amount` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '创作者实际收益金额',
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '收益状态 (0待结算/1已结算)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收益产生时间',
`settled_at` datetime NULL DEFAULT NULL COMMENT '结算时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id`(`user_id`) USING BTREE,
INDEX `idx_content`(`content_type`, `content_id`) USING BTREE,
INDEX `idx_create_time`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for content_revenue_stage
-- ----------------------------
DROP TABLE IF EXISTS `content_revenue_stage`;
CREATE TABLE `content_revenue_stage` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`content_type` tinyint(4) NOT NULL COMMENT '内容类型 (1工作流/2视频)',
`content_id` bigint(20) NOT NULL COMMENT '内容ID',
`user_id` bigint(20) NOT NULL COMMENT '创作者ID',
`stage_level` int(11) NOT NULL COMMENT '阶段等级 (1,2,3...)',
`stage_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '阶段名称',
`target_count` int(11) NOT NULL COMMENT '目标数量 (复制次数/观看次数)',
`reward_amount` decimal(10, 2) NOT NULL COMMENT '奖励金额',
`current_count` int(11) NOT NULL DEFAULT 0 COMMENT '当前数量',
`is_achieved` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已达到 (0未达到/1已达到)',
`achieved_at` datetime NULL DEFAULT NULL COMMENT '达到时间',
`is_withdrawn` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已提现 (0未提现/1已提现)',
`withdrawn_at` datetime NULL DEFAULT NULL COMMENT '提现时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_content_stage`(`content_type`, `content_id`, `stage_level`) USING BTREE,
INDEX `idx_user_id`(`user_id`) USING BTREE,
INDEX `idx_content`(`content_type`, `content_id`) USING BTREE,
INDEX `idx_achieved`(`is_achieved`) USING BTREE,
INDEX `idx_withdrawn`(`is_withdrawn`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 58 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '课程标题',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '课程的富文本描述',
`cover_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面图URL',
`detail_gallery` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '详情图集JSON格式存储多张图片URL',
`price` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '价格',
`level` tinyint(4) NOT NULL DEFAULT 0 COMMENT '访问课程所需的最低用户级别',
`audit_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '审核状态(0待审核/1通过/2拒绝)',
`category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '课程分类',
`category_id` bigint(20) NULL DEFAULT NULL COMMENT '关联类目ID',
`reject_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '拒绝原因',
`review_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
`user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
`is_free` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否免费(0收费/1免费)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_course_category_id`(`category_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for course_chapter
-- ----------------------------
DROP TABLE IF EXISTS `course_chapter`;
CREATE TABLE `course_chapter` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`course_id` bigint(20) NOT NULL COMMENT '所属课程ID',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '章节标题',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '章节描述',
`order_num` int(11) NOT NULL DEFAULT 0 COMMENT '章节排序编号',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for course_favorite
-- ----------------------------
DROP TABLE IF EXISTS `course_favorite`;
CREATE TABLE `course_favorite` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '收藏用户ID',
`course_id` bigint(20) NOT NULL COMMENT '被收藏的课程ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收藏时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_course_favorite`(`user_id`, `course_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for course_like
-- ----------------------------
DROP TABLE IF EXISTS `course_like`;
CREATE TABLE `course_like` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '点赞用户ID',
`course_id` bigint(20) NOT NULL COMMENT '被点赞的课程ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_course_like`(`user_id`, `course_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for course_video
-- ----------------------------
DROP TABLE IF EXISTS `course_video`;
CREATE TABLE `course_video` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`chapter_id` bigint(20) NOT NULL COMMENT '所属章节ID',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '视频标题',
`video_id` bigint(20) NULL DEFAULT NULL COMMENT '阿里云视频点播ID',
`duration_sec` int(11) NULL DEFAULT 0 COMMENT '视频时长(秒)',
`order_num` int(11) NOT NULL DEFAULT 0 COMMENT '视频在章节内的排序编号',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for fan_promotion_commission
-- ----------------------------
DROP TABLE IF EXISTS `fan_promotion_commission`;
CREATE TABLE `fan_promotion_commission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`promoter_id` bigint(20) NOT NULL COMMENT '推广人ID',
`fan_id` bigint(20) NOT NULL COMMENT '粉丝用户ID',
`order_id` bigint(20) NOT NULL COMMENT '关联的订单ID',
`order_amount` decimal(10, 2) NOT NULL COMMENT '粉丝订单金额',
`commission_rate` decimal(5, 4) NOT NULL COMMENT '提成比例',
`commission_level` tinyint(4) NOT NULL COMMENT '提成发生时推广人的等级',
`commission_amount` decimal(10, 2) NOT NULL COMMENT '推广人实际提成金额',
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '提成状态 (0待结算/1已结算)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '提成产生时间',
`settled_at` datetime NULL DEFAULT NULL COMMENT '结算时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_promoter_fan`(`promoter_id`, `fan_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for gift_code
-- ----------------------------
DROP TABLE IF EXISTS `gift_code`;
CREATE TABLE `gift_code` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '礼品码,唯一',
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '礼品码名称',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '礼品码描述',
`type` tinyint(4) NOT NULL COMMENT '礼品码类型 (1-积分卡/2-会员卡)',
`points` int(11) NULL DEFAULT NULL COMMENT '积分数量(积分卡类型)',
`points_expire_days` int(11) NULL DEFAULT NULL COMMENT '积分有效期天数(积分卡类型)',
`target_role` tinyint(4) NULL DEFAULT NULL COMMENT '目标角色等级(会员卡类型)',
`duration_days` int(11) NULL DEFAULT NULL COMMENT '会员有效期天数(会员卡类型)',
`total_count` int(11) NOT NULL DEFAULT 1 COMMENT '总可用次数',
`used_count` int(11) NOT NULL DEFAULT 0 COMMENT '已使用次数',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
`expire_time` datetime NULL DEFAULT NULL COMMENT '礼品码过期时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code`(`code`) USING BTREE,
INDEX `idx_gift_code_code`(`code`) USING BTREE,
INDEX `idx_gift_code_type`(`type`) USING BTREE,
INDEX `idx_gift_code_active`(`is_active`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 69 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for gift_code_usage
-- ----------------------------
DROP TABLE IF EXISTS `gift_code_usage`;
CREATE TABLE `gift_code_usage` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`gift_code_id` bigint(20) NOT NULL COMMENT '礼品码ID',
`user_id` bigint(20) NOT NULL COMMENT '使用用户ID',
`code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '使用的礼品码',
`type` tinyint(4) NOT NULL COMMENT '礼品码类型 (1-积分卡/2-会员卡)',
`points` int(11) NULL DEFAULT NULL COMMENT '积分数量',
`points_expire_days` int(11) NULL DEFAULT NULL COMMENT '积分有效期天数',
`target_role` tinyint(4) NULL DEFAULT NULL COMMENT '目标角色等级',
`duration_days` int(11) NULL DEFAULT NULL COMMENT '会员有效期天数',
`old_role` tinyint(4) NULL DEFAULT NULL COMMENT '用户原角色',
`new_role` tinyint(4) NULL DEFAULT NULL COMMENT '用户新角色',
`old_points` int(11) NULL DEFAULT NULL COMMENT '用户原积分',
`new_points` int(11) NULL DEFAULT NULL COMMENT '用户新积分',
`old_points_expires_at` datetime NULL DEFAULT NULL COMMENT '用户原积分过期时间',
`new_points_expires_at` datetime NULL DEFAULT NULL COMMENT '用户新积分过期时间',
`old_expires_at` datetime NULL DEFAULT NULL COMMENT '用户原会员到期时间',
`new_expires_at` datetime NULL DEFAULT NULL COMMENT '用户新会员到期时间',
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '使用状态 (1-成功/0-失败)',
`error_message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '使用时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_gift_code_usage_user`(`user_id`) USING BTREE,
INDEX `idx_gift_code_usage_code`(`gift_code_id`) USING BTREE,
INDEX `idx_gift_code_usage_time`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 83 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for membership_plan
-- ----------------------------
DROP TABLE IF EXISTS `membership_plan`;
CREATE TABLE `membership_plan` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐名称',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '套餐的详细描述',
`price` decimal(10, 2) NOT NULL COMMENT '价格',
`duration_days` int(11) NOT NULL COMMENT '有效期天数',
`target_role` tinyint(4) NOT NULL COMMENT '购买后达到的角色等级',
`discount_percentage` decimal(5, 2) NULL DEFAULT 0.00 COMMENT '优惠百分比率(0-100如10.50表示10.5%的优惠)',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否上架',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for order
-- ----------------------------
DROP TABLE IF EXISTS `order`;
CREATE TABLE `order` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '系统生成的唯一订单号',
`order_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '订单类型1-会员订单/2-积分订单)',
`user_id` bigint(20) NOT NULL COMMENT '购买用户ID',
`plan_id` bigint(20) NULL DEFAULT NULL COMMENT '购买的套餐ID',
`points_package_id` bigint(20) NULL DEFAULT NULL COMMENT '积分套餐ID积分订单',
`points_amount` int(11) NULL DEFAULT NULL COMMENT '积分数量(积分订单)',
`original_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '套餐原价',
`amount` decimal(10, 2) NOT NULL COMMENT '订单最终金额(实际支付金额)',
`actual_duration_days` int(11) NULL DEFAULT NULL COMMENT '实际获得的会员天数',
`discount_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '优惠类型 (NONE/CONTINUOUS_MONTHLY/CONTINUOUS_YEARLY/FIRST_PURCHASE/SPECIAL_OFFER)',
`discount_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠金额',
`discount_description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '优惠描述',
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '订单状态 (0待支付/1已完成/2已取消/3支付失败)',
`payment_method` tinyint(4) NULL DEFAULT NULL COMMENT '支付方式 (1支付宝/2微信支付)',
`paid_at` datetime NULL DEFAULT NULL COMMENT '支付成功时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `order_no`(`order_no`) USING BTREE,
INDEX `idx_order_discount_type`(`discount_type`) USING BTREE,
INDEX `idx_order_user_id_status`(`user_id`, `status`) USING BTREE,
INDEX `idx_order_type`(`order_type`) USING BTREE,
INDEX `idx_order_points_package`(`points_package_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 152 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for payment_transaction
-- ----------------------------
DROP TABLE IF EXISTS `payment_transaction`;
CREATE TABLE `payment_transaction` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关联的系统订单号',
`transaction_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方支付平台返回的流水号',
`payment_gateway` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关',
`amount` decimal(10, 2) NOT NULL COMMENT '支付金额',
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方支付平台返回的状态',
`raw_data` json NULL COMMENT '第三方支付平台通知的完整原始数据',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for plaza_work
-- ----------------------------
DROP TABLE IF EXISTS `plaza_work`;
CREATE TABLE `plaza_work` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`work_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品编号(唯一标识)',
`user_id` bigint(20) NOT NULL COMMENT '发布者用户ID',
`task_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联的任务编号',
`task_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务类型text_to_image/image_to_image/text_to_video/image_to_video等',
`model_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '使用的模型名称',
`prompt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '生成提示词',
`result_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作品结果URL图片或视频',
`image_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '参考图URL图生图/图生视频任务使用)',
`aspect_ratio` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '宽高比1:1/2:3/3:2/9:16/16:9等',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '作品标题(可选)',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '作品描述(可选)',
`tags` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标签JSON数组字符串',
`view_count` int(11) NULL DEFAULT 0 COMMENT '浏览次数',
`like_count` int(11) NULL DEFAULT 0 COMMENT '点赞数',
`share_count` int(11) NULL DEFAULT 0 COMMENT '分享数',
`comment_count` int(11) NULL DEFAULT 0 COMMENT '评论数(预留)',
`is_public` tinyint(1) NULL DEFAULT 1 COMMENT '是否公开0-仅自己可见1-公开',
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'published' COMMENT '状态draft-草稿published-已发布hidden-已隐藏',
`audit_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending' COMMENT '审核状态pending-待审核, approved-已通过, rejected-已拒绝',
`audit_admin_id` bigint(20) NULL DEFAULT NULL COMMENT '审核管理员ID',
`audit_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
`audit_remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '审核备注(拒绝原因等)',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除0-未删除1-已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_work_no`(`work_no`) USING BTREE,
INDEX `idx_user_id`(`user_id`) USING BTREE,
INDEX `idx_task_no`(`task_no`) USING BTREE,
INDEX `idx_task_type`(`task_type`) USING BTREE,
INDEX `idx_create_time`(`create_time`) USING BTREE,
INDEX `idx_like_count`(`like_count`) USING BTREE,
INDEX `idx_status_public`(`status`, `is_public`, `is_deleted`) USING BTREE,
INDEX `idx_type_like_time`(`task_type`, `like_count`, `create_time`) USING BTREE,
INDEX `idx_status_public_time`(`status`, `is_public`, `create_time`) USING BTREE,
INDEX `idx_audit_status`(`audit_status`) USING BTREE,
INDEX `idx_audit_time`(`audit_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 63 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '广场作品表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for plaza_work_audit_log
-- ----------------------------
DROP TABLE IF EXISTS `plaza_work_audit_log`;
CREATE TABLE `plaza_work_audit_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`work_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '作品编号',
`work_id` bigint(20) NOT NULL COMMENT '作品ID',
`audit_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '审核结果approved-通过, rejected-拒绝',
`audit_admin_id` bigint(20) NOT NULL COMMENT '审核管理员ID',
`audit_admin_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审核管理员名称',
`audit_remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '审核备注',
`audit_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '审核时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_work_no`(`work_no`) USING BTREE,
INDEX `idx_work_id`(`work_id`) USING BTREE,
INDEX `idx_audit_admin_id`(`audit_admin_id`) USING BTREE,
INDEX `idx_audit_time`(`audit_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 68 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '广场作品审核记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for plaza_work_like
-- ----------------------------
DROP TABLE IF EXISTS `plaza_work_like`;
CREATE TABLE `plaza_work_like` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`work_id` bigint(20) NOT NULL COMMENT '作品ID',
`user_id` bigint(20) NOT NULL COMMENT '点赞用户ID',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_work_user`(`work_id`, `user_id`) USING BTREE,
INDEX `idx_user_id`(`user_id`) USING BTREE,
INDEX `idx_create_time`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 80 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '广场作品点赞表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for plaza_work_report
-- ----------------------------
DROP TABLE IF EXISTS `plaza_work_report`;
CREATE TABLE `plaza_work_report` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`report_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '投诉编号(唯一标识)',
`work_id` bigint(20) NOT NULL COMMENT '被投诉的作品ID',
`work_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '被投诉的作品编号',
`reporter_id` bigint(20) NOT NULL COMMENT '投诉人用户ID',
`report_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '投诉类型political-政治敏感pornographic-色情低俗violent-暴力血腥dangerous-危险行为uncomfortable-引人不适other-其他',
`report_reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '投诉原因描述(可选)',
`report_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'pending' COMMENT '投诉状态pending-待审核approved-投诉成立rejected-投诉不成立',
`audit_admin_id` bigint(20) NULL DEFAULT NULL COMMENT '审核管理员ID',
`audit_admin_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审核管理员名称',
`audit_remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '审核备注(处理说明)',
`audit_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '投诉时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除0-未删除1-已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_report_no`(`report_no`) USING BTREE,
INDEX `idx_work_id`(`work_id`) USING BTREE,
INDEX `idx_work_no`(`work_no`) USING BTREE,
INDEX `idx_reporter_id`(`reporter_id`) USING BTREE,
INDEX `idx_report_type`(`report_type`) USING BTREE,
INDEX `idx_report_status`(`report_status`) USING BTREE,
INDEX `idx_audit_admin_id`(`audit_admin_id`) USING BTREE,
INDEX `idx_create_time`(`create_time`) USING BTREE,
INDEX `idx_work_reporter`(`work_id`, `reporter_id`, `is_deleted`) USING BTREE,
INDEX `idx_status_time`(`report_status`, `create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '广场作品投诉表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for plaza_work_report_limit
-- ----------------------------
DROP TABLE IF EXISTS `plaza_work_report_limit`;
CREATE TABLE `plaza_work_report_limit` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`report_count` int(11) NULL DEFAULT 0 COMMENT '今日投诉次数',
`last_report_time` datetime NULL DEFAULT NULL COMMENT '最后投诉时间',
`reset_date` date NOT NULL COMMENT '重置日期(用于每日重置计数)',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_id`(`user_id`) USING BTREE,
INDEX `idx_reset_date`(`reset_date`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '广场作品投诉限制表(防止恶意投诉)' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for plaza_work_view
-- ----------------------------
DROP TABLE IF EXISTS `plaza_work_view`;
CREATE TABLE `plaza_work_view` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`work_id` bigint(20) NOT NULL COMMENT '作品ID',
`user_id` bigint(20) NULL DEFAULT NULL COMMENT '浏览用户ID可为空支持匿名浏览',
`ip_address` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'IP地址',
`user_agent` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户代理',
`view_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '浏览时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_work_id`(`work_id`) USING BTREE,
INDEX `idx_user_id`(`user_id`) USING BTREE,
INDEX `idx_view_time`(`view_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '广场作品浏览记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for points_config
-- ----------------------------
DROP TABLE IF EXISTS `points_config`;
CREATE TABLE `points_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`model_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模型名称 (如: sora_image)',
`model_category` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'text' COMMENT '模型类别text(文本), image(图片), video(视频), audio(音频)',
`points_cost` int(11) NOT NULL COMMENT '调用一次消耗的积分',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型描述',
`is_enabled` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用 (0:禁用, 1:启用)',
`provider_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'openai' COMMENT 'AI服务提供商类型openai, ',
`provider_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '服务商特定配置JSON格式',
`task_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务类型text_to_image(文生图)/image_to_image(图生图)/text_to_video(文生视频)/image_to_video(图生视频)/llm(大语言模型)/text_to_audio(文生音频)/image_to_text(图生文)/other(其他)',
`sort_order` int(11) NULL DEFAULT 0 COMMENT '排序顺序(用于前端展示)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `model_name`(`model_name`) USING BTREE,
INDEX `idx_points_config_task_type`(`task_type`) USING BTREE,
INDEX `idx_points_config_provider_task`(`provider_type`, `task_type`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 116 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '积分消费配置表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for points_consumption_log
-- ----------------------------
DROP TABLE IF EXISTS `points_consumption_log`;
CREATE TABLE `points_consumption_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '关联的用户ID',
`task_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联的AI任务编号',
`change_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动类型 (recharge:充值, consume:消费, refund:退款, expire:过期, admin_adjust:管理员调整)',
`change_amount` int(11) NOT NULL COMMENT '变动积分数量 (正数表示增加,负数表示减少)',
`balance_before` int(11) NOT NULL COMMENT '变动前积分余额',
`balance_after` int(11) NOT NULL COMMENT '变动后积分余额',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '变动描述',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id_type`(`user_id`, `change_type`) USING BTREE,
CONSTRAINT `points_consumption_log_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 2534 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '积分消费记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for points_package
-- ----------------------------
DROP TABLE IF EXISTS `points_package`;
CREATE TABLE `points_package` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐名称',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '套餐描述',
`points` int(11) NOT NULL COMMENT '基础积分数量',
`bonus_points` int(11) NOT NULL DEFAULT 0 COMMENT '赠送积分数量',
`total_points` int(11) NOT NULL COMMENT '总积分(基础+赠送)',
`price` decimal(10, 2) NOT NULL COMMENT '价格(元)',
`original_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '原价(用于显示优惠)',
`points_expire_days` int(11) NOT NULL DEFAULT 365 COMMENT '积分有效期(天)',
`discount_label` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '优惠标签(如:首充特惠、限时优惠)',
`sort_order` int(11) NOT NULL DEFAULT 0 COMMENT '排序(数字越小越靠前)',
`is_hot` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否热门推荐',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否上架',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_points_package_active`(`is_active`) USING BTREE,
INDEX `idx_points_package_sort`(`sort_order`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '积分套餐表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for promotion_level_config
-- ----------------------------
DROP TABLE IF EXISTS `promotion_level_config`;
CREATE TABLE `promotion_level_config` (
`id` tinyint(4) NOT NULL AUTO_INCREMENT COMMENT '等级ID',
`level_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '等级名称',
`min_paid_fans` int(11) NOT NULL COMMENT '达到该等级所需的最低付费粉丝数量',
`commission_rate` decimal(5, 4) NOT NULL COMMENT '该等级对应的基础提成比例',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for promotion_poster
-- ----------------------------
DROP TABLE IF EXISTS `promotion_poster`;
CREATE TABLE `promotion_poster` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '海报标题',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '海报描述',
`image_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '海报图片URL',
`sort_order` int(11) NOT NULL DEFAULT 0 COMMENT '排序字段',
`is_enabled` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用(0禁用/1启用)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_promotion_poster_enabled`(`is_enabled`) USING BTREE,
INDEX `idx_promotion_poster_sort`(`sort_order`) USING BTREE,
INDEX `idx_promotion_poster_create_time`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for revenue_config
-- ----------------------------
DROP TABLE IF EXISTS `revenue_config`;
CREATE TABLE `revenue_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`config_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置键',
`config_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置类型video/workflow/promotion',
`target_count` int(11) NULL DEFAULT NULL COMMENT '目标次数(视频播放次数/工作流复制次数)',
`reward_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '奖励金额',
`level` int(11) NULL DEFAULT NULL COMMENT '推广等级',
`level_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '推广等级名称',
`min_fans` int(11) NULL DEFAULT NULL COMMENT '最小粉丝数',
`commission_rate` decimal(5, 4) NULL DEFAULT NULL COMMENT '提成比例',
`config_value` decimal(10, 4) NULL DEFAULT NULL COMMENT '配置值',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置说明',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_revenue_config_type`(`config_type`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for system_config
-- ----------------------------
DROP TABLE IF EXISTS `system_config`;
CREATE TABLE `system_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`config_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '配置键 (如: ai.queue.max_concurrent)',
`config_value` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '配置值',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置说明',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `config_key`(`config_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统配置表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for system_message
-- ----------------------------
DROP TABLE IF EXISTS `system_message`;
CREATE TABLE `system_message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '接收用户ID',
`title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息标题',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息内容',
`is_read` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已读',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号,唯一(微信登录用户可为空)',
`wechat_openid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信openid用于微信登录',
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名,唯一',
`real_username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真实用户名',
`id_number` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '身份证号码',
`password_jwt` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'JWT加密密码微信登录用户可为空',
`role` tinyint(4) NOT NULL DEFAULT 1 COMMENT '角色0游客/1普通/2VIP/3SVIP',
`membership_expires_at` datetime NULL DEFAULT NULL COMMENT '会员到期时间',
`avatar_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像URL',
`is_verified` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否实名认证 (0-未认证, 1-已认证)',
`invite_code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '推广码',
`inviter_id` bigint(20) NULL DEFAULT NULL COMMENT '邀请人ID',
`promotion_level` tinyint(4) NOT NULL DEFAULT 0 COMMENT '推广等级',
`points` int(11) NOT NULL DEFAULT 0 COMMENT '积分余额',
`points_expires_at` datetime NULL DEFAULT NULL COMMENT '积分过期时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `username`(`username`) USING BTREE,
UNIQUE INDEX `phone`(`phone`) USING BTREE,
UNIQUE INDEX `invite_code`(`invite_code`) USING BTREE,
UNIQUE INDEX `uk_user_wechat_openid`(`wechat_openid`) USING BTREE,
INDEX `idx_user_wechat_openid`(`wechat_openid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 17650006271322432 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_balance
-- ----------------------------
DROP TABLE IF EXISTS `user_balance`;
CREATE TABLE `user_balance` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`balance` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '当前余额',
`total_income` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '累计总收入',
`total_withdrawn` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '累计提现总额',
`frozen_amount` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '冻结金额(提现中)',
`last_updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_balance`(`user_id`) USING BTREE,
INDEX `idx_user_balance_user_id`(`user_id`) USING BTREE,
INDEX `idx_user_balance_balance`(`balance`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 78 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_balance_log
-- ----------------------------
DROP TABLE IF EXISTS `user_balance_log`;
CREATE TABLE `user_balance_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`change_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动类型income/withdraw/freeze/unfreeze',
`change_amount` decimal(10, 2) NOT NULL COMMENT '变动金额(正数为增加,负数为减少)',
`balance_before` decimal(10, 2) NOT NULL COMMENT '变动前余额',
`balance_after` decimal(10, 2) NOT NULL COMMENT '变动后余额',
`source_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源类型promotion/workflow/video/withdraw',
`source_id` bigint(20) NULL DEFAULT NULL COMMENT '来源ID订单ID、提现ID等',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '变动描述',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_balance_log_user_id`(`user_id`) USING BTREE,
INDEX `idx_user_balance_log_change_type`(`change_type`) USING BTREE,
INDEX `idx_user_balance_log_create_time`(`create_time`) USING BTREE,
INDEX `idx_user_balance_log_source`(`source_type`, `source_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 78 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_video_progress
-- ----------------------------
DROP TABLE IF EXISTS `user_video_progress`;
CREATE TABLE `user_video_progress` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL,
`course_id` bigint(20) NOT NULL,
`chapter_id` bigint(20) NOT NULL,
`video_id` bigint(20) NOT NULL,
`progress_sec` int(11) NOT NULL DEFAULT 0 COMMENT '已观看秒数',
`progress_pct` float NOT NULL DEFAULT 0 COMMENT '进度百分比',
`last_watch_at` datetime NULL DEFAULT NULL COMMENT '最后观看时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for video
-- ----------------------------
DROP TABLE IF EXISTS `video`;
CREATE TABLE `video` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '视频标题',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '视频描述',
`owner_id` bigint(20) NOT NULL COMMENT '创建者ID',
`cover_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面图片URL',
`vod_video_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '阿里云VOD视频ID',
`duration` int(11) NULL DEFAULT NULL COMMENT '视频时长(秒)',
`view_count` int(11) NOT NULL DEFAULT 0 COMMENT '观看次数',
`like_count` int(11) NOT NULL DEFAULT 0 COMMENT '点赞数量',
`is_public` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否公开',
`audit_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '审核状态(0待审核/1通过/2拒绝)',
`category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '视频分类',
`reject_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '拒绝原因',
`review_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_owner_id`(`owner_id`) USING BTREE,
INDEX `idx_category`(`category`) USING BTREE,
INDEX `idx_audit_status`(`audit_status`) USING BTREE,
INDEX `idx_vod_video_id`(`vod_video_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 144 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for video_view_stat
-- ----------------------------
DROP TABLE IF EXISTS `video_view_stat`;
CREATE TABLE `video_view_stat` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`video_id` bigint(20) NOT NULL COMMENT '视频ID',
`owner_id` bigint(20) NOT NULL COMMENT '视频创建者ID',
`view_user_id` bigint(20) NOT NULL COMMENT '观看用户ID',
`view_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '观看时间',
`view_duration` int(11) NULL DEFAULT 0 COMMENT '观看时长(秒)',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_video_owner`(`owner_id`) USING BTREE,
INDEX `idx_video_id`(`video_id`) USING BTREE,
INDEX `idx_view_time`(`view_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 156 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for wechat_keyword_reply
-- ----------------------------
DROP TABLE IF EXISTS `wechat_keyword_reply`;
CREATE TABLE `wechat_keyword_reply` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '关键词回复ID',
`keyword` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
`match_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'exact' COMMENT '匹配类型exact-精确匹配fuzzy-模糊匹配regex-正则匹配',
`template_id` bigint(20) NOT NULL COMMENT '关联的消息模板ID',
`is_enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用0-禁用1-启用',
`priority` int(11) NULL DEFAULT 0 COMMENT '优先级,数字越大优先级越高',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_keyword`(`keyword`) USING BTREE,
INDEX `idx_match_type`(`match_type`) USING BTREE,
INDEX `idx_template_id`(`template_id`) USING BTREE,
INDEX `idx_enabled`(`is_enabled`) USING BTREE,
INDEX `idx_priority`(`priority`) USING BTREE,
CONSTRAINT `wechat_keyword_reply_ibfk_1` FOREIGN KEY (`template_id`) REFERENCES `wechat_message_template` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信关键词回复配置表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for wechat_menu
-- ----------------------------
DROP TABLE IF EXISTS `wechat_menu`;
CREATE TABLE `wechat_menu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
`parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID0表示顶级菜单',
`menu_name` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称最多16个字符',
`menu_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单类型click/view/miniprogram/scancode_push/scancode_waitmsg/pic_sysphoto/pic_photo_or_album/pic_weixin/location_select',
`menu_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单KEY值click类型必须',
`menu_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网页链接view类型必须',
`media_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '媒体文件ID',
`appid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '小程序appidminiprogram类型必须',
`pagepath` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '小程序页面路径miniprogram类型必须',
`sort_order` int(11) NULL DEFAULT 0 COMMENT '排序顺序',
`is_enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用0-禁用1-启用',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '菜单描述',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_parent_id`(`parent_id`) USING BTREE,
INDEX `idx_sort_order`(`sort_order`) USING BTREE,
INDEX `idx_menu_key`(`menu_key`) USING BTREE,
INDEX `idx_enabled`(`is_enabled`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信菜单配置表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for wechat_menu_publish_history
-- ----------------------------
DROP TABLE IF EXISTS `wechat_menu_publish_history`;
CREATE TABLE `wechat_menu_publish_history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '发布历史ID',
`menu_config` json NOT NULL COMMENT '菜单配置JSON',
`publish_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发布状态success/failed',
`error_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误信息',
`publish_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',
`operator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_publish_status`(`publish_status`) USING BTREE,
INDEX `idx_publish_time`(`publish_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信菜单发布历史表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for wechat_message_template
-- ----------------------------
DROP TABLE IF EXISTS `wechat_message_template`;
CREATE TABLE `wechat_message_template` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模板ID',
`template_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板标识键',
`template_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板名称',
`template_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板类型text/news/image/voice/video/music',
`trigger_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '触发类型subscribe/unsubscribe/scan/click/view/keyword',
`trigger_value` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '触发值如菜单key、关键词等',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '文本内容',
`media_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '媒体文件ID',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题(图文消息用)',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '描述(图文消息用)',
`pic_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片链接',
`url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跳转链接',
`music_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '音乐链接',
`hq_music_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '高质量音乐链接',
`thumb_media_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '缩略图媒体ID',
`is_enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用0-禁用1-启用',
`priority` int(11) NULL DEFAULT 0 COMMENT '优先级,数字越大优先级越高',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `template_key`(`template_key`) USING BTREE,
INDEX `idx_template_key`(`template_key`) USING BTREE,
INDEX `idx_trigger_type`(`trigger_type`) USING BTREE,
INDEX `idx_trigger_value`(`trigger_value`) USING BTREE,
INDEX `idx_enabled`(`is_enabled`) USING BTREE,
INDEX `idx_priority`(`priority`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信消息模板配置表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for wechat_news_article
-- ----------------------------
DROP TABLE IF EXISTS `wechat_news_article`;
CREATE TABLE `wechat_news_article` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文章ID',
`template_id` bigint(20) NOT NULL COMMENT '关联的消息模板ID',
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文章标题',
`author` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '作者',
`digest` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '摘要',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '文章内容',
`content_source_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原文链接',
`thumb_media_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '缩略图媒体ID',
`show_cover_pic` tinyint(4) NULL DEFAULT 0 COMMENT '是否显示封面0-不显示1-显示',
`url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '点击跳转链接',
`thumb_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '缩略图URL',
`need_open_comment` tinyint(4) NULL DEFAULT 0 COMMENT '是否打开评论0-不打开1-打开',
`only_fans_can_comment` tinyint(4) NULL DEFAULT 0 COMMENT '是否粉丝才可评论0-所有人1-仅粉丝',
`sort_order` int(11) NULL DEFAULT 0 COMMENT '排序顺序',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_template_id`(`template_id`) USING BTREE,
INDEX `idx_sort_order`(`sort_order`) USING BTREE,
CONSTRAINT `wechat_news_article_ibfk_1` FOREIGN KEY (`template_id`) REFERENCES `wechat_message_template` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信图文消息文章表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for wechat_qr_code
-- ----------------------------
DROP TABLE IF EXISTS `wechat_qr_code`;
CREATE TABLE `wechat_qr_code` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`qr_code_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '二维码图片URL',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '二维码描述',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_wechat_qr_create_time`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for withdraw_request
-- ----------------------------
DROP TABLE IF EXISTS `withdraw_request`;
CREATE TABLE `withdraw_request` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`amount` decimal(10, 2) NOT NULL COMMENT '提现金额',
`withdraw_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '提现类型promotion/workflow/video',
`content_id` bigint(20) NULL DEFAULT NULL COMMENT '作品ID工作流或视频提现时',
`account_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款账户类型alipay/wechat/bank',
`account` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款账户(支付宝账号/微信ID/银行卡号)',
`account_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款人姓名',
`bank_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '开户行名称(银行卡提现时必填)',
`bank_branch` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支行名称(银行卡提现时可选)',
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '状态0待审核/1通过/2拒绝',
`reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '拒绝原因',
`reviewer_id` bigint(20) NULL DEFAULT NULL COMMENT '审核人ID',
`transaction_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方交易流水号',
`fee_amount` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '手续费金额',
`actual_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '实际到账金额',
`processed_at` datetime NULL DEFAULT NULL COMMENT '处理完成时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
`reviewed_at` datetime NULL DEFAULT NULL COMMENT '审核时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_withdraw_user_id`(`user_id`) USING BTREE,
INDEX `idx_withdraw_status`(`status`) USING BTREE,
INDEX `idx_withdraw_create_time`(`create_time`) USING BTREE,
INDEX `idx_withdraw_type`(`withdraw_type`) USING BTREE,
INDEX `idx_withdraw_content_id`(`content_id`) USING BTREE,
INDEX `idx_withdraw_reviewer`(`reviewer_id`) USING BTREE,
INDEX `idx_withdraw_transaction_no`(`transaction_no`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for workflow
-- ----------------------------
DROP TABLE IF EXISTS `workflow`;
CREATE TABLE `workflow` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '工作流名称',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '工作流的详细描述',
`owner_id` bigint(20) NOT NULL COMMENT '创建者ID',
`cover_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面图片URL',
`detail_gallery` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '详情图集JSON格式存储多张图片URL',
`video_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联预览视频ID阿里云VOD视频ID',
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '存储工作流核心逻辑的JSON字符串',
`data_file_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工作流依赖文件地址文件上传时的URL',
`like_count` int(11) NOT NULL DEFAULT 0 COMMENT '点赞数量',
`is_public` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否公开',
`full_access_role` tinyint(4) NOT NULL DEFAULT 1 COMMENT '查看完整data所需最低角色',
`copy_access_role` tinyint(4) NOT NULL DEFAULT 1 COMMENT '复制所需最低角色',
`price` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '价格',
`audit_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '审核状态(0待审核/1通过/2拒绝)',
`category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工作流分类',
`category_id` bigint(20) NULL DEFAULT NULL COMMENT '关联类目ID',
`rating` int(11) NULL DEFAULT NULL COMMENT '评分(1-5)',
`reject_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '拒绝原因',
`review_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
`is_free` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否免费(0收费/1免费)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_workflow_category_id`(`category_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 105 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for workflow_copy_stat
-- ----------------------------
DROP TABLE IF EXISTS `workflow_copy_stat`;
CREATE TABLE `workflow_copy_stat` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`workflow_id` bigint(20) NOT NULL COMMENT '工作流ID',
`owner_id` bigint(20) NOT NULL COMMENT '工作流创建者ID',
`copy_user_id` bigint(20) NOT NULL COMMENT '复制用户ID',
`copy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '复制时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_workflow_owner`(`owner_id`) USING BTREE,
INDEX `idx_workflow_id`(`workflow_id`) USING BTREE,
INDEX `idx_copy_time`(`copy_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1620 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for workflow_like
-- ----------------------------
DROP TABLE IF EXISTS `workflow_like`;
CREATE TABLE `workflow_like` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '点赞用户ID',
`workflow_id` bigint(20) NOT NULL COMMENT '被点赞的工作流ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_workflow`(`user_id`, `workflow_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- View structure for v_plaza_latest_works
-- ----------------------------
DROP VIEW IF EXISTS `v_plaza_latest_works`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_plaza_latest_works` AS select `pw`.`id` AS `id`,`pw`.`work_no` AS `work_no`,`pw`.`user_id` AS `user_id`,`pw`.`task_no` AS `task_no`,`pw`.`task_type` AS `task_type`,`pw`.`model_name` AS `model_name`,`pw`.`prompt` AS `prompt`,`pw`.`result_url` AS `result_url`,`pw`.`image_url` AS `image_url`,`pw`.`aspect_ratio` AS `aspect_ratio`,`pw`.`title` AS `title`,`pw`.`description` AS `description`,`pw`.`tags` AS `tags`,`pw`.`view_count` AS `view_count`,`pw`.`like_count` AS `like_count`,`pw`.`share_count` AS `share_count`,`pw`.`comment_count` AS `comment_count`,`pw`.`is_public` AS `is_public`,`pw`.`status` AS `status`,`pw`.`audit_status` AS `audit_status`,`pw`.`audit_admin_id` AS `audit_admin_id`,`pw`.`audit_time` AS `audit_time`,`pw`.`audit_remark` AS `audit_remark`,`pw`.`create_time` AS `create_time`,`pw`.`update_time` AS `update_time`,`pw`.`is_deleted` AS `is_deleted` from `plaza_work` `pw` where ((`pw`.`status` = 'published') and (`pw`.`audit_status` = 'approved') and (`pw`.`is_deleted` = 0)) order by `pw`.`create_time` desc;
-- ----------------------------
-- View structure for v_plaza_pending_works
-- ----------------------------
DROP VIEW IF EXISTS `v_plaza_pending_works`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_plaza_pending_works` AS select `pw`.`id` AS `id`,`pw`.`work_no` AS `work_no`,`pw`.`user_id` AS `user_id`,`pw`.`task_no` AS `task_no`,`pw`.`task_type` AS `task_type`,`pw`.`model_name` AS `model_name`,`pw`.`prompt` AS `prompt`,`pw`.`result_url` AS `result_url`,`pw`.`image_url` AS `image_url`,`pw`.`aspect_ratio` AS `aspect_ratio`,`pw`.`title` AS `title`,`pw`.`description` AS `description`,`pw`.`tags` AS `tags`,`pw`.`view_count` AS `view_count`,`pw`.`like_count` AS `like_count`,`pw`.`share_count` AS `share_count`,`pw`.`comment_count` AS `comment_count`,`pw`.`is_public` AS `is_public`,`pw`.`status` AS `status`,`pw`.`audit_status` AS `audit_status`,`pw`.`audit_admin_id` AS `audit_admin_id`,`pw`.`audit_time` AS `audit_time`,`pw`.`audit_remark` AS `audit_remark`,`pw`.`create_time` AS `create_time`,`pw`.`update_time` AS `update_time`,`pw`.`is_deleted` AS `is_deleted`,`u`.`username` AS `author_name`,`u`.`phone` AS `author_phone` from (`plaza_work` `pw` left join `user` `u` on((`pw`.`user_id` = `u`.`id`))) where ((`pw`.`audit_status` = 'pending') and (`pw`.`is_deleted` = 0)) order by `pw`.`create_time`;
-- ----------------------------
-- View structure for v_points_recharge_stats
-- ----------------------------
DROP VIEW IF EXISTS `v_points_recharge_stats`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_points_recharge_stats` AS select cast(`o`.`create_time` as date) AS `recharge_date`,count(`o`.`id`) AS `order_count`,sum(`o`.`amount`) AS `total_amount`,sum(`o`.`points_amount`) AS `total_points`,avg(`o`.`amount`) AS `avg_amount` from `order` `o` where ((`o`.`order_type` = 2) and (`o`.`status` = 1) and (`o`.`is_deleted` = 0)) group by cast(`o`.`create_time` as date) order by `recharge_date` desc;
SET FOREIGN_KEY_CHECKS = 1;