diff --git a/pom.xml b/pom.xml
index 059366d..75139fd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -196,6 +196,14 @@
spring-boot-starter-test
test
+
+ org.flywaydb
+ flyway-core
+
+
+ org.flywaydb
+ flyway-mysql
+
diff --git a/src/main/resources/db/migration/R__xxl-job.sql b/src/main/resources/db/migration/R__xxl-job.sql
new file mode 100644
index 0000000..ceed371
--- /dev/null
+++ b/src/main/resources/db/migration/R__xxl-job.sql
@@ -0,0 +1,190 @@
+#
+# XXL-JOB v2.4.0-SNAPSHOT
+# Copyright (c) 2015-present, xuxueli.
+
+CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;
+use `xxl_job`;
+
+SET NAMES utf8mb4;
+
+CREATE TABLE `xxl_job_info` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `job_group` int(11) NOT NULL COMMENT '执行器主键ID',
+ `job_desc` varchar(255) NOT NULL,
+ `add_time` datetime DEFAULT NULL,
+ `update_time` datetime DEFAULT NULL,
+ `author` varchar(64) DEFAULT NULL COMMENT '作者',
+ `alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件',
+ `schedule_type` varchar(50) NOT NULL DEFAULT 'NONE' COMMENT '调度类型',
+ `schedule_conf` varchar(128) DEFAULT NULL COMMENT '调度配置,值含义取决于调度类型',
+ `misfire_strategy` varchar(50) NOT NULL DEFAULT 'DO_NOTHING' COMMENT '调度过期策略',
+ `executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略',
+ `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
+ `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',
+ `executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞处理策略',
+ `executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒',
+ `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',
+ `glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型',
+ `glue_source` mediumtext COMMENT 'GLUE源代码',
+ `glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE备注',
+ `glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新时间',
+ `child_jobid` varchar(255) DEFAULT NULL COMMENT '子任务ID,多个逗号分隔',
+ `trigger_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '调度状态:0-停止,1-运行',
+ `trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次调度时间',
+ `trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次调度时间',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_log` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `job_group` int(11) NOT NULL COMMENT '执行器主键ID',
+ `job_id` int(11) NOT NULL COMMENT '任务,主键ID',
+ `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址',
+ `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
+ `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',
+ `executor_sharding_param` varchar(20) DEFAULT NULL COMMENT '执行器任务分片参数,格式如 1/2',
+ `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',
+ `trigger_time` datetime DEFAULT NULL COMMENT '调度-时间',
+ `trigger_code` int(11) NOT NULL COMMENT '调度-结果',
+ `trigger_msg` text COMMENT '调度-日志',
+ `handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
+ `handle_code` int(11) NOT NULL COMMENT '执行-状态',
+ `handle_msg` text COMMENT '执行-日志',
+ `alarm_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '告警状态:0-默认、1-无需告警、2-告警成功、3-告警失败',
+ PRIMARY KEY (`id`),
+ KEY `I_trigger_time` (`trigger_time`),
+ KEY `I_handle_code` (`handle_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_log_report` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `trigger_day` datetime DEFAULT NULL COMMENT '调度-时间',
+ `running_count` int(11) NOT NULL DEFAULT '0' COMMENT '运行中-日志数量',
+ `suc_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行成功-日志数量',
+ `fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
+ `update_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_logglue` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `job_id` int(11) NOT NULL COMMENT '任务,主键ID',
+ `glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE类型',
+ `glue_source` mediumtext COMMENT 'GLUE源代码',
+ `glue_remark` varchar(128) NOT NULL COMMENT 'GLUE备注',
+ `add_time` datetime DEFAULT NULL,
+ `update_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_registry` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `registry_group` varchar(50) NOT NULL,
+ `registry_key` varchar(255) NOT NULL,
+ `registry_value` varchar(255) NOT NULL,
+ `update_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_group` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `app_name` varchar(64) NOT NULL COMMENT '执行器AppName',
+ `title` varchar(12) NOT NULL COMMENT '执行器名称',
+ `address_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '执行器地址类型:0=自动注册、1=手动录入',
+ `address_list` text COMMENT '执行器地址列表,多地址逗号分隔',
+ `update_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_user` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `username` varchar(50) NOT NULL COMMENT '账号',
+ `password` varchar(50) NOT NULL COMMENT '密码',
+ `role` tinyint(4) NOT NULL COMMENT '角色:0-普通用户、1-管理员',
+ `permission` varchar(255) DEFAULT NULL COMMENT '权限:执行器ID列表,多个逗号分割',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `i_username` (`username`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_lock` (
+ `lock_name` varchar(50) NOT NULL COMMENT '锁名称',
+ PRIMARY KEY (`lock_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `address_type`, `address_list`, `update_time`) VALUES (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, '2018-11-03 22:21:31' );
+INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `schedule_type`, `schedule_conf`, `misfire_strategy`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`) VALUES (1, 1, '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', '');
+INSERT INTO `xxl_job_user`(`id`, `username`, `password`, `role`, `permission`) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
+INSERT INTO `xxl_job_lock` ( `lock_name`) VALUES ( 'schedule_lock');
+
+commit;
+
+
+-- 增加 novel 任务执行器和同步小说数据到 Elasticsearch 的任务
+-- 增加 novel 任务执行器和同步小说数据到 Elasticsearch 的任务
+INSERT INTO `xxl_job`.`xxl_job_group` ( `app_name`, `title`, `address_type`, `address_list`, `update_time` )
+VALUES
+ (
+ 'xxl-job-executor-novel',
+ 'novel 任务执行器',
+ 0,
+ NULL,
+ now()
+ );
+INSERT INTO `xxl_job`.`xxl_job_info` (
+ `job_group`,
+ `job_desc`,
+ `add_time`,
+ `update_time`,
+ `author`,
+ `alarm_email`,
+ `schedule_type`,
+ `schedule_conf`,
+ `misfire_strategy`,
+ `executor_route_strategy`,
+ `executor_handler`,
+ `executor_param`,
+ `executor_block_strategy`,
+ `executor_timeout`,
+ `executor_fail_retry_count`,
+ `glue_type`,
+ `glue_source`,
+ `glue_remark`,
+ `glue_updatetime`,
+ `child_jobid`,
+ `trigger_status`,
+ `trigger_last_time`,
+ `trigger_next_time`
+)
+VALUES
+ (
+ (SELECT
+ id
+ FROM
+ xxl_job_group
+ WHERE
+ app_name = 'xxl-job-executor-novel'),
+ '同步小说数据到 Elasticsearch',
+ now(),
+ now(),
+ 'xxyopen',
+ '',
+ 'CRON',
+ '0 0 0 1 * ?',
+ 'DO_NOTHING',
+ 'FIRST',
+ 'saveToEsJobHandler',
+ '',
+ 'SERIAL_EXECUTION',
+ 0,
+ 0,
+ 'BEAN',
+ '',
+ 'GLUE代码初始化',
+ now(),
+ '',
+ 0,
+ 0,
+ 0
+ );
\ No newline at end of file
diff --git a/src/main/resources/db/migration/V3.4.0__novel.sql b/src/main/resources/db/migration/V3.4.0__novel.sql
new file mode 100644
index 0000000..101961f
--- /dev/null
+++ b/src/main/resources/db/migration/V3.4.0__novel.sql
@@ -0,0 +1,601 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : localhost
+ Source Server Type : MySQL
+ Source Server Version : 80012
+ Source Host : localhost:3306
+ Source Schema : novel
+
+ Target Server Type : MySQL
+ Target Server Version : 80012
+ File Encoding : 65001
+
+ Date: 16/05/2022 18:47:34
+*/
+
+SET NAMES utf8mb4;
+SET
+FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for author_code
+-- ----------------------------
+CREATE TABLE `author_code`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `invite_code` varchar(100) NOT NULL COMMENT '邀请码',
+ `validity_time` datetime NOT NULL COMMENT '有效时间',
+ `is_used` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '是否使用过;0-未使用 1-使用过',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `idx_code` (`invite_code`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='作家邀请码';
+
+-- ----------------------------
+-- Table structure for author_income
+-- ----------------------------
+CREATE TABLE `author_income`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `author_id` bigint(20) unsigned NOT NULL COMMENT '作家ID',
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '小说ID',
+ `income_month` date NOT NULL COMMENT '收入月份',
+ `pre_tax_income` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '税前收入;单位:分',
+ `after_tax_income` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '税后收入;单位:分',
+ `pay_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '支付状态;0-待支付 1-已支付',
+ `confirm_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '稿费确认状态;0-待确认 1-已确认',
+ `detail` varchar(255) DEFAULT NULL COMMENT '详情',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='稿费收入统计';
+
+-- ----------------------------
+-- Table structure for author_income_detail
+-- ----------------------------
+CREATE TABLE `author_income_detail`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `author_id` bigint(20) unsigned NOT NULL COMMENT '作家ID',
+ `book_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '小说ID;0表示全部作品',
+ `income_date` date NOT NULL COMMENT '收入日期',
+ `income_account` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '订阅总额',
+ `income_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '订阅次数',
+ `income_number` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '订阅人数',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='稿费收入明细统计';
+
+-- ----------------------------
+-- Table structure for author_info
+-- ----------------------------
+CREATE TABLE `author_info`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '用户ID',
+ `invite_code` varchar(20) NOT NULL COMMENT '邀请码',
+ `pen_name` varchar(20) NOT NULL COMMENT '笔名',
+ `tel_phone` varchar(20) DEFAULT NULL COMMENT '手机号码',
+ `chat_account` varchar(50) DEFAULT NULL COMMENT 'QQ或微信账号',
+ `email` varchar(50) DEFAULT NULL COMMENT '电子邮箱',
+ `work_direction` tinyint(3) unsigned DEFAULT NULL COMMENT '作品方向;0-男频 1-女频',
+ `status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '0:正常;1-封禁',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_userId` (`user_id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='作者信息';
+
+-- ----------------------------
+-- Table structure for book_category
+-- ----------------------------
+CREATE TABLE `book_category`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `work_direction` tinyint(3) unsigned NOT NULL COMMENT '作品方向;0-男频 1-女频',
+ `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类别名',
+ `sort` tinyint(3) unsigned NOT NULL DEFAULT '10' COMMENT '排序',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `pk_id` (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说类别';
+
+-- ----------------------------
+-- Table structure for book_chapter
+-- ----------------------------
+CREATE TABLE `book_chapter`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '小说ID',
+ `chapter_num` smallint(5) unsigned NOT NULL COMMENT '章节号',
+ `chapter_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '章节名',
+ `word_count` int(10) unsigned NOT NULL COMMENT '章节字数',
+ `is_vip` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '是否收费;1-收费 0-免费',
+ `create_time` datetime DEFAULT NULL,
+ `update_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `uk_bookId_chapterNum` (`book_id`,`chapter_num`) USING BTREE,
+ UNIQUE KEY `pk_id` (`id`) USING BTREE,
+ KEY `idx_bookId` (`book_id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=1445988184596992001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说章节';
+
+-- ----------------------------
+-- Table structure for book_comment
+-- ----------------------------
+CREATE TABLE `book_comment`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '评论小说ID',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '评论用户ID',
+ `comment_content` varchar(512) NOT NULL COMMENT '评价内容',
+ `reply_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '回复数量',
+ `audit_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '审核状态;0-待审核 1-审核通过 2-审核不通过',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_bookId_userId` (`book_id`,`user_id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说评论';
+
+-- ----------------------------
+-- Table structure for book_comment_copy1
+-- ----------------------------
+CREATE TABLE `book_comment_copy1`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '评论小说ID',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '评论用户ID',
+ `comment_content` varchar(512) NOT NULL COMMENT '评价内容',
+ `reply_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '回复数量',
+ `audit_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '审核状态;0-待审核 1-审核通过 2-审核不通过',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_bookId_userId` (`book_id`,`user_id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说评论';
+
+-- ----------------------------
+-- Table structure for book_comment_reply
+-- ----------------------------
+CREATE TABLE `book_comment_reply`
+(
+ `id` bigint(20) unsigned NOT NULL COMMENT '主键',
+ `comment_id` bigint(20) unsigned NOT NULL COMMENT '评论ID',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '回复用户ID',
+ `reply_content` varchar(512) NOT NULL COMMENT '回复内容',
+ `audit_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '审核状态;0-待审核 1-审核通过 2-审核不通过',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说评论回复';
+
+-- ----------------------------
+-- Table structure for book_content
+-- ----------------------------
+CREATE TABLE `book_content`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `chapter_id` bigint(20) unsigned NOT NULL COMMENT '章节ID',
+ `content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '小说章节内容',
+ `create_time` datetime DEFAULT NULL,
+ `update_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `uk_chapterId` (`chapter_id`) USING BTREE,
+ UNIQUE KEY `pk_id` (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=4256332 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说内容';
+
+-- ----------------------------
+-- Table structure for book_info
+-- ----------------------------
+CREATE TABLE `book_info`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `work_direction` tinyint(3) unsigned DEFAULT NULL COMMENT '作品方向;0-男频 1-女频',
+ `category_id` bigint(20) unsigned DEFAULT NULL COMMENT '类别ID',
+ `category_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '类别名',
+ `pic_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '小说封面地址',
+ `book_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '小说名',
+ `author_id` bigint(20) unsigned NOT NULL COMMENT '作家id',
+ `author_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '作家名',
+ `book_desc` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '书籍描述',
+ `score` tinyint(3) unsigned NOT NULL COMMENT '评分;总分:10 ,真实评分 = score/10',
+ `book_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '书籍状态;0-连载中 1-已完结',
+ `visit_count` bigint(20) unsigned NOT NULL DEFAULT '103' COMMENT '点击量',
+ `word_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '总字数',
+ `comment_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '评论数',
+ `last_chapter_id` bigint(20) unsigned DEFAULT NULL COMMENT '最新章节ID',
+ `last_chapter_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最新章节名',
+ `last_chapter_update_time` datetime DEFAULT NULL COMMENT '最新章节更新时间',
+ `is_vip` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '是否收费;1-收费 0-免费',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `uk_bookName_authorName` (`book_name`,`author_name`) USING BTREE,
+ UNIQUE KEY `pk_id` (`id`) USING BTREE,
+ KEY `idx_createTime` (`create_time`) USING BTREE,
+ KEY `idx_lastChapterUpdateTime` (`last_chapter_update_time`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=1431630596354977793 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说信息';
+
+-- ----------------------------
+-- Table structure for home_book
+-- ----------------------------
+CREATE TABLE `home_book`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `type` tinyint(3) unsigned NOT NULL COMMENT '推荐类型;0-轮播图 1-顶部栏 2-本周强推 3-热门推荐 4-精品推荐',
+ `sort` tinyint(3) unsigned NOT NULL COMMENT '推荐排序',
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '推荐小说ID',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=96 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='小说推荐';
+
+-- ----------------------------
+-- Table structure for home_friend_link
+-- ----------------------------
+CREATE TABLE `home_friend_link`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `link_name` varchar(50) NOT NULL COMMENT '链接名',
+ `link_url` varchar(100) NOT NULL COMMENT '链接url',
+ `sort` tinyint(3) unsigned NOT NULL DEFAULT '11' COMMENT '排序号',
+ `is_open` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '是否开启;0-不开启 1-开启',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='友情链接';
+
+-- ----------------------------
+-- Table structure for news_category
+-- ----------------------------
+CREATE TABLE `news_category`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(20) NOT NULL COMMENT '类别名',
+ `sort` tinyint(3) unsigned NOT NULL DEFAULT '10' COMMENT '排序',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='新闻类别';
+
+-- ----------------------------
+-- Table structure for news_content
+-- ----------------------------
+CREATE TABLE `news_content`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `news_id` bigint(20) unsigned NOT NULL COMMENT '新闻ID',
+ `content` mediumtext NOT NULL COMMENT '新闻内容',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_newsId` (`news_id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='新闻内容';
+
+-- ----------------------------
+-- Table structure for news_info
+-- ----------------------------
+CREATE TABLE `news_info`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `category_id` bigint(20) unsigned NOT NULL COMMENT '类别ID',
+ `category_name` varchar(50) NOT NULL COMMENT '类别名',
+ `source_name` varchar(50) NOT NULL COMMENT '新闻来源',
+ `title` varchar(100) NOT NULL COMMENT '新闻标题',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='新闻信息';
+
+-- ----------------------------
+-- Table structure for pay_alipay
+-- ----------------------------
+CREATE TABLE `pay_alipay`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `out_trade_no` varchar(64) NOT NULL COMMENT '商户订单号',
+ `trade_no` varchar(64) NOT NULL COMMENT '支付宝交易号',
+ `buyer_id` varchar(16) DEFAULT NULL COMMENT '买家支付宝账号 ID',
+ `trade_status` varchar(32) DEFAULT NULL COMMENT '交易状态;TRADE_SUCCESS-交易成功',
+ `total_amount` int(10) unsigned NOT NULL COMMENT '订单金额;单位:分',
+ `receipt_amount` int(10) unsigned DEFAULT NULL COMMENT '实收金额;单位:分',
+ `invoice_amount` int(10) unsigned DEFAULT NULL COMMENT '开票金额',
+ `gmt_create` datetime DEFAULT NULL COMMENT '交易创建时间',
+ `gmt_payment` datetime DEFAULT NULL COMMENT '交易付款时间',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`),
+ KEY `uk_outTradeNo` (`out_trade_no`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='支付宝支付';
+
+-- ----------------------------
+-- Table structure for pay_wechat
+-- ----------------------------
+CREATE TABLE `pay_wechat`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `out_trade_no` varchar(32) NOT NULL COMMENT '商户订单号',
+ `transaction_id` varchar(32) NOT NULL COMMENT '微信支付订单号',
+ `trade_type` varchar(16) DEFAULT NULL COMMENT '交易类型;JSAPI-公众号支付 NATIVE-扫码支付 APP-APP支付 MICROPAY-付款码支付 MWEB-H5支付 FACEPAY-刷脸支付',
+ `trade_state` varchar(32) DEFAULT NULL COMMENT '交易状态;SUCCESS-支付成功 REFUND-转入退款 NOTPAY-未支付 CLOSED-已关闭 REVOKED-已撤销(付款码支付) USERPAYING-用户支付中(付款码支付) PAYERROR-支付失败(其他原因,如银行返回失败)',
+ `trade_state_desc` varchar(255) DEFAULT NULL COMMENT '交易状态描述',
+ `amount` int(10) unsigned NOT NULL COMMENT '订单总金额;单位:分',
+ `payer_total` int(10) unsigned DEFAULT NULL COMMENT '用户支付金额;单位:分',
+ `success_time` datetime DEFAULT NULL COMMENT '支付完成时间',
+ `payer_openid` varchar(128) DEFAULT NULL COMMENT '支付者用户标识;用户在直连商户appid下的唯一标识',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`),
+ KEY `uk_outTradeNo` (`out_trade_no`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='微信支付';
+
+-- ----------------------------
+-- Table structure for sys_log
+-- ----------------------------
+CREATE TABLE `sys_log`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` bigint(20) unsigned DEFAULT NULL COMMENT '用户id',
+ `username` varchar(50) DEFAULT NULL COMMENT '用户名',
+ `operation` varchar(50) DEFAULT NULL COMMENT '用户操作',
+ `time` int(10) unsigned DEFAULT NULL COMMENT '响应时间',
+ `method` varchar(200) DEFAULT NULL COMMENT '请求方法',
+ `params` varchar(5000) DEFAULT NULL COMMENT '请求参数',
+ `ip` varchar(64) DEFAULT NULL COMMENT 'IP地址',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统日志';
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+CREATE TABLE `sys_menu`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `parent_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '父菜单ID;一级菜单为0',
+ `name` varchar(50) NOT NULL COMMENT '菜单名称',
+ `url` varchar(200) DEFAULT NULL COMMENT '菜单URL',
+ `type` tinyint(3) unsigned NOT NULL COMMENT '类型;0-目录 1-菜单',
+ `icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',
+ `sort` tinyint(3) unsigned DEFAULT NULL COMMENT '排序',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统菜单';
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+CREATE TABLE `sys_role`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `role_name` varchar(100) NOT NULL COMMENT '角色名称',
+ `role_sign` varchar(100) DEFAULT NULL COMMENT '角色标识',
+ `remark` varchar(100) DEFAULT NULL COMMENT '备注',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色';
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+CREATE TABLE `sys_role_menu`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `role_id` bigint(20) unsigned NOT NULL COMMENT '角色ID',
+ `menu_id` bigint(20) unsigned NOT NULL COMMENT '菜单ID',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色与菜单对应关系';
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+CREATE TABLE `sys_user`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `username` varchar(50) NOT NULL COMMENT '用户名',
+ `password` varchar(50) NOT NULL COMMENT '密码',
+ `name` varchar(100) DEFAULT NULL COMMENT '真实姓名',
+ `sex` tinyint(3) unsigned DEFAULT NULL COMMENT '性别;0-男 1-女',
+ `birth` datetime DEFAULT NULL COMMENT '出身日期',
+ `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
+ `mobile` varchar(100) DEFAULT NULL COMMENT '手机号',
+ `status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态;0-禁用 1-正常',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统用户';
+
+-- ----------------------------
+-- Table structure for sys_user_role
+-- ----------------------------
+CREATE TABLE `sys_user_role`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '用户ID',
+ `role_id` bigint(20) unsigned NOT NULL COMMENT '角色ID',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户与角色对应关系';
+
+-- ----------------------------
+-- Table structure for test
+-- ----------------------------
+CREATE TABLE `test`
+(
+ `id` int(11) NOT NULL,
+ `test` tinyint(1) unsigned zerofill DEFAULT NULL,
+ `test2` tinyint(4) unsigned zerofill DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+-- ----------------------------
+-- Table structure for user_bookshelf
+-- ----------------------------
+CREATE TABLE `user_bookshelf`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '用户ID',
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '小说ID',
+ `pre_content_id` bigint(20) unsigned DEFAULT NULL COMMENT '上一次阅读的章节内容表ID',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间;',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间;',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_userId_bookId` (`user_id`,`book_id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户书架';
+
+-- ----------------------------
+-- Table structure for user_comment
+-- ----------------------------
+CREATE TABLE `user_comment`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '评论用户ID',
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '评论小说ID',
+ `comment_content` varchar(512) NOT NULL COMMENT '评价内容',
+ `reply_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '回复数量',
+ `audit_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '审核状态;0-待审核 1-审核通过 2-审核不通过',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_bookId_userId` (`book_id`,`user_id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户评论';
+
+-- ----------------------------
+-- Table structure for user_comment_reply
+-- ----------------------------
+CREATE TABLE `user_comment_reply`
+(
+ `id` bigint(20) unsigned NOT NULL COMMENT '主键',
+ `comment_id` bigint(20) unsigned NOT NULL COMMENT '评论ID',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '回复用户ID',
+ `reply_content` varchar(512) NOT NULL COMMENT '回复内容',
+ `audit_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '审核状态;0-待审核 1-审核通过 2-审核不通过',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户评论回复';
+
+-- ----------------------------
+-- Table structure for user_consume_log
+-- ----------------------------
+CREATE TABLE `user_consume_log`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '消费用户ID',
+ `amount` int(10) unsigned NOT NULL COMMENT '消费使用的金额;单位:屋币',
+ `product_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '消费商品类型;0-小说VIP章节',
+ `product_id` bigint(20) unsigned DEFAULT NULL COMMENT '消费的的商品ID;例如:章节ID',
+ `produc_name` varchar(50) DEFAULT NULL COMMENT '消费的的商品名;例如:章节名',
+ `produc_value` int(10) unsigned DEFAULT NULL COMMENT '消费的的商品值;例如:1',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户消费记录';
+
+-- ----------------------------
+-- Table structure for user_feedback
+-- ----------------------------
+CREATE TABLE `user_feedback`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '反馈用户id',
+ `content` varchar(512) NOT NULL COMMENT '反馈内容',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户反馈';
+
+-- ----------------------------
+-- Table structure for user_info
+-- ----------------------------
+CREATE TABLE `user_info`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `username` varchar(50) NOT NULL COMMENT '登录名',
+ `password` varchar(100) NOT NULL COMMENT '登录密码-加密',
+ `salt` varchar(8) NOT NULL COMMENT '加密盐值',
+ `nick_name` varchar(50) DEFAULT NULL COMMENT '昵称',
+ `user_photo` varchar(100) DEFAULT NULL COMMENT '用户头像',
+ `user_sex` tinyint(3) unsigned DEFAULT NULL COMMENT '用户性别;0-男 1-女',
+ `account_balance` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '账户余额',
+ `status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '用户状态;0-正常',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_username` (`username`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户信息';
+
+-- ----------------------------
+-- Table structure for user_pay_log
+-- ----------------------------
+CREATE TABLE `user_pay_log`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '充值用户ID',
+ `pay_channel` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '充值方式;0-支付宝 1-微信',
+ `out_trade_no` varchar(64) NOT NULL COMMENT '商户订单号',
+ `amount` int(10) unsigned NOT NULL COMMENT '充值金额;单位:分',
+ `product_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '充值商品类型;0-屋币 1-包年VIP',
+ `product_id` bigint(20) unsigned DEFAULT NULL COMMENT '充值商品ID',
+ `product_name` varchar(255) NOT NULL COMMENT '充值商品名;示例值:屋币',
+ `product_value` int(10) unsigned DEFAULT NULL COMMENT '充值商品值;示例值:255',
+ `pay_time` datetime NOT NULL COMMENT '充值时间',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户充值记录';
+
+-- ----------------------------
+-- Table structure for user_read_history
+-- ----------------------------
+CREATE TABLE `user_read_history`
+(
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `user_id` bigint(20) unsigned NOT NULL COMMENT '用户ID',
+ `book_id` bigint(20) unsigned NOT NULL COMMENT '小说ID',
+ `pre_content_id` bigint(20) unsigned NOT NULL COMMENT '上一次阅读的章节内容表ID',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间;',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间;',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_userId_bookId` (`user_id`,`book_id`),
+ UNIQUE KEY `pk_id` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户阅读历史';
+
+SET
+FOREIGN_KEY_CHECKS = 1;
+