打开MySQL客户端,输入你的用户名和密码,执行下述代码:
-- 创建数据库
CREATE DATABASE IF NOT EXISTS attendance_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 使用数据库
USE attendance_db;
-- 创建群组表
CREATE TABLE `group` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
-- 创建请假表
CREATE TABLE `leave_request` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int DEFAULT NULL,
`reason` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`week_number` int NOT NULL,
`status` enum('已提交','未提交') COLLATE utf8mb4_general_ci NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_leave_request_user` (`user_id`),
CONSTRAINT `fk_leave_request_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
-- 创建用户表
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
`email` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`qq` varchar(20) COLLATE utf8mb4_general_ci NOT NULL,
`password` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`userRole` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'USER',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
-- 创建周报表
CREATE TABLE `weekly_report` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int DEFAULT NULL,
`group_id` int DEFAULT NULL,
`week_number` int NOT NULL,
`content_completed` text COLLATE utf8mb4_general_ci NOT NULL,
`content_problems` text COLLATE utf8mb4_general_ci NOT NULL,
`content_plan` text COLLATE utf8mb4_general_ci NOT NULL,
`content_link` text COLLATE utf8mb4_general_ci,
`status` enum('已提交','未提交','已请假') COLLATE utf8mb4_general_ci NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_weekly_report_user` (`user_id`),
KEY `fk_weekly_report_group` (`group_id`),
CONSTRAINT `fk_weekly_report_group` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`),
CONSTRAINT `fk_weekly_report_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
--- 创建用户和群组之间的关系表
CREATE TABLE `user_group` (
`user_id` int NOT NULL,
`group_id` int NOT NULL,
PRIMARY KEY (`user_id`,`group_id`),
KEY `fk_user_group_user` (`user_id`),
KEY `fk_user_group_group` (`group_id`),
CONSTRAINT `fk_user_group_group` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`),
CONSTRAINT `fk_user_group_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
下载不用说了。 把application.properties文件中
spring.datasource.password=yourpassword
中的yourpassword改成你的MySQL的密码。然后运行attendanceApplication类。
在请求类型中选择 POST,然后在请求 URL 输入框中输入 http://localhost:8086/attendance/api/authentication/register, 并在 "Body" 部分输入你的注册信息,格式为 JSON,例如:
{
"username": "test",
"email": "test@example.com",
"qq": "12345678",
"password": "test",
"confirmPassword": "test"
}
然后点击 "Send" 按钮。注意,一定要记住密码,数据库里存的不是明文!
如果你想创建一个管理员,你可以先通过上述方法创建一个普通的管理员,再在数据库中把该用户的权限改成ADMIN。
在请求类型中选择 POST,然后在请求 URL 输入框中输入 http://localhost:8086/attendance/api/authentication/login ,在 Headers 中添加一个 ”Content-Type“,值为”application/json“,并在 "Body" 部分输入你的登录信息,格式为 JSON,例如:
{
"email": "test@example.com",
"password": "test"
}
然后点击 "Send" 按钮,你会收到你的 token 和你的用户信息。
在请求类型中选择 GET,然后在请求 URL 输入框中输入 http://localhost:8086/attendance/api/admin/users ,在 Authentication 选项中 选择 Bearer Token,然后输入管理员登录时收到的 token,接着点击 "Send" 按钮就可以了。
在请求类型中选择 GET,然后在请求 URL 输入框中输入 http://localhost:8086/attendance/api/user ,在 Authentication 选项中 选择 Bearer Token,然后输入普通用户登录时收到的 token,接着点击 "Send" 按钮就可以该用户自己的信息了。注意,该用户无法查看其他人的信息!