refactor all

This commit is contained in:
Timi
2026-07-31 01:03:53 +08:00
parent 4e7f340cc6
commit e45809a0db
512 changed files with 14620 additions and 13519 deletions
+9 -14
View File
@@ -13,20 +13,7 @@ spring:
host: dev.vm.imyeyu.test
port: 6379
password:
database:
locker: 0 # ID: Integer 全局锁,ID 规范:应用:模块:业务:方法
multilingual: 1 # ID: Multilingual 多语言缓存
multilingual-map: 2 # Key: ID 多语言键缓存
article-ranking: 3 # AID: ArticleRanking(JSON) 热门文章排位
article-read: 4 # IP: [AID..] IP 阅读文章记录
user-token: 5 # TOKEN: LONG 用户登录令牌
user-exp-flag: 6 # UID: NULL 用户登录经验标记,暂时没有值,数据死亡时间为次日零时
user-email-verify: 7 # AES_KEY: UID 邮箱验证密钥缓存
user-reset-pw-verify: 8 # AES_KEY: UID 重置密码密钥缓存
qps-limit: 9 # APP.IP.method: COUNT_IN_LIFE_CYCLE 接口访问频率控制(多个系统公用,需要 App 标记)
setting: 10 # Setting: SettingValue 系统配置
fmc-player-token: 11 # TOKEN: USER_ID|PLAYER_ID MC 登录缓存
clipboard: 12 # ID: CONTENT 共享剪切板
database: 0
datasource: # 数据库配置
timiserver:
jdbc-url: jdbc:mysql://dev.vm.imyeyu.test:3306/timi_server?serverTimezone=UTC&characterEncoding=UTF-8
@@ -50,6 +37,14 @@ spring:
database: db
username: root
password: qweqwe123
flyway:
enabled: true
locations: classpath:db/migration/timiserver
url: ${spring.datasource.timiserver.jdbc-url}
user: ${spring.datasource.timiserver.username}
password: ${spring.datasource.timiserver.password}
baseline-on-migrate: false
validate-on-migrate: true
# CORS 跨域
cors:
-677
View File
@@ -1,677 +0,0 @@
/*
Navicat Premium Dump SQL
Source Server : dev_mariadb
Source Server Type : MariaDB
Source Server Version : 110802 (11.8.2-MariaDB-ubu2404)
Source Host : vm.imyeyu.dev:3307
Source Schema : timi_server
Target Server Type : MariaDB
Target Server Version : 110802 (11.8.2-MariaDB-ubu2404)
File Encoding : 65001
Date: 12/12/2025 14:24:29
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for article
-- ----------------------------
DROP TABLE IF EXISTS `article`;
CREATE TABLE `article` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
`type` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '类型',
`digest` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '摘要',
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '数据',
`extend_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '扩展数据 JSON' CHECK (json_valid(`extend_data`)),
`reads` int(11) NULL DEFAULT 0 COMMENT '阅读',
`likes` int(11) NULL DEFAULT 0 COMMENT '喜欢',
`show_comment` tinyint(1) NULL DEFAULT 1 COMMENT '1 为显示历史评论',
`can_comment` tinyint(1) NULL DEFAULT 1 COMMENT '1 为允许评论',
`can_ranking` tinyint(1) NULL DEFAULT 1 COMMENT '1 为允许进入每周排行列表',
`can_list` tinyint(1) NULL DEFAULT NULL COMMENT '1 为允许通过列表查询',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 128 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for async_task
-- ----------------------------
DROP TABLE IF EXISTS `async_task`;
CREATE TABLE `async_task` (
`uuid` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`message` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`progress` double NULL DEFAULT NULL,
`start_at` bigint(20) NULL DEFAULT NULL,
`interrupt_at` bigint(20) NULL DEFAULT NULL,
`error_at` bigint(20) NULL DEFAULT NULL,
`died_at` bigint(20) NULL DEFAULT NULL,
`can_pause` tinyint(1) NULL DEFAULT NULL,
`can_interrupt` tinyint(1) NULL DEFAULT NULL,
`is_periodical` tinyint(1) NULL DEFAULT NULL,
`cron` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`uuid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for attachment
-- ----------------------------
DROP TABLE IF EXISTS `attachment`;
CREATE TABLE `attachment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`biz_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_id` bigint(20) NOT NULL,
`attach_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`mongo_id` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`mime_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`size` bigint(20) NULL DEFAULT NULL,
`md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`ext` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` bigint(20) NOT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
`destroy_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 530 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '附件' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for bill
-- ----------------------------
DROP TABLE IF EXISTS `bill`;
CREATE TABLE `bill` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`revenue_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '收入类型',
`expenditure_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '支出类型',
`description` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
`remarks` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
`decimal` bigint(20) NOT NULL DEFAULT 0 COMMENT '金额(放大了 100 倍)',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3687 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '消费账单' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for comment
-- ----------------------------
DROP TABLE IF EXISTS `comment`;
CREATE TABLE `comment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`biz_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联业务',
`biz_id` bigint(20) NOT NULL COMMENT '关联业务 ID',
`user_id` bigint(20) NULL DEFAULT NULL COMMENT '评论者',
`nick` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '评论者昵称',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '内容',
`ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 69 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '评论' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for comment_remind_queue
-- ----------------------------
DROP TABLE IF EXISTS `comment_remind_queue`;
CREATE TABLE `comment_remind_queue` (
`uuid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'UUID',
`user_id` bigint(20) NOT NULL COMMENT '被回复用户 ID',
`reply_id` bigint(20) NOT NULL COMMENT '回复 ID',
PRIMARY KEY (`uuid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '评论回复提醒队列,被回复用户是注册用户并且开启邮件推送时,缓存在本表,由邮件推送服务操作' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for comment_reply
-- ----------------------------
DROP TABLE IF EXISTS `comment_reply`;
CREATE TABLE `comment_reply` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`comment_id` bigint(20) NOT NULL,
`reply_id` bigint(20) NULL DEFAULT NULL COMMENT '被回复的回复,回复主评论时为 NULL',
`sender_id` bigint(20) NULL DEFAULT NULL COMMENT '回复者',
`receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '被回复者',
`sender_nick` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '回复者昵称',
`receiver_nick` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '被回复者昵称',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '内容',
`ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '回复时 IP',
`ignored_at` bigint(20) NULL DEFAULT NULL COMMENT '被回复者忽略该回复的时间',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '评论回复' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for comment_reply_record
-- ----------------------------
DROP TABLE IF EXISTS `comment_reply_record`;
CREATE TABLE `comment_reply_record` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL COMMENT '用户 ID',
`reply_id` bigint(20) NOT NULL COMMENT '回复 ID',
`created_at` bigint(20) NOT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '评论回复记录(显示在个人空间\"回复我的\"),因“仅删除回复记录不删除实体回复”功能而作此表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for email_filter
-- ----------------------------
DROP TABLE IF EXISTS `email_filter`;
CREATE TABLE `email_filter` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`email` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`from` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '通过邮件直接拒绝系统发送的列表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for email_queue
-- ----------------------------
DROP TABLE IF EXISTS `email_queue`;
CREATE TABLE `email_queue` (
`uuid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'UUID',
`biz_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'EmailType 推送类型',
`biz_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '推送数据 ID',
`send_at` bigint(20) NOT NULL DEFAULT 0 COMMENT '推送时间',
PRIMARY KEY (`uuid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮件推送队列' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for email_queue_log
-- ----------------------------
DROP TABLE IF EXISTS `email_queue_log`;
CREATE TABLE `email_queue_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uuid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '队列 UUID',
`biz_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'EmailType 类型',
`biz_id` bigint(20) NULL DEFAULT NULL COMMENT '数据 ID',
`send_to` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '目标',
`send_at` bigint(20) NULL DEFAULT NULL COMMENT '时间',
`is_sent` tinyint(4) NULL DEFAULT NULL COMMENT '1 为成功',
`exception_msg` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '异常信息',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮件推送队列日志' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for feedback
-- ----------------------------
DROP TABLE IF EXISTS `feedback`;
CREATE TABLE `feedback` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`from` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '来自',
`email` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '联系邮箱',
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '内容',
`ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'IP',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '反馈' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for friend
-- ----------------------------
DROP TABLE IF EXISTS `friend`;
CREATE TABLE `friend` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`icon` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '图标 Base64',
`name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
`link` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '链接',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '友链' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for git_issue
-- ----------------------------
DROP TABLE IF EXISTS `git_issue`;
CREATE TABLE `git_issue` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`repository_id` bigint(20) NOT NULL COMMENT '所属仓库 ID',
`publisher_id` bigint(20) NULL DEFAULT NULL COMMENT '所属用户 ID',
`publisher_nick` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '游客昵称',
`type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类型',
`version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '版本',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
`description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
`status` varbinary(50) NULL DEFAULT NULL COMMENT '状态',
`confirmed_at` bigint(20) NULL DEFAULT NULL COMMENT '确认时间',
`develop_at` bigint(20) NULL DEFAULT NULL COMMENT '开发时间',
`closed_at` bigint(20) NULL DEFAULT NULL COMMENT '关闭时间',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Git 问题报告' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for git_merge
-- ----------------------------
DROP TABLE IF EXISTS `git_merge`;
CREATE TABLE `git_merge` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`repository_id` bigint(20) NOT NULL COMMENT '所属仓库 ID',
`requester_id` bigint(20) NOT NULL COMMENT '请求用户 ID',
`issue_id` bigint(20) NULL DEFAULT NULL COMMENT '相关反馈 ID',
`type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类型',
`from_branch` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源分支',
`to_branch` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '去向分支',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
`description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
`checked_at` bigint(20) NULL DEFAULT NULL COMMENT '通过审查时间',
`merged_at` bigint(20) NULL DEFAULT NULL COMMENT '合并时间',
`rejected_at` bigint(20) NULL DEFAULT NULL COMMENT '拒绝时间',
`reject_reason` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '拒绝原因',
`closed_at` bigint(20) NULL DEFAULT NULL COMMENT '关闭时间',
`status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '状态',
`created_at` bigint(20) NOT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Git 合并申请' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for git_release
-- ----------------------------
DROP TABLE IF EXISTS `git_release`;
CREATE TABLE `git_release` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`repository_id` bigint(20) NOT NULL COMMENT '所属仓库 ID',
`version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '版本',
`description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '说明',
`sha1` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '版本 SHA1',
`commits` int(11) NOT NULL DEFAULT 0 COMMENT '此版本后提交次数',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Git 版本发布' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for icon
-- ----------------------------
DROP TABLE IF EXISTS `icon`;
CREATE TABLE `icon` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`unicode` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`svg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 150 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字体图标' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for journal
-- ----------------------------
DROP TABLE IF EXISTS `journal`;
CREATE TABLE `journal` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`idea` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`lat` double NULL DEFAULT NULL,
`lng` double NULL DEFAULT NULL,
`location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`weather` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`pusher` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 48 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for lyric
-- ----------------------------
DROP TABLE IF EXISTS `lyric`;
CREATE TABLE `lyric` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`song` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '歌曲名',
`singer` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '演唱',
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '歌词',
`citations` bigint(20) NOT NULL DEFAULT 0 COMMENT '被引用次数,更新者不为空时开始计数',
`updated_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者 ID',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '歌词' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for lyric_corrects
-- ----------------------------
DROP TABLE IF EXISTS `lyric_corrects`;
CREATE TABLE `lyric_corrects` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`lyric_id` bigint(20) NULL DEFAULT NULL COMMENT '申请更新歌词 ID',
`song` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '歌曲名',
`singer` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '演唱',
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '歌词',
`request_by` bigint(20) NULL DEFAULT NULL COMMENT '申请人',
`request_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '申请人 IP',
`cancel_at` bigint(20) NULL DEFAULT NULL COMMENT '取消时间',
`approval_at` bigint(20) NULL DEFAULT NULL COMMENT '通过时间',
`reject_at` bigint(20) NULL DEFAULT NULL COMMENT '拒绝时间',
`reject_reason` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '拒绝原因',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '歌词更新申请' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for minecraft_pack
-- ----------------------------
DROP TABLE IF EXISTS `minecraft_pack`;
CREATE TABLE `minecraft_pack` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '游戏 ID',
`ver` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '整合包版本',
`title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标题',
`description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '简介',
`game_ver` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '游戏版本',
`def_option` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '默认配置',
`size` bigint(20) NOT NULL DEFAULT 0 COMMENT '文件大小',
`is_deprecated` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'true 为已过时',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Minecraft 客户端列表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for minecraft_pack_source
-- ----------------------------
DROP TABLE IF EXISTS `minecraft_pack_source`;
CREATE TABLE `minecraft_pack_source` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`pack_id` bigint(20) NOT NULL COMMENT '整合版 ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据源名称',
`type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据类型',
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据',
`order` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
`is_default` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'true 为默认',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Minecraft 客户端下载源' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for minecraft_player
-- ----------------------------
DROP TABLE IF EXISTS `minecraft_player`;
CREATE TABLE `minecraft_player` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL COMMENT '关联 User.id',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '游戏名',
`last_login_ip` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '最近登录 IP',
`last_login_at` bigint(20) NULL DEFAULT NULL COMMENT '最近登录',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`, `user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Minecraft 玩家' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for mirror
-- ----------------------------
DROP TABLE IF EXISTS `mirror`;
CREATE TABLE `mirror` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`bean` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '执行类',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '镜像数据',
`period` int(11) NOT NULL COMMENT '周期(分钟)',
`last_sync_at` bigint(20) NULL DEFAULT NULL COMMENT '最近同步时间',
`is_enable` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'true 为启用同步',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '镜像' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for multilingual
-- ----------------------------
DROP TABLE IF EXISTS `multilingual`;
CREATE TABLE `multilingual` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`key` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`zh_cn` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`zh_tw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`en_us` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`ru_ru` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`ja_jp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`de_de` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`ko_kr` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 795 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '多语言映射' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for setting
-- ----------------------------
DROP TABLE IF EXISTS `setting`;
CREATE TABLE `setting` (
`key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`description` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`is_private` tinyint(1) NOT NULL DEFAULT 1,
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`key`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统配置' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tag
-- ----------------------------
DROP TABLE IF EXISTS `tag`;
CREATE TABLE `tag` (
`id` bigint(20) NOT NULL,
`biz_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for task
-- ----------------------------
DROP TABLE IF EXISTS `task`;
CREATE TABLE `task` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
`digest` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '摘要',
`status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '状态',
`is_public` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'true 为公开',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '任务列表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for task_detail
-- ----------------------------
DROP TABLE IF EXISTS `task_detail`;
CREATE TABLE `task_detail` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`task_id` bigint(20) NOT NULL,
`type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类型',
`status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务状态',
`digest` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '摘要',
`description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '附加说明',
`complete_at` bigint(20) NULL DEFAULT NULL COMMENT '完成时间',
`close_at` bigint(20) NULL DEFAULT NULL COMMENT '关闭时间',
`close_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '关闭原因',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '任务详细列表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for template
-- ----------------------------
DROP TABLE IF EXISTS `template`;
CREATE TABLE `template` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`biz_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '模板' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for travel
-- ----------------------------
DROP TABLE IF EXISTS `travel`;
CREATE TABLE `travel` (
`id` bigint(20) NOT NULL,
`transportation_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '交通类型',
`title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '内容',
`travel_at` bigint(20) NULL DEFAULT NULL COMMENT '出行时间',
`days` int(11) NULL DEFAULT NULL COMMENT '天数',
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '状态',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '旅行计划' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for travel_location
-- ----------------------------
DROP TABLE IF EXISTS `travel_location`;
CREATE TABLE `travel_location` (
`id` bigint(20) NOT NULL,
`travel_id` bigint(20) NOT NULL COMMENT '旅行计划 ID',
`type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '类型',
`title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
`description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
`lat` double NULL DEFAULT NULL COMMENT '经度',
`lng` double NULL DEFAULT NULL COMMENT '维度',
`location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '位置',
`amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '费用',
`require_id_card` tinyint(4) NULL DEFAULT NULL COMMENT '1 为需要身份证',
`score` int(11) NULL DEFAULT NULL COMMENT '必要评分',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '旅行地点' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
`password` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码摘要',
`email` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱',
`email_verify_at` bigint(20) NULL DEFAULT NULL COMMENT '邮箱验证时间',
`unmute_at` bigint(20) NULL DEFAULT NULL COMMENT '解除禁言时间',
`unban_at` bigint(20) NULL DEFAULT NULL COMMENT '解除封禁时间',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_config
-- ----------------------------
DROP TABLE IF EXISTS `user_config`;
CREATE TABLE `user_config` (
`user_id` bigint(20) NOT NULL,
`email_reply_remind` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 为邮箱接收回复提醒',
`updated_at` bigint(20) NULL DEFAULT NULL COMMENT '配置更新时间',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户配置' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_privacy
-- ----------------------------
DROP TABLE IF EXISTS `user_privacy`;
CREATE TABLE `user_privacy` (
`user_id` bigint(20) NOT NULL,
`email` tinyint(1) NOT NULL DEFAULT 1,
`sex` tinyint(1) NOT NULL DEFAULT 1,
`birthdate` tinyint(1) NOT NULL DEFAULT 1,
`qq` tinyint(1) NOT NULL DEFAULT 1,
`last_login_at` tinyint(1) NOT NULL DEFAULT 1,
`created_at` tinyint(1) NOT NULL DEFAULT 1,
`updated_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户隐私控制,user_id 关联用户,updated_at 为本表更新时间,其他字段 1 为公开,0 为不公开' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_profile
-- ----------------------------
DROP TABLE IF EXISTS `user_profile`;
CREATE TABLE `user_profile` (
`user_id` bigint(20) NOT NULL COMMENT '用户 ID',
`wrapper_type` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PIXELATED' COMMENT '背景图渲染算法',
`avatar_type` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PIXELATED' COMMENT '头像渲染算法',
`exp` int(11) NOT NULL DEFAULT 0 COMMENT '经验值',
`sex` int(11) NULL DEFAULT NULL COMMENT '性别:0 女,1 男',
`birthdate` bigint(20) NULL DEFAULT NULL COMMENT '出生日期',
`qq` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'QQ',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
`last_login_ip` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '上次登录 IP',
`last_login_at` bigint(20) NULL DEFAULT NULL COMMENT '上次登录时间',
`updated_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户资料' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for version
-- ----------------------------
DROP TABLE IF EXISTS `version`;
CREATE TABLE `version` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
`version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '版本',
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新摘要',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新地址',
`created_at` bigint(20) NULL DEFAULT NULL,
`updated_at` bigint(20) NULL DEFAULT NULL,
`deleted_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '软件版本管理' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
@@ -0,0 +1,23 @@
DROP TABLE IF EXISTS `tag`;
CREATE TABLE `tag` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`name_lang_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称语言映射 ID',
`created_at` BIGINT(20) COMMENT '创建时间',
`updated_at` BIGINT(20) COMMENT '更新时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_name_lang_id`(`name_lang_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '标签' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `tag_apply`;
CREATE TABLE `tag_apply` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_type` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型',
`biz_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务 ID',
`tag_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签 ID',
`created_at` BIGINT(20) COMMENT '创建时间',
`updated_at` BIGINT(20) COMMENT '更新时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_tag_apply`(`biz_type` ASC, `biz_id` ASC, `tag_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '标签应用' ROW_FORMAT = Dynamic;
@@ -0,0 +1,12 @@
DROP TABLE IF EXISTS `icon`;
CREATE TABLE `icon` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`name` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`unicode` VARCHAR(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`svg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_name`(`name` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '图标' ROW_FORMAT = Dynamic;
@@ -0,0 +1,32 @@
DROP TABLE IF EXISTS `lyric`;
CREATE TABLE `lyric` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`song` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '歌曲名',
`singer` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '演唱',
`content` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '歌词',
`citations` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '被引用次数,更新者不为空时开始计数',
`updated_by` BIGINT(20) COMMENT '更新者 ID',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '歌词' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `lyric_corrects`;
CREATE TABLE `lyric_corrects` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`lyric_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '申请更新歌词 ID',
`song` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '歌曲名',
`singer` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '演唱',
`content` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '歌词',
`request_by` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '申请人',
`request_ip` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '申请人 IP',
`cancel_at` BIGINT(20) COMMENT '取消时间',
`approval_at` BIGINT(20) COMMENT '通过时间',
`reject_at` BIGINT(20) COMMENT '拒绝时间',
`reject_reason` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '拒绝原因',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '歌词修正申请' ROW_FORMAT = Dynamic;
@@ -0,0 +1,15 @@
DROP TABLE IF EXISTS `mirror`;
CREATE TABLE `mirror` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`bean` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '执行类',
`name` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
`data` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '镜像数据',
`period` INT(11) NOT NULL COMMENT '周期(分钟)',
`last_sync_at` BIGINT(20) COMMENT '最近同步时间',
`is_enable` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'true 为启用同步',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_bean`(`bean` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '镜像' ROW_FORMAT = Dynamic;
@@ -0,0 +1,54 @@
DROP TABLE IF EXISTS `journal`;
CREATE TABLE `journal` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`type` VARCHAR(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`idea` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`lat` decimal(10, 7) COMMENT '纬度',
`lng` decimal(10, 7) COMMENT '经度',
`location` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`weather` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`pusher` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_deleted_created`(`deleted_at` ASC, `created_at` ASC) USING BTREE,
INDEX `idx_type_deleted_created`(`type` ASC, `deleted_at` ASC, `created_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '旅行日记' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `travel`;
CREATE TABLE `travel` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`transportation_type` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '交通类型',
`title` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '标题',
`content` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容',
`travel_at` BIGINT(20) COMMENT '出行时间',
`days` INT(11) COMMENT '天数',
`status` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '状态',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '旅行计划' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `travel_location`;
CREATE TABLE `travel_location` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`travel_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '旅行计划 ID',
`type` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '类型',
`title` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '标题',
`description` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '说明',
`lat` decimal(10, 7) COMMENT '纬度',
`lng` decimal(10, 7) COMMENT '经度',
`location` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '位置',
`amount` decimal(10, 2) COMMENT '费用',
`require_id_card` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 为需要身份证',
`require_appoINTment` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 为需要预约',
`score` INT(11) COMMENT '评分',
`importance` INT(11) COMMENT '重要程度',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_travel_deleted`(`travel_id` ASC, `deleted_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '旅行地点' ROW_FORMAT = Dynamic;
@@ -0,0 +1,72 @@
CREATE TABLE IF NOT EXISTS `gao_customer` (
`id` VARCHAR(36) NOT NULL,
`code` VARCHAR(64) NOT NULL COMMENT '客户编码',
`name` VARCHAR(64) NOT NULL COMMENT '姓名',
`gender` VARCHAR(16) NULL COMMENT '性别代码,MALE 男,FEMALE 女',
`age` INT NULL COMMENT '年龄',
`telephone` VARCHAR(32) NULL COMMENT '电话',
`address` VARCHAR(255) NULL COMMENT '住址',
`remark` TEXT NULL COMMENT '备注',
`disease` VARCHAR(255) NULL COMMENT '病症',
`conditioning_part` JSON NULL COMMENT '调理部位',
`introducer_customer_id` VARCHAR(36) NULL COMMENT '介绍人客户 ID',
`created_at` BIGINT NOT NULL,
`updated_at` BIGINT NULL,
`deleted_at` BIGINT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_gao_customer_code` (`code`),
KEY `idx_gao_customer_introducer_customer_id` (`introducer_customer_id`)
) COMMENT='客户';
CREATE TABLE IF NOT EXISTS `gao_registration_event` (
`id` VARCHAR(36) NOT NULL,
`name` VARCHAR(64) NOT NULL COMMENT '登记事件名称',
`description` VARCHAR(255) NULL COMMENT '说明',
`enabled` BIT(1) NOT NULL COMMENT 'true 为启用',
`require_photo` BIT(1) NOT NULL COMMENT 'true 为登记时要求拍照',
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序值',
`created_at` BIGINT NOT NULL,
`updated_at` BIGINT NULL,
`deleted_at` BIGINT NULL,
PRIMARY KEY (`id`)
) COMMENT='登记事件';
CREATE TABLE IF NOT EXISTS `gao_registration_event_role_relation` (
`id` VARCHAR(36) NOT NULL,
`registration_event_id` VARCHAR(36) NOT NULL COMMENT '登记事件 ID',
`role_code` VARCHAR(128) NOT NULL COMMENT '角色代码',
`created_at` BIGINT NOT NULL,
`updated_at` BIGINT NULL,
`deleted_at` BIGINT NULL,
PRIMARY KEY (`id`),
KEY `idx_gao_registration_event_role_relation_registration_event_id` (`registration_event_id`)
) COMMENT='登记事件角色关联';
CREATE TABLE IF NOT EXISTS `gao_registration_event_record` (
`id` VARCHAR(36) NOT NULL,
`customer_id` VARCHAR(36) NOT NULL COMMENT '客户 ID',
`registration_event_id` VARCHAR(36) NOT NULL COMMENT '登记事件 ID',
`operator_user_id` VARCHAR(36) NOT NULL COMMENT '登记管理员用户 ID',
`remark` TEXT NULL COMMENT '备注',
`registered_at` BIGINT NOT NULL COMMENT '登记时间',
`created_at` BIGINT NOT NULL,
`updated_at` BIGINT NULL,
`deleted_at` BIGINT NULL,
PRIMARY KEY (`id`),
KEY `idx_gao_registration_event_record_customer_id` (`customer_id`),
KEY `idx_gao_registration_event_record_registration_event_id` (`registration_event_id`),
KEY `idx_gao_registration_event_record_registered_at` (`registered_at`)
) COMMENT='登记事件记录';
CREATE TABLE IF NOT EXISTS `gao_user` (
`id` VARCHAR(36) NOT NULL,
`user_id` VARCHAR(36) NOT NULL COMMENT '用户 ID',
`enabled` BIT(1) NOT NULL COMMENT 'true 为启用',
`remark` VARCHAR(255) NULL COMMENT '备注',
`created_at` BIGINT NOT NULL,
`updated_at` BIGINT NULL,
`deleted_at` BIGINT NULL,
PRIMARY KEY (`id`),
KEY `idx_gao_user_user_id` (`user_id`),
KEY `idx_gao_user_enabled` (`enabled`, `deleted_at`, `created_at`)
) COMMENT='GAO 用户';
@@ -0,0 +1,219 @@
/*
Navicat Premium Dump SQL
Source Server : dev_mariadb
Source Server Type : MariaDB
Source Server Version : 110802 (11.8.2-MariaDB-ubu2404)
Source Host : vm.imyeyu.develop:3306
Source Schema : timi_server
Target Server Type : MariaDB
Target Server Version : 110802 (11.8.2-MariaDB-ubu2404)
File Encoding : 65001
Date: 12/05/2026 23:34:03
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for logger
-- ----------------------------
DROP TABLE IF EXISTS `logger`;
CREATE TABLE `logger` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`level` VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '日志级别',
`module` VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '模块名称',
`operation` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作描述',
`user_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '用户 ID',
`content` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容',
`result` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '结果',
`exception` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '异常',
`duration` INT(11) COMMENT '执行时长(ms)',
`ip` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'IP',
`created_at` BIGINT(20) NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_level`(`level` ASC) USING BTREE,
INDEX `idx_module`(`module` ASC) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_created_at`(`created_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '日志' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for multilingual
-- ----------------------------
DROP TABLE IF EXISTS `multilingual`;
CREATE TABLE `multilingual` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`zh_cn` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '简体中文',
`zh_tw` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '繁体中文',
`en_us` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '英语',
`ru_ru` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '俄语',
`ja_jp` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '日语',
`de_de` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '德语',
`ko_kr` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '韩语',
`last_access_at` BIGINT(20) COMMENT '最后访问时间',
`created_at` BIGINT(20) COMMENT '创建时间',
`updated_at` BIGINT(20) COMMENT '更新时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_last_access_at`(`last_access_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '多语言映射' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for permission
-- ----------------------------
DROP TABLE IF EXISTS `permission`;
CREATE TABLE `permission` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`module_code` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块代码',
`code` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '代码',
`name_lang_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '名称语言映射 ID',
`description` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '说明',
`created_at` BIGINT(20) COMMENT '创建时间',
`updated_at` BIGINT(20) COMMENT '更新时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_module_code_code`(`module_code` ASC, `code` ASC) USING BTREE,
INDEX `idx_module_code`(`module_code` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '权限' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`module_code` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块代码',
`code` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '代码',
`name_lang_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '名称语言映射 ID',
`description` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '说明',
`created_at` BIGINT(20) COMMENT '创建时间',
`updated_at` BIGINT(20) COMMENT '更新时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_module_code_code`(`module_code` ASC, `code` ASC) USING BTREE,
INDEX `idx_module_code`(`module_code` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for role_permission
-- ----------------------------
DROP TABLE IF EXISTS `role_permission`;
CREATE TABLE `role_permission` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`role_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色 ID',
`permission_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '权限 ID',
`created_at` BIGINT(20) COMMENT '创建时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_role_permission`(`role_id` ASC, `permission_id` ASC) USING BTREE,
INDEX `idx_permission_id`(`permission_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色权限' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for role_relation
-- ----------------------------
DROP TABLE IF EXISTS `role_relation`;
CREATE TABLE `role_relation` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`parent_role_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '上级角色',
`child_role_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '子级角色',
`created_at` BIGINT(20) COMMENT '创建时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_role_relation`(`parent_role_id` ASC, `child_role_id` ASC) USING BTREE,
INDEX `idx_child_role_id`(`child_role_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色关联' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for setting
-- ----------------------------
DROP TABLE IF EXISTS `setting`;
CREATE TABLE `setting` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_type` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`biz_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`code` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`value` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`value_type` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`value_args` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '组件配置',
`description` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '说明',
`is_private` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '1 为私有',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_setting_key`(`biz_type` ASC, `biz_id` ASC, `code` ASC) USING BTREE,
INDEX `idx_private_deleted`(`is_private` ASC, `deleted_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '配置' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`name` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
`nick` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '昵称',
`password` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码摘要',
`email` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '邮箱',
`email_verify_at` BIGINT(20) COMMENT '邮箱验证时间',
`phone_no` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '手机号',
`phone_no_verify_at` BIGINT(20) COMMENT '手机号验证时间',
`wrapper_type` VARCHAR(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PIXELATED' COMMENT '背景图渲染算法',
`avatar_type` VARCHAR(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PIXELATED' COMMENT '头像渲染算法',
`exp` INT(11) NOT NULL DEFAULT 0 COMMENT '经验值',
`gender` varchar(16) COMMENT '性别',
`birthdate` BIGINT(20) COMMENT '出生日期',
`qq` VARCHAR(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'QQ',
`description` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '说明',
`last_login_ip` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '上次登录 IP',
`last_login_at` BIGINT(20) COMMENT '上次登录时间',
`unmute_at` BIGINT(20) COMMENT '解除禁言时间',
`unban_at` BIGINT(20) COMMENT '解除封禁时间',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_name`(`name` ASC) USING BTREE,
INDEX `idx_email`(`email` ASC) USING BTREE,
INDEX `idx_phone_no`(`phone_no` ASC) USING BTREE,
INDEX `idx_deleted_created`(`deleted_at` ASC, `created_at` ASC) USING BTREE,
INDEX `idx_last_login_at`(`last_login_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_behavior_record
-- ----------------------------
DROP TABLE IF EXISTS `user_behavior_record`;
CREATE TABLE `user_behavior_record` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键',
`biz_type` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型',
`user_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户 ID',
`target_type` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目标类型',
`target_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目标 ID',
`action_type` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '行为类型',
`created_at` BIGINT(20) COMMENT '创建时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_active`(`biz_type` ASC, `user_id` ASC, `target_type` ASC, `target_id` ASC, `action_type` ASC, `deleted_at` ASC) USING BTREE,
INDEX `idx_user_action_created`(`user_id` ASC, `biz_type` ASC, `target_type` ASC, `action_type` ASC, `deleted_at` ASC, `created_at` ASC) USING BTREE,
INDEX `idx_target`(`target_type` ASC, `target_id` ASC, `action_type` ASC, `deleted_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户行为' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_role
-- ----------------------------
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE `user_role` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`user_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户 ID',
`role_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色 ID',
`created_at` BIGINT(20) COMMENT '创建时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_role`(`user_id` ASC, `role_id` ASC) USING BTREE,
INDEX `idx_role_id`(`role_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户角色' ROW_FORMAT = Dynamic;
@@ -0,0 +1,19 @@
SET @created_at = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000);
SET @zero_uuid = '00000000-0000-0000-0000-000000000000';
INSERT INTO `setting` (`id`,
`biz_type`,
`biz_id`,
`code`,
`value`,
`value_type`,
`value_args`,
`description`,
`is_private`,
`created_at`,
`updated_at`,
`deleted_at`
) VALUES
(UUID(), 'USER', @zero_uuid, 'ENABLE_LOGIN', 'TRUE', 'BOOLEAN', NULL, NULL, 1, @created_at, NULL, NULL),
(UUID(), 'USER', @zero_uuid, 'TOKEN_TTL', '7d', 'TIME', NULL, NULL, 1, @created_at, NULL, NULL)
;
@@ -0,0 +1,22 @@
DROP TABLE IF EXISTS `article`;
CREATE TABLE `article` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_type` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型',
`biz_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务 ID',
`title` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '标题',
`digest` LONGTEXT COLLATE utf8mb4_unicode_ci COMMENT '摘要',
`content_type` VARCHAR(32) COLLATE utf8mb4_unicode_ci COMMENT '内容类型',
`content` LONGTEXT COLLATE utf8mb4_unicode_ci COMMENT '内容',
`reads` INT(11) DEFAULT 0 COMMENT '阅读',
`likes` INT(11) DEFAULT 0 COMMENT '喜欢',
`published_at` BIGINT(20),
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_biz_type_biz_id` (`biz_type`, `biz_id`) USING BTREE,
INDEX `idx_published_at` (`published_at`) USING BTREE,
INDEX `idx_created_at` (`created_at`) USING BTREE,
INDEX `idx_deleted_at` (`deleted_at`) USING BTREE,
INDEX `idx_reads` (`reads`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文章' ROW_FORMAT = Dynamic;
@@ -0,0 +1,19 @@
DROP TABLE IF EXISTS `async_task`;
CREATE TABLE `async_task` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`name` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`type` VARCHAR(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`message` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`status` VARCHAR(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`progress` double DEFAULT -1,
`start_at` BIGINT(20),
`interrupt_at` BIGINT(20),
`error_at` BIGINT(20),
`died_at` BIGINT(20),
`can_pause` TINYINT(1),
`can_interrupt` TINYINT(1),
`is_periodical` TINYINT(1),
`cron` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`created_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '异步任务' ROW_FORMAT = Dynamic;
@@ -0,0 +1,24 @@
DROP TABLE IF EXISTS `attachment`;
CREATE TABLE `attachment` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_type` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`attach_type` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`mongo_id` VARCHAR(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`title` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`name` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`mime_type` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`metadata` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`size` BIGINT(20),
`md5` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`uploader_ip` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`is_destroyed` TINYINT(1) NOT NULL DEFAULT 0,
`created_at` BIGINT(20) NOT NULL,
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
`destroy_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_biz_deleted_destroy`(`biz_type` ASC, `biz_id` ASC, `deleted_at` ASC, `destroy_at` ASC) USING BTREE,
UNIQUE INDEX `uk_mongo_id`(`mongo_id` ASC) USING BTREE,
INDEX `idx_destroyed_destroy_at`(`is_destroyed` ASC, `destroy_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '附件' ROW_FORMAT = Dynamic;
@@ -0,0 +1,28 @@
DROP TABLE IF EXISTS `comment`;
CREATE TABLE `comment` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_type` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型',
`biz_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务 ID',
`parent_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '父评论 ID,主评论为 NULL',
`root_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '根评论 ID,主评论为自身 ID',
`user_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '评论用户 ID',
`user_nick` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '评论用户昵称,游客评论时使用',
`reply_user_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '被回复用户 ID',
`reply_user_nick` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '被回复用户昵称,被回复人为游客时使用',
`level` INT(11) NOT NULL DEFAULT 1 COMMENT '评论层级,1 为主评论',
`content` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容',
`ip` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '评论 IP',
`reply_count` INT(11) NOT NULL DEFAULT 0 COMMENT '回复数',
`like_count` INT(11) NOT NULL DEFAULT 0 COMMENT '点赞数',
`status` VARCHAR(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'NORMAL' COMMENT '评论状态',
`is_top` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否置顶',
`last_reply_at` BIGINT(20) COMMENT '最后回复时间',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_biz_parent_status_deleted`(`biz_type` ASC, `biz_id` ASC, `parent_id` ASC, `status` ASC, `deleted_at` ASC) USING BTREE,
INDEX `idx_root_deleted_created`(`root_id` ASC, `deleted_at` ASC, `created_at` ASC) USING BTREE,
INDEX `idx_parent_deleted_created`(`parent_id` ASC, `deleted_at` ASC, `created_at` ASC) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '评论' ROW_FORMAT = Dynamic;
@@ -0,0 +1,29 @@
DROP TABLE IF EXISTS `data_dict`;
CREATE TABLE `data_dict` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_type` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '业务类型',
`code` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '代码',
`parent_code` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '父级代码',
`name_lang_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '名称语言映射 ID',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_biz_code`(`biz_type` ASC, `code` ASC) USING BTREE,
INDEX `idx_parent_code`(`biz_type` ASC, `parent_code` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `data_dict_option`;
CREATE TABLE `data_dict_option` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`dict_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属字典 ID',
`value_code` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '值代码',
`value_parent_code` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '父级值代码',
`value_lang_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '值语言映射 ID',
`created_at` BIGINT(20),
`updated_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_dict_value_code`(`dict_id` ASC, `value_code` ASC) USING BTREE,
INDEX `idx_dict_parent_code`(`dict_id` ASC, `value_parent_code` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典选项' ROW_FORMAT = Dynamic;
@@ -0,0 +1,9 @@
DROP TABLE IF EXISTS `email_filter`;
CREATE TABLE `email_filter` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`email` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` BIGINT(20),
`deleted_at` BIGINT(20),
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_email`(`email` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '拒收邮件邮箱' ROW_FORMAT = Dynamic;
@@ -0,0 +1,39 @@
DROP TABLE IF EXISTS `notify`;
CREATE TABLE `notify` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`biz_type` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '业务类型',
`biz_reminded_type` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '被提醒者类型',
`biz_reminded_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '被提醒者 ID',
`args` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '参数',
`created_by` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '创建者',
`created_at` BIGINT(20) COMMENT '创建时间',
`updated_at` BIGINT(20) COMMENT '更新时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_biz_reminded_created`(`biz_type` ASC, `biz_reminded_type` ASC, `biz_reminded_id` ASC, `created_at` ASC) USING BTREE,
INDEX `idx_deleted_created`(`deleted_at` ASC, `created_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '通知' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `notify_detail`;
CREATE TABLE `notify_detail` (
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`notify_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属通知 ID',
`msg_type` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '消息类型',
`template_id` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '模板 ID',
`subject` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '标题',
`data` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容',
`args` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '参数',
`send_from` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '发送来源',
`send_to` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '发送去向',
`send_at` BIGINT(20) COMMENT '发送时间',
`retry` INT(11) COMMENT '重试计数',
`timeout_at` BIGINT(20) COMMENT '超时时间',
`result_desc` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '结果描述',
`status` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '状态',
`created_at` BIGINT(20) COMMENT '创建时间',
`updated_at` BIGINT(20) COMMENT '更新时间',
`deleted_at` BIGINT(20) COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_notify_id`(`notify_id` ASC) USING BTREE,
INDEX `idx_status_created`(`status` ASC, `created_at` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '通知详情' ROW_FORMAT = Dynamic;
@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.blog.mapper.ArticleMapper">
<sql id="table">article</sql>
<!-- 查询列表的文章字段 -->
<sql id="listColumn">
`id`,
`type`,
`title`,
`digest`,
`likes`,
`reads`,
`created_at`,
`updated_at`
</sql>
<!-- 列表 -->
<sql id="normalCondition">
FROM
article
WHERE
can_list IS TRUE
AND deleted_at IS NULL
</sql>
<select id="countByPage" resultType="long">
SELECT COUNT(1) <include refid="normalCondition" />
</select>
<select id="selectByPage" resultType="com.imyeyu.api.modules.blog.entity.Article">
SELECT
<include refid="listColumn" />
<include refid="normalCondition" />
ORDER BY
COALESCE(updated_at, created_at) DESC
LIMIT
#{offset}, #{limit}
</select>
<!-- 根据关键字获取列表 -->
<sql id="byKeywordCondition">
<include refid="normalCondition" />
AND (
`title` LIKE CONCAT('%', #{keyword}, '%')
OR `digest` LIKE CONCAT('%', #{keyword}, '%')
)
</sql>
<select id="countByKeyword" resultType="long">
SELECT COUNT(1) <include refid="byKeywordCondition" />
</select>
<select id="selectByKeyword" resultType="com.imyeyu.api.modules.blog.entity.Article">
SELECT
<include refid="listColumn" />
<include refid="byKeywordCondition" />
ORDER BY
COALESCE(updated_at, created_at) DESC
LIMIT
#{offset}, #{limit}
</select>
</mapper>
@@ -1,79 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.AttachmentMapper">
<sql id="table">attachment</sql>
<select id="listByBizId" resultType="com.imyeyu.api.modules.common.entity.Attachment">
SELECT
*
FROM
attachment
WHERE
biz_type = #{bizType}
<if test="bizId != null">
AND biz_id = #{bizId}
</if>
<if test="attachTypes != null and 0 &lt; attachTypes.size()">
AND attach_type IN
<foreach collection="attachTypes" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND deleted_at IS NULL
AND destroy_at IS NULL
<if test="page != null">
<if test="page.orderMap != null and !page.orderMap.isEmpty()">
ORDER BY
<foreach collection="page.orderMap" index="key" item="value" separator=",">
${key} ${value}
</foreach>
</if>
LIMIT
#{page.offset},
#{page.limit}
</if>
</select>
<select id="countByBizId" resultType="long">
SELECT
COUNT(1)
FROM
attachment
WHERE
biz_type = #{bizType}
<if test="bizId != null">
AND biz_id = #{bizId}
</if>
<if test="attachTypes != null and 0 &lt; attachTypes.size()">
AND attach_type IN
<foreach collection="attachTypes" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND deleted_at IS NULL
AND destroy_at IS NULL
</select>
<select id="listByMd5s" resultType="com.imyeyu.api.modules.common.entity.Attachment">
SELECT
*
FROM
attachment
WHERE
biz_type = #{bizType}
<if test="bizId != null">
AND biz_id = #{bizId}
</if>
<if test="attachTypes != null and 0 &lt; attachTypes.size()">
AND attach_type IN
<foreach collection="attachTypes" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="md5s != null and 0 &lt; md5s.size()">
AND `md5` IN
<foreach collection="md5s" item="md5" open="(" separator="," close=")">
#{md5}
</foreach>
</if>
AND deleted_at IS NULL
AND destroy_at IS NULL
</select>
</mapper>
@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.CommentMapper">
<sql id="table">comment</sql>
<select id="countAll" resultType="long">
SELECT
SUM(result.total_comment + result.total_reply)
FROM (
SELECT
COUNT(DISTINCT comment.id) AS total_comment,
COUNT(comment_reply.comment_id) AS total_reply
FROM
comment
LEFT JOIN
comment_reply
ON
comment_reply.comment_id = comment.id
WHERE
comment.biz_type = #{bizType}
AND comment.biz_id = #{bizId}
AND comment.deleted_at IS NULL
AND comment_reply.deleted_at IS NULL
) AS result
</select>
</mapper>
@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.IconMapper">
<sql id="table">icon</sql>
<!-- 根据标签获取部分 -->
<sql id="byLabel">
FROM (
SELECT
id
FROM
icon_labels
WHERE
${lang} LIKE CONCAT('%', #{label}, '%')
AND icon_labels.deleted_at IS NULL
) AS labels
LEFT JOIN
icon_label
ON
icon_label.icon_label_id = labels.id
AND labels.id IS NOT NULL
LEFT JOIN
<include refid="table" />
ON
icon.id = icon_label.icon_id
WHERE
icon.id IS NOT NULL
AND icon.deleted_at IS NULL
</sql>
<select id="countByLabel" resultType="long">
SELECT COUNT(1) <include refid="byLabel" />
</select>
<select id="listByLabel" resultType="com.imyeyu.api.modules.common.entity.Icon">
SELECT icon.* <include refid="byLabel" /> LIMIT #{offset}, #{limit}
</select>
</mapper>
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.MultilingualMapper">
<select id="selectByKeyList" resultType="com.imyeyu.api.modules.common.entity.Multilingual">
SELECT * FROM multilingual WHERE key IN
<foreach collection='keys' item='item' open='(' separator=',' close=')'>
#{item}
</foreach>
AND deleted_at IS NULL
</select>
</mapper>
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.SettingMapper">
<sql id="table">setting</sql>
<select id="listByKeys">
SELECT
*
FROM
<include refid="table" />
WHERE
key IN
<foreach collection="keys" item="key" open="(" separator="," close=")">
#{key}
</foreach>
</select>
</mapper>
@@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.TaskMapper">
<!-- 所有公开任务 -->
<select id="listAll4Public" resultMap="findAll4PublicResult">
SELECT
id,
name,
digest,
status,
td.*
FROM
task
LEFT JOIN (
SELECT
*
FROM (
-- 任务详情
SELECT
id AS detial_id,
task_id,
bizType,
status AS tdStatus,
digest AS tdDigest,
created_at,
ROW_NUMBER() OVER (PARTITION BY task_id ORDER BY created_at DESC) AS seq
FROM
task_detail
WHERE
deleted_at IS NULL
) AS cr
WHERE
seq &lt; 7
) AS td
ON
td.task_id = task.id
WHERE
is_public = 1
AND deleted_at IS NULL
</select>
<resultMap id="findAll4PublicResult" type="com.imyeyu.api.modules.common.entity.Task">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="digest" column="digest"/>
<result property="status" column="status"/>
<!-- 关联任务 -->
<collection property="details" ofType="com.imyeyu.api.modules.common.entity.TaskDetail">
<id property="id" column="detial_id"/>
<result property="bizType" column="bizType"/>
<result property="status" column="tdStatus"/>
<result property="digest" column="tdDigest"/>
<result property="createdAt" column="created_at"/>
</collection>
</resultMap>
</mapper>
@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.UserConfigMapper">
<sql id="table">user_config</sql>
</mapper>
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.UserPrivacyMapper">
</mapper>
@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.UserProfileMapper">
<sql id="table">user_profile</sql>
</mapper>
@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.git.mapper.IssueMapper">
<sql id="table">git_issue</sql>
<sql id="pageCondition">
repository_id = #{issuePage.repositoryId}
<if test="issuePage.type != null">
AND type = #{issuePage.type}
</if>
<if test="issuePage.status != null">
AND status = #{issuePage.status}
</if>
<if test="issuePage.keyword != null and issuePage.keyword != ''">
AND (
title LIKE CONCAT('%', #{issuePage.keyword}, '%')
OR description LIKE CONCAT('%', #{issuePage.keyword}, '%')
)
</if>
AND deleted_at IS NULL
</sql>
<select id="countByIssuePage" resultType="long">
SELECT COUNT(1) FROM <include refid="table" /> WHERE <include refid="pageCondition" />
</select>
<select id="listByIssuePage" resultType="com.imyeyu.api.modules.git.entity.Issue">
SELECT
id,
title,
type,
status,
created_at
FROM
<include refid="table" />
WHERE
<include refid="pageCondition" />
ORDER BY
COALESCE(updated_at, created_at) DESC
LIMIT
#{offset}, #{limit}
</select>
</mapper>
@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.git.mapper.MergeMapper">
<sql id="table">git_merge</sql>
<sql id="pageCondition">
repository_id = #{mergePage.repositoryId}
<if test="mergePage.type != null">
AND type = #{mergePage.type}
</if>
<if test="mergePage.status != null">
AND status = #{mergePage.status}
</if>
<if test="mergePage.keyword != null and mergePage.keyword != ''">
AND (
title LIKE CONCAT('%', #{mergePage.keyword}, '%')
OR description LIKE CONCAT('%', #{mergePage.keyword}, '%')
)
</if>
AND deleted_at IS NULL
</sql>
<select id="countByMergePage" resultType="long">
SELECT COUNT(1) FROM <include refid="table" /> WHERE <include refid="pageCondition" />
</select>
<select id="listByMergePage" resultType="com.imyeyu.api.modules.git.entity.Merge">
SELECT
id,
title,
type,
status,
created_at
FROM
<include refid="table" />
WHERE
<include refid="pageCondition" />
ORDER BY
COALESCE(updated_at, created_at) DESC
LIMIT
#{offset}, #{limit}
</select>
</mapper>
@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.git.mapper.ReleaseMapper">
<sql id="table">git_release</sql>
<select id="listByRepositoryId" resultMap="listByRepositoryIdResult">
SELECT
release.*,
attachment.id AS attachmentId,
attachment.biz_type,
attachment.biz_id,
attachment.lid_title,
attachment.name,
attachment.size
FROM
<include refid="table" /> AS release
LEFT JOIN
attachment
ON
attachment.biz_type = '${@com.imyeyu.timiserver.modules.common.entity.Attachment$BizType@GIT}'
AND attachment.biz_id = release.id
AND attachment.attach_type = '${@com.imyeyu.timiserver.modules.git.bean.AttachType@RELEASE}'
AND attachment.deleted_at IS NULL
WHERE
release.repository_id = #{repositoryId}
AND release.deleted_at IS NULL
ORDER BY
COALESCE(release.updated_at, release.created_at) DESC
LIMIT
#{offset}, #{limit}
</select>
<resultMap id="listByRepositoryIdResult" type="com.imyeyu.api.modules.git.vo.release.ReleaseView" autoMapping="true">
<id property="id" column="id" />
<!-- 关联附件 -->
<collection property="attachmentList" ofType="com.imyeyu.api.modules.common.entity.Attachment">
<id property="id" column="attachmentId" />
<result property="bizType" column="biz_type" />
<result property="bizId" column="biz_id" />
<result property="lidTitle" column="lid_title" />
<result property="name" column="name" />
<result property="size" column="size" />
</collection>
</resultMap>
</mapper>
@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.gitea.mapper.ActionMapper">
<select id="count" resultType="long">
SELECT
COUNT(*)
FROM
action
WHERE
1 = 1
<if test="repoId != null">
AND action.repo_id = #{repoId}
</if>
<if test="branch != null">
AND action.ref_name LIKE CONCAT('%', #{branch})
</if>
<if test="operation != null">
AND action.op_type = #{operation.value}
</if>
</select>
<select id="list" resultType="com.imyeyu.api.modules.gitea.bean.ActionLogDTO">
SELECT
repository.id AS repo_id,
repository.name AS repo_name,
operator.id AS operator_id,
action.ref_name,
action.content,
action.created_unix * 1000 AS operatedAt
FROM
action
INNER JOIN
repository ON action.repo_id = repository.id
INNER JOIN
user AS operator ON action.act_user_id = operator.id
WHERE
1 = 1
<if test="repoId != null">
AND action.repo_id = #{repoId}
</if>
<if test="branch != null">
AND action.ref_name LIKE CONCAT('%', #{branch})
</if>
<if test="operation != null">
AND action.op_type = #{operation.value}
</if>
ORDER BY
action.created_unix DESC,
action.id DESC
LIMIT
#{offset}, #{limit}
</select>
</mapper>
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.journal.mapper.JournalMapper">
<sql id="table">journal</sql>
<select id="listByIds" resultType="com.imyeyu.api.modules.journal.entity.Journal">
SELECT
*
FROM
<include refid="table" />
WHERE
1 = 1
<if test="ids != null and 0 &lt; ids.length">
AND `id` IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
AND deleted_at IS NULL
</select>
</mapper>
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.journal.mapper.TravelLocationMapper">
<sql id="table">travel_location</sql>
<select id="listByIds" resultType="com.imyeyu.api.modules.journal.entity.TravelLocation">
SELECT
*
FROM
<include refid="table" />
WHERE
1 = 1
<if test="ids != null and 0 &lt; ids.length">
AND `id` IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
AND deleted_at IS NULL
</select>
</mapper>
@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.minecraft.mapper.PackMapper">
<!-- 获取 -->
<select id="listPacks" resultMap="listPacksResult">
SELECT
pack.*,
source.name AS sourceName,
source.type AS sourceType,
source.data AS sourceData,
source.is_default
FROM
minecraft_pack AS pack
LEFT JOIN
minecraft_pack_source AS source
ON
source.pack_id = pack.id
WHERE
pack.deleted_at IS NULL
AND source.deleted_at IS NULL
ORDER BY
pack.is_deprecated, pack.created_at DESC, source.order ASC
</select>
<resultMap id="listPacksResult" type="com.imyeyu.api.modules.minecraft.entity.MinecraftPack" autoMapping="true">
<id property="id" column="id" />
<collection property="sourceList" ofType="com.imyeyu.api.modules.minecraft.entity.MinecraftPackSource" autoMapping="false">
<result property="name" column="sourceName" />
<result property="type" column="sourceType" />
<result property="data" column="sourceData" />
<result property="isDefault" column="is_default" />
</collection>
</resultMap>
</mapper>
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.minecraft.mapper.PlayerMapper">
</mapper>
@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.system.mapper.AsyncTaskMapper">
<sql id="table">async_task</sql>
<insert id="insert">
INSERT INTO <include refid="table" /> (
uuid,
name,
type,
message,
status,
progress,
can_pause,
can_interrupt,
is_periodical,
cron,
start_at,
interrupt_at,
error_at,
died_at,
created_at
) VALUES (
#{uuid},
#{name},
#{type},
#{message},
#{status},
#{progress},
#{canPause},
#{canInterrupt},
#{isPeriodical},
#{cron},
#{startAt},
#{interruptAt},
#{errorAt},
#{diedAt},
#{createdAt}
)
</insert>
<update id="update" parameterType="com.imyeyu.api.modules.system.entity.AsyncTask">
UPDATE
<include refid="table" />
SET
name = #{name},
type = #{type},
message = #{message},
status = #{status},
progress = #{progress},
start_at = #{startAt},
interrupt_at = #{interruptAt},
error_at = #{errorAt},
died_at = #{diedAt}
WHERE
uuid = #{uuid}
</update>
</mapper>
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.gao.mapper.GaoCustomerMapper">
<select id="search" resultType="com.imyeyu.api.modules.gao.entity.GaoCustomer">
SELECT
*
FROM `gao_customer`
WHERE
1 = 1
AND `deleted_at` IS NULL
<if test="keyword != null and keyword != ''">
AND (
`code` LIKE CONCAT('%', #{keyword}, '%')
OR `name` LIKE CONCAT('%', #{keyword}, '%')
OR `telephone` LIKE CONCAT('%', #{keyword}, '%')
OR `address` LIKE CONCAT('%', #{keyword}, '%')
OR `disease` LIKE CONCAT('%', #{keyword}, '%')
OR CAST(`conditioning_part` AS CHAR) LIKE CONCAT('%', #{keyword}, '%')
)
</if>
<if test="introducerCustomerId != null and introducerCustomerId != ''">
AND `introducer_customer_id` = #{introducerCustomerId}
</if>
ORDER BY `created_at` DESC
</select>
<select id="selectInvitedList" resultType="com.imyeyu.api.modules.gao.entity.GaoCustomer">
SELECT
*
FROM `gao_customer`
WHERE
`introducer_customer_id` = #{introducerCustomerId}
AND `deleted_at` IS NULL
ORDER BY `created_at` DESC
</select>
<select id="countInvited" resultType="java.lang.Long">
SELECT
COUNT(1)
FROM `gao_customer`
WHERE
`introducer_customer_id` = #{introducerCustomerId}
AND `deleted_at` IS NULL
</select>
<select id="statDailyNewCustomer" resultType="com.imyeyu.api.modules.gao.vo.GaoCustomerDailyStatView">
SELECT
CAST(DATE_FORMAT(FROM_UNIXTIME(`created_at` / 1000), '%Y%m%d') AS UNSIGNED) AS `dateValue`,
COUNT(1) AS `newCustomerCount`
FROM `gao_customer`
WHERE
`created_at` >= #{beginCreatedAt}
AND `created_at` &lt;= #{endCreatedAt}
AND `deleted_at` IS NULL
GROUP BY DATE_FORMAT(FROM_UNIXTIME(`created_at` / 1000), '%Y%m%d')
ORDER BY `dateValue` ASC
</select>
<select id="countCreatedBefore" resultType="java.lang.Long">
SELECT
COUNT(1)
FROM `gao_customer`
WHERE
`created_at` &lt; #{beginCreatedAt}
AND `deleted_at` IS NULL
</select>
</mapper>
@@ -0,0 +1,233 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.gao.mapper.GaoRegistrationEventRecordMapper">
<select id="selectByRegistrationEventAndPeriod" resultType="com.imyeyu.api.modules.gao.entity.GaoRegistrationEventRecord">
SELECT
*
FROM `gao_registration_event_record`
WHERE
`registration_event_id` = #{registrationEventId}
AND `deleted_at` IS NULL
<if test='periodType.name() == "DAY"'>
AND DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m%d') = CAST(#{periodValue} AS CHAR)
</if>
<if test='periodType.name() == "MONTH"'>
AND DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m') = CAST(#{periodValue} AS CHAR)
</if>
<if test='periodType.name() == "YEAR"'>
AND DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y') = CAST(#{periodValue} AS CHAR)
</if>
ORDER BY `registered_at` DESC
</select>
<select id="statByRegistrationEventAndPeriodType" resultType="com.imyeyu.api.modules.gao.vo.GaoRegistrationEventPeriodStatView">
SELECT
`registration_event_id` AS `registrationEventId`,
<choose>
<when test='periodType.name() == "DAY"'>
CAST(DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m%d') AS UNSIGNED)
</when>
<when test='periodType.name() == "MONTH"'>
CAST(DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m') AS UNSIGNED)
</when>
<otherwise>
CAST(DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y') AS UNSIGNED)
</otherwise>
</choose> AS `periodValue`,
COUNT(1) AS `count`
FROM `gao_registration_event_record`
WHERE
`registration_event_id` = #{registrationEventId}
AND `deleted_at` IS NULL
GROUP BY
`registration_event_id`,
<choose>
<when test='periodType.name() == "DAY"'>
DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m%d')
</when>
<when test='periodType.name() == "MONTH"'>
DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m')
</when>
<otherwise>
DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y')
</otherwise>
</choose>
ORDER BY `periodValue` DESC
</select>
<select id="statByCustomerId" resultType="com.imyeyu.api.modules.gao.vo.GaoCustomerRegisterStatView">
SELECT
r.`customer_id` AS `customerId`,
c.`name` AS `customerName`,
r.`registration_event_id` AS `registrationEventId`,
a.`name` AS `registrationEventName`,
COUNT(1) AS `count`,
MAX(r.`registered_at`) AS `latestRegisteredAt`
FROM `gao_registration_event_record` r
LEFT JOIN `gao_customer` c ON r.`customer_id` = c.`id`
LEFT JOIN `gao_registration_event` a ON r.`registration_event_id` = a.`id`
WHERE
r.`customer_id` = #{customerId}
AND r.`deleted_at` IS NULL
GROUP BY r.`customer_id`, c.`name`, r.`registration_event_id`, a.`name`
ORDER BY `latestRegisteredAt` DESC
</select>
<select id="statByCustomerIdAndRange" resultType="com.imyeyu.api.modules.gao.vo.GaoCustomerRegisterStatView">
SELECT
r.`customer_id` AS `customerId`,
c.`name` AS `customerName`,
r.`registration_event_id` AS `registrationEventId`,
a.`name` AS `registrationEventName`,
COUNT(1) AS `count`,
MAX(r.`registered_at`) AS `latestRegisteredAt`
FROM `gao_registration_event_record` r
LEFT JOIN `gao_customer` c ON r.`customer_id` = c.`id`
LEFT JOIN `gao_registration_event` a ON r.`registration_event_id` = a.`id`
WHERE
r.`customer_id` = #{customerId}
AND r.`registered_at` >= #{beginRegisteredAt}
AND r.`registered_at` &lt;= #{endRegisteredAt}
AND r.`deleted_at` IS NULL
GROUP BY r.`customer_id`, c.`name`, r.`registration_event_id`, a.`name`
ORDER BY `latestRegisteredAt` DESC
</select>
<select id="statAllCustomerByRange" resultType="com.imyeyu.api.modules.gao.vo.GaoCustomerRegisterStatView">
SELECT
r.`customer_id` AS `customerId`,
c.`name` AS `customerName`,
r.`registration_event_id` AS `registrationEventId`,
a.`name` AS `registrationEventName`,
COUNT(1) AS `count`,
MAX(r.`registered_at`) AS `latestRegisteredAt`
FROM `gao_registration_event_record` r
LEFT JOIN `gao_customer` c ON r.`customer_id` = c.`id`
LEFT JOIN `gao_registration_event` a ON r.`registration_event_id` = a.`id`
WHERE
r.`registered_at` >= #{beginRegisteredAt}
AND r.`registered_at` &lt;= #{endRegisteredAt}
AND r.`deleted_at` IS NULL
GROUP BY r.`customer_id`, c.`name`, r.`registration_event_id`, a.`name`
ORDER BY `latestRegisteredAt` DESC
</select>
<select id="statDailyCountByCustomerIdAndRegistrationEventIdRange" resultType="com.imyeyu.api.modules.gao.vo.GaoRegistrationEventRecordDailyStatView">
SELECT
CAST(DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m%d') AS UNSIGNED) AS `dateValue`,
COUNT(1) AS `dailyCount`
FROM `gao_registration_event_record`
WHERE
`customer_id` = #{customerId}
AND `registration_event_id` = #{registrationEventId}
AND `registered_at` >= #{beginRegisteredAt}
AND `registered_at` &lt;= #{endRegisteredAt}
AND `deleted_at` IS NULL
GROUP BY DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m%d')
ORDER BY `dateValue` ASC
</select>
<select id="statDailyCountByRegistrationEventIdRange" resultType="com.imyeyu.api.modules.gao.vo.GaoRegistrationEventRecordDailyStatView">
SELECT
CAST(DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m%d') AS UNSIGNED) AS `dateValue`,
COUNT(1) AS `dailyCount`
FROM `gao_registration_event_record`
WHERE
`registration_event_id` = #{registrationEventId}
AND `registered_at` >= #{beginRegisteredAt}
AND `registered_at` &lt;= #{endRegisteredAt}
AND `deleted_at` IS NULL
GROUP BY DATE_FORMAT(FROM_UNIXTIME(`registered_at` / 1000), '%Y%m%d')
ORDER BY `dateValue` ASC
</select>
<select id="countBeforeByCustomerIdAndRegistrationEventId" resultType="java.lang.Long">
SELECT
COUNT(1)
FROM `gao_registration_event_record`
WHERE
`customer_id` = #{customerId}
AND `registration_event_id` = #{registrationEventId}
AND `registered_at` &lt; #{beginRegisteredAt}
AND `deleted_at` IS NULL
</select>
<select id="countBeforeByRegistrationEventId" resultType="java.lang.Long">
SELECT
COUNT(1)
FROM `gao_registration_event_record`
WHERE
`registration_event_id` = #{registrationEventId}
AND `registered_at` &lt; #{beginRegisteredAt}
AND `deleted_at` IS NULL
</select>
<select id="selectLatestByCustomerIdListAndRegistrationEventId" resultType="com.imyeyu.api.modules.gao.entity.GaoRegistrationEventRecord">
SELECT
r.*
FROM `gao_registration_event_record` r
WHERE
r.`registration_event_id` = #{registrationEventId}
AND r.`deleted_at` IS NULL
AND r.`customer_id` IN
<foreach collection="customerIdList" item="customerId" open="(" separator="," close=")">
#{customerId}
</foreach>
AND NOT EXISTS (
SELECT
1
FROM `gao_registration_event_record` newer
WHERE
newer.`customer_id` = r.`customer_id`
AND newer.`registration_event_id` = r.`registration_event_id`
AND newer.`deleted_at` IS NULL
AND (
newer.`registered_at` > r.`registered_at`
OR (newer.`registered_at` = r.`registered_at` AND newer.`created_at` > r.`created_at`)
OR (newer.`registered_at` = r.`registered_at` AND newer.`created_at` = r.`created_at` AND newer.`id` > r.`id`)
)
)
ORDER BY r.`registered_at` DESC, r.`created_at` DESC
</select>
<select id="selectLatestByCustomerId" resultType="com.imyeyu.api.modules.gao.entity.GaoRegistrationEventRecord">
SELECT
r.*
FROM `gao_registration_event_record` r
WHERE
r.`customer_id` = #{customerId}
AND r.`deleted_at` IS NULL
AND NOT EXISTS (
SELECT
1
FROM `gao_registration_event_record` newer
WHERE
newer.`customer_id` = r.`customer_id`
AND newer.`registration_event_id` = r.`registration_event_id`
AND newer.`deleted_at` IS NULL
AND (
newer.`registered_at` > r.`registered_at`
OR (newer.`registered_at` = r.`registered_at` AND newer.`created_at` > r.`created_at`)
OR (newer.`registered_at` = r.`registered_at` AND newer.`created_at` = r.`created_at` AND newer.`id` > r.`id`)
)
)
ORDER BY r.`registered_at` DESC, r.`created_at` DESC
</select>
<select id="selectByRange" resultType="com.imyeyu.api.modules.gao.entity.GaoRegistrationEventRecord">
SELECT
*
FROM `gao_registration_event_record`
WHERE
`registered_at` &gt;= #{req.beginRegisteredAt}
AND `registered_at` &lt;= #{req.endRegisteredAt}
AND `deleted_at` IS NULL
<if test="req.customerId != null and req.customerId != ''">
AND `customer_id` = #{req.customerId}
</if>
<if test="req.registrationEventId != null and req.registrationEventId != ''">
AND `registration_event_id` = #{req.registrationEventId}
</if>
ORDER BY `registered_at` DESC, `created_at` DESC
</select>
</mapper>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.common.mapper.MultilingualMapper">
<select id="selectByIdList" resultType="com.imyeyu.api.modules.common.entity.Multilingual">
SELECT
*
FROM `multilingual`
WHERE
1 = 1
<if test="idList != null and !idList.isEmpty()">
AND `id` IN
<foreach collection="idList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="idList == null or idList.isEmpty()">
AND 1 = 0
</if>
AND `deleted_at` IS NULL
</select>
</mapper>
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.user.mapper.RoleMapper">
<select id="selectByIdList" resultType="com.imyeyu.api.modules.user.entity.Role">
SELECT
*
FROM `role`
WHERE
1 = 1
<if test="idList != null and !idList.isEmpty()">
AND `id` IN
<foreach collection="idList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="idList == null or idList.isEmpty()">
AND 1 = 0
</if>
AND `deleted_at` IS NULL
</select>
<select id="selectByModuleCodeAndCodeList" resultType="com.imyeyu.api.modules.user.entity.Role">
SELECT
*
FROM `role`
WHERE
1 = 1
AND `module_code` = #{moduleCode}
<if test="codeList != null and !codeList.isEmpty()">
AND `code` IN
<foreach collection="codeList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="codeList == null or codeList.isEmpty()">
AND 1 = 0
</if>
AND `deleted_at` IS NULL
</select>
<select id="selectByModuleCode" resultType="com.imyeyu.api.modules.user.entity.Role">
SELECT
*
FROM `role`
WHERE
`module_code` = #{moduleCode}
AND `deleted_at` IS NULL
ORDER BY `created_at` ASC
</select>
</mapper>
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.user.mapper.RolePermissionMapper">
<select id="selectByRoleIdList" resultType="com.imyeyu.api.modules.user.entity.RolePermission">
SELECT
*
FROM `role_permission`
WHERE
`role_permission`.`role_id` IN
<foreach collection="roleIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND `role_permission`.`deleted_at` IS NULL
</select>
<select id="selectPermissionByRoleIdList" resultType="com.imyeyu.api.modules.user.entity.Permission">
SELECT
permission.*
FROM `role_permission`
LEFT JOIN `permission` ON permission.id = role_permission.permission_id
WHERE
`role_permission`.`role_id` IN
<foreach collection="roleIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND `role_permission`.`deleted_at` IS NULL
AND `permission`.`deleted_at` IS NULL
ORDER BY
`permission`.code ASC
</select>
<insert id="createBatch">
INSERT INTO `role_permission` (
id,
role_id,
permission_id,
created_at
) VALUES
<foreach collection="rolePermissionList" item="item" separator=",">
(#{item.id}, #{item.roleId}, #{item.permissionId}, #{item.createdAt})
</foreach>
</insert>
<update id="deleteByPermissionIdList">
UPDATE `role_permission`
SET `deleted_at` = UNIX_TIMESTAMP()
WHERE
`role_id` = #{roleId}
AND `permission_id` IN
<foreach collection="permissionIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</update>
</mapper>
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.user.mapper.RoleRelationMapper">
<select id="selectByParentRoleId" resultType="com.imyeyu.api.modules.user.entity.RoleRelation">
SELECT
*
FROM `role_relation`
WHERE
`parent_role_id` = #{parentRoleId}
AND `deleted_at` IS NULL
</select>
<select id="selectChildRoleIdListByParentRoleId" resultType="java.lang.String">
SELECT
`child_role_id`
FROM `role_relation`
WHERE
`parent_role_id` = #{parentRoleId}
AND `deleted_at` IS NULL
</select>
<select id="selectChildRoleIdListByParentRoleIdList" resultType="java.lang.String">
SELECT
`child_role_id`
FROM `role_relation`
WHERE
`parent_role_id` IN
<foreach collection="parentRoleIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND `deleted_at` IS NULL
</select>
<insert id="createBatch">
INSERT INTO `role_relation` (
id,
parent_role_id,
child_role_id,
created_at
) VALUES
<foreach collection="roleRelationList" item="item" separator=",">
(#{item.id}, #{item.parentRoleId}, #{item.childRoleId}, #{item.createdAt})
</foreach>
</insert>
<update id="deleteByChildRoleIdList">
UPDATE `role_relation`
SET `deleted_at` = UNIX_TIMESTAMP()
WHERE
`parent_role_id` = #{parentRoleId}
AND `child_role_id` IN
<foreach collection="childRoleIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</update>
</mapper>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.user.mapper.UserMapper">
<select id="listByIdList" resultType="com.imyeyu.api.modules.user.entity.User">
SELECT
*
FROM `user`
WHERE
1 = 1
<if test="idList != null and !idList.isEmpty()">
AND `id` IN
<foreach collection="idList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="idList == null or idList.isEmpty()">
AND 1 = 0
</if>
AND `deleted_at` IS NULL
</select>
</mapper>
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imyeyu.api.modules.user.mapper.UserRoleMapper">
<insert id="createBatch">
INSERT INTO `user_role` (
id,
user_id,
role_id,
created_at
) VALUES
<foreach collection="userRoleList" item="item" separator=",">
(#{item.id}, #{item.userId}, #{item.roleId}, #{item.createdAt})
</foreach>
</insert>
<update id="deleteByRoleIdList">
UPDATE `user_role`
SET `deleted_at` = UNIX_TIMESTAMP()
WHERE
`user_id` = #{userId}
AND `role_id` IN
<foreach collection="roleIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</update>
</mapper>