后台管理系统用于管理小程序中的书籍数据,实现了完整的书籍管理功能,包括:
在 users 表中添加 role 字段,用于区分管理员和普通用户:
ALTER TABLE `users`
ADD COLUMN `role` VARCHAR(20) DEFAULT 'user' COMMENT '用户角色:admin-管理员,user-普通用户' AFTER `status`,
ADD INDEX `idx_role` (`role`);
INSERT INTO `users` (`username`, `nickname`, `password`, `role`, `status`, `created_at`, `updated_at`)
SELECT 'admin', '管理员', '0192023a7bbd73250516f069df18b500', 'admin', 1, NOW(), NOW()
WHERE NOT EXISTS (SELECT 1 FROM `users` WHERE `username` = 'admin');
默认管理员账号:
adminadmin123(MD5加密后:0192023a7bbd73250516f069df18b500)role 字段(String类型)POST /api/admin/login - 管理员登录GET /api/admin/book/list - 分页查询书籍GET /api/admin/book/{id} - 根据ID查询书籍POST /api/admin/book - 创建书籍PUT /api/admin/book/{id} - 更新书籍DELETE /api/admin/book/{id} - 删除书籍DELETE /api/admin/book/batch - 批量删除书籍PUT /api/admin/book/{id}/publish - 上架书籍PUT /api/admin/book/{id}/unpublish - 下架书籍PUT /api/admin/book/batch/publish - 批量上架书籍PUT /api/admin/book/batch/unpublish - 批量下架书籍/api/admin/** 路径的请求/api/admin/loginrole 为 admin 的用户可以登录role 为 user)不能登录后台管理系统admin_token_{userId}/api/admin/** 接口都需要token/api/admin/login 不需要tokenmysql -u root -p books_db < book/src/main/resources/db/admin_schema.sql
cd book
mvn spring-boot:run
cd book-admin
npm install # 首次使用需要安装依赖
npm run dev # 启动开发服务器
adminadmin123POST /api/admin/login
请求体:
{
"username": "admin",
"password": "admin123"
}
响应:
{
"code": 200,
"message": "登录成功",
"data": {
"id": 1,
"username": "admin",
"nickname": "管理员",
"role": "admin",
"token": "admin_token_1"
}
}
GET /api/admin/book/list?page=1&size=10&keyword=&status=1&categoryId=
参数:
page - 页码(默认:1)size - 每页数量(默认:10)keyword - 关键词(可选,搜索书名、作者)status - 状态(可选,0-下架,1-上架)categoryId - 分类ID(可选)响应:
{
"code": 200,
"message": "成功",
"data": {
"list": [...],
"total": 100,
"page": 1,
"size": 10
}
}
POST /api/admin/book
请求头:
Authorization: admin_token_1
请求体:
{
"title": "书名",
"author": "作者",
"cover": "封面URL",
"image": "图片URL",
"brief": "简介",
"desc": "描述",
"introduction": "详细介绍",
"price": 0.00,
"isFree": false,
"isVip": false,
"categoryId": 1,
"status": 1
}
PUT /api/admin/book/{id}
请求头和请求体同创建书籍。
DELETE /api/admin/book/{id}
请求头:
Authorization: admin_token_1
PUT /api/admin/book/{id}/publish
请求头:
Authorization: admin_token_1
PUT /api/admin/book/{id}/unpublish
请求头:
Authorization: admin_token_1
id - 用户IDusername - 用户名password - 密码(MD5加密)role - 用户角色(admin-管理员,user-普通用户)status - 状态(0-禁用,1-启用)id - 书籍IDtitle - 书名author - 作者cover - 封面URLimage - 图片URLbrief - 简介desc - 描述introduction - 详细介绍price - 价格is_free - 是否免费is_vip - 是否VIPcategory_id - 分类IDstatus - 状态(0-下架,1-上架)view_count - 浏览次数like_count - 点赞数read_count - 阅读次数created_at - 创建时间updated_at - 更新时间admin123 的MD5值为 0192023a7bbd73250516f069df18b500admin_token_{userId}),生产环境建议使用JWT Tokenutils/api.js 中,默认是 http://localhost:8081