文件生成补充
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
server:
|
||||
port: 8080
|
||||
servlet:
|
||||
context-path: /
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: jog-system
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://localhost:3306/jog_db?useUnicode=true&characterEncoding=utf8mb4&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: root
|
||||
data:
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
database: 0
|
||||
timeout: 5000ms
|
||||
lettuce:
|
||||
pool:
|
||||
max-active: 20
|
||||
max-idle: 10
|
||||
min-idle: 5
|
||||
mail:
|
||||
host: smtp.example.com
|
||||
port: 587
|
||||
username: noreply@example.com
|
||||
password: your-mail-password
|
||||
properties:
|
||||
mail:
|
||||
smtp:
|
||||
auth: true
|
||||
starttls:
|
||||
enable: true
|
||||
flyway:
|
||||
enabled: true
|
||||
locations: classpath:db/migration
|
||||
baseline-on-migrate: true
|
||||
encoding: UTF-8
|
||||
|
||||
mybatis-plus:
|
||||
mapper-locations: classpath*:/mapper/**/*.xml
|
||||
configuration:
|
||||
map-underscore-to-camel-case: true
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
global-config:
|
||||
db-config:
|
||||
logic-delete-field: deleted
|
||||
logic-delete-value: 1
|
||||
logic-not-delete-value: 0
|
||||
|
||||
jwt:
|
||||
secret: YourSuperSecretKeyForJwtTokenGenerationMustBeAtLeast256BitsLongForHS256Algorithm
|
||||
access-token-expire: 7200
|
||||
refresh-token-expire: 86400
|
||||
refresh-token-expire-remember: 1209600
|
||||
|
||||
springdoc:
|
||||
api-docs:
|
||||
enabled: true
|
||||
path: /v3/api-docs
|
||||
swagger-ui:
|
||||
enabled: true
|
||||
path: /swagger-ui.html
|
||||
|
||||
logging:
|
||||
level:
|
||||
fun.nojava: DEBUG
|
||||
org.springframework.security: DEBUG
|
||||
@@ -0,0 +1,207 @@
|
||||
-- V1__init_schema.sql
|
||||
-- 博客系统数据库初始化脚本
|
||||
|
||||
CREATE DATABASE IF NOT EXISTS blog_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
USE blog_db;
|
||||
|
||||
-- 用户表
|
||||
CREATE TABLE IF NOT EXISTS sys_user (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
username VARCHAR(50) DEFAULT NULL COMMENT '用户名',
|
||||
email VARCHAR(100) NOT NULL COMMENT '邮箱',
|
||||
phone VARCHAR(20) DEFAULT NULL COMMENT '手机号',
|
||||
password VARCHAR(255) NOT NULL COMMENT '密码',
|
||||
nickname VARCHAR(50) DEFAULT NULL COMMENT '昵称',
|
||||
avatar VARCHAR(500) DEFAULT NULL COMMENT '头像URL',
|
||||
user_type TINYINT NOT NULL DEFAULT 1 COMMENT '用户类型:0管理员 1普通用户',
|
||||
status TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0正常 1锁定',
|
||||
locked_until DATETIME DEFAULT NULL COMMENT '锁定截止时间',
|
||||
login_fail_count INT NOT NULL DEFAULT 0 COMMENT '登录失败次数',
|
||||
email_verified TINYINT(1) NOT NULL DEFAULT 0 COMMENT '邮箱是否验证',
|
||||
last_login_ip VARCHAR(50) DEFAULT NULL COMMENT '最后登录IP',
|
||||
last_login_time DATETIME DEFAULT NULL COMMENT '最后登录时间',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除',
|
||||
UNIQUE KEY uk_email (email),
|
||||
UNIQUE KEY uk_username (username),
|
||||
KEY idx_phone (phone)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||||
|
||||
-- 用户会话表
|
||||
CREATE TABLE IF NOT EXISTS sys_user_session (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
token VARCHAR(500) NOT NULL COMMENT '访问令牌',
|
||||
device_fingerprint VARCHAR(100) DEFAULT NULL COMMENT '设备指纹',
|
||||
ip_address VARCHAR(50) DEFAULT NULL COMMENT 'IP地址',
|
||||
user_agent VARCHAR(500) DEFAULT NULL COMMENT 'User-Agent',
|
||||
expire_time DATETIME NOT NULL COMMENT '过期时间',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY idx_user_id (user_id),
|
||||
KEY idx_token (token(255))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户会话表';
|
||||
|
||||
-- 登录日志表
|
||||
CREATE TABLE IF NOT EXISTS sys_login_log (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id BIGINT DEFAULT NULL COMMENT '用户ID',
|
||||
username VARCHAR(100) DEFAULT NULL COMMENT '登录账号',
|
||||
login_type TINYINT NOT NULL COMMENT '登录类型:0管理员 1用户',
|
||||
result TINYINT NOT NULL COMMENT '结果:0失败 1成功',
|
||||
fail_reason VARCHAR(200) DEFAULT NULL COMMENT '失败原因',
|
||||
ip_address VARCHAR(50) DEFAULT NULL COMMENT 'IP地址',
|
||||
device_fingerprint VARCHAR(100) DEFAULT NULL COMMENT '设备指纹',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY idx_user_id (user_id),
|
||||
KEY idx_created_at (created_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='登录日志表';
|
||||
|
||||
-- 用户关注表
|
||||
CREATE TABLE IF NOT EXISTS sys_user_follow (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
follower_id BIGINT NOT NULL COMMENT '关注者ID',
|
||||
followee_id BIGINT NOT NULL COMMENT '被关注者ID',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_follow (follower_id, followee_id),
|
||||
KEY idx_followee (followee_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户关注表';
|
||||
|
||||
-- 通知表
|
||||
CREATE TABLE IF NOT EXISTS sys_notification (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
receiver_id BIGINT NOT NULL COMMENT '接收者ID',
|
||||
sender_id BIGINT DEFAULT NULL COMMENT '发送者ID',
|
||||
type TINYINT NOT NULL COMMENT '类型:0回复 1点赞 2系统',
|
||||
content VARCHAR(500) NOT NULL COMMENT '内容',
|
||||
related_id BIGINT DEFAULT NULL COMMENT '关联ID',
|
||||
is_read TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已读',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY idx_receiver (receiver_id),
|
||||
KEY idx_created_at (created_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知表';
|
||||
|
||||
-- 系统配置表
|
||||
CREATE TABLE IF NOT EXISTS sys_config (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
config_key VARCHAR(100) NOT NULL COMMENT '配置键',
|
||||
config_value VARCHAR(500) NOT NULL COMMENT '配置值',
|
||||
description VARCHAR(200) DEFAULT NULL COMMENT '描述',
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_config_key (config_key)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';
|
||||
|
||||
-- 敏感词表
|
||||
CREATE TABLE IF NOT EXISTS sys_sensitive_word (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
word VARCHAR(50) NOT NULL COMMENT '敏感词',
|
||||
replacement VARCHAR(50) DEFAULT '*' COMMENT '替换词',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_word (word)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='敏感词表';
|
||||
|
||||
-- 分类表
|
||||
CREATE TABLE IF NOT EXISTS blog_category (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(50) NOT NULL COMMENT '分类名称',
|
||||
description VARCHAR(200) DEFAULT NULL COMMENT '描述',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||||
sort INT NOT NULL DEFAULT 0 COMMENT '排序',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_name (name)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分类表';
|
||||
|
||||
-- 标签表
|
||||
CREATE TABLE IF NOT EXISTS blog_tag (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(50) NOT NULL COMMENT '标签名称',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_name (name)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='标签表';
|
||||
|
||||
-- 文章表
|
||||
CREATE TABLE IF NOT EXISTS blog_article (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL COMMENT '作者ID',
|
||||
category_id BIGINT DEFAULT NULL COMMENT '分类ID',
|
||||
title VARCHAR(200) NOT NULL COMMENT '标题',
|
||||
summary VARCHAR(500) DEFAULT NULL COMMENT '摘要',
|
||||
content LONGTEXT NOT NULL COMMENT '内容',
|
||||
cover_image VARCHAR(500) DEFAULT NULL COMMENT '封面图URL',
|
||||
status TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0草稿 1已发布 2回收站',
|
||||
visibility TINYINT NOT NULL DEFAULT 0 COMMENT '可见性:0公开 1私密 2仅粉丝',
|
||||
view_count INT NOT NULL DEFAULT 0 COMMENT '浏览量',
|
||||
like_count INT NOT NULL DEFAULT 0 COMMENT '点赞数',
|
||||
comment_count INT NOT NULL DEFAULT 0 COMMENT '评论数',
|
||||
allow_comment TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否允许评论',
|
||||
published_at DATETIME DEFAULT NULL COMMENT '发布时间',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除',
|
||||
KEY idx_user_id (user_id),
|
||||
KEY idx_category_id (category_id),
|
||||
KEY idx_status (status),
|
||||
KEY idx_published_at (published_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文章表';
|
||||
|
||||
-- 文章标签关联表
|
||||
CREATE TABLE IF NOT EXISTS blog_article_tag (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
article_id BIGINT NOT NULL COMMENT '文章ID',
|
||||
tag_id BIGINT NOT NULL COMMENT '标签ID',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_article_tag (article_id, tag_id),
|
||||
KEY idx_tag_id (tag_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文章标签关联表';
|
||||
|
||||
-- 文章点赞表
|
||||
CREATE TABLE IF NOT EXISTS blog_article_like (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
article_id BIGINT NOT NULL COMMENT '文章ID',
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_article_user (article_id, user_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文章点赞表';
|
||||
|
||||
-- 评论表
|
||||
CREATE TABLE IF NOT EXISTS blog_comment (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
article_id BIGINT NOT NULL COMMENT '文章ID',
|
||||
user_id BIGINT NOT NULL COMMENT '评论者ID',
|
||||
parent_id BIGINT DEFAULT NULL COMMENT '父评论ID',
|
||||
reply_to_user_id BIGINT DEFAULT NULL COMMENT '回复目标用户ID',
|
||||
content VARCHAR(1000) NOT NULL COMMENT '评论内容',
|
||||
level TINYINT NOT NULL DEFAULT 1 COMMENT '评论层级',
|
||||
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0待审核 1已通过 2已屏蔽 3已删除',
|
||||
like_count INT NOT NULL DEFAULT 0 COMMENT '点赞数',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除',
|
||||
KEY idx_article_id (article_id),
|
||||
KEY idx_user_id (user_id),
|
||||
KEY idx_parent_id (parent_id),
|
||||
KEY idx_status (status)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论表';
|
||||
|
||||
-- 评论点赞表
|
||||
CREATE TABLE IF NOT EXISTS blog_comment_like (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
comment_id BIGINT NOT NULL COMMENT '评论ID',
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_comment_user (comment_id, user_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论点赞表';
|
||||
|
||||
-- 图片表
|
||||
CREATE TABLE IF NOT EXISTS blog_image (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL COMMENT '上传者ID',
|
||||
original_name VARCHAR(200) NOT NULL COMMENT '原始文件名',
|
||||
stored_name VARCHAR(200) NOT NULL COMMENT '存储文件名',
|
||||
file_path VARCHAR(500) NOT NULL COMMENT '文件路径',
|
||||
url VARCHAR(500) NOT NULL COMMENT '访问URL',
|
||||
file_size BIGINT NOT NULL COMMENT '文件大小(字节)',
|
||||
mime_type VARCHAR(50) NOT NULL COMMENT 'MIME类型',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY idx_user_id (user_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='图片表';
|
||||
@@ -0,0 +1,29 @@
|
||||
-- V2__init_data.sql
|
||||
-- 初始化数据
|
||||
|
||||
USE blog_db;
|
||||
|
||||
-- 插入管理员账号(密码:Admin@123)
|
||||
INSERT INTO sys_user (username, email, password, nickname, user_type, status, email_verified)
|
||||
VALUES ('admin', 'admin@blog.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi', '系统管理员', 0, 0, 1);
|
||||
|
||||
-- 插入默认分类
|
||||
INSERT INTO blog_category (name, description, enabled, sort) VALUES
|
||||
('技术', '技术相关文章', 1, 1),
|
||||
('生活', '生活随笔', 1, 2),
|
||||
('读书', '读书笔记', 1, 3);
|
||||
|
||||
-- 插入默认标签
|
||||
INSERT INTO blog_tag (name) VALUES
|
||||
('Java'),
|
||||
('Spring Boot'),
|
||||
('Vue'),
|
||||
('前端'),
|
||||
('数据库');
|
||||
|
||||
-- 插入系统配置
|
||||
INSERT INTO sys_config (config_key, config_value, description) VALUES
|
||||
('site_name', '我的博客', '站点名称'),
|
||||
('site_description', '一个简洁的博客系统', '站点描述'),
|
||||
('comment_audit', 'false', '评论是否需要审核'),
|
||||
('max_comment_level', '3', '最大评论层级');
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
@@ -0,0 +1,3 @@
|
||||
fun\nojava\admin\JogApplication.class
|
||||
fun\nojava\admin\config\MyBatisPlusConfig$1.class
|
||||
fun\nojava\admin\config\MyBatisPlusConfig.class
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
E:\person\Jog\jog-admin\src\main\java\fun\nojava\admin\config\MyBatisPlusConfig.java
|
||||
E:\person\Jog\jog-admin\src\main\java\fun\nojava\admin\JogApplication.java
|
||||
Reference in New Issue
Block a user