Files
1818web-hoduan/1818ai.sql
Claude Workbench e3e6f1f29d first commit
2026-02-13 18:18:20 +08:00

1140 lines
79 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.

/*
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;