users 表中添加 role 字段User.java - 添加 role 字段UserMapper.xml - 添加 role 字段映射AdminLoginDTO.java - 管理员登录DTOAdminLoginVO.java - 管理员登录VOBookManageDTO.java - 书籍管理DTOAdminBookVO.java - 后台管理书籍VOAdminService.java - 管理员登录服务(只有管理员可以登录)AdminBookService.java - 书籍管理服务(增删改查、上架下架)AdminController.java - 管理员登录接口AdminBookController.java - 书籍管理接口(10个接口)AdminInterceptor.java - 管理员权限拦截器AdminWebConfig.java - Web配置(注册拦截器)book-admin/utils/api.js - 所有后台管理API接口book-admin/pages/login.html - 登录页面book-admin/pages/books.html - 书籍管理页面role 为 admin 的用户可以登录book/
├── src/main/java/com/yu/book/
│ ├── admin/ # 后台管理模块
│ │ ├── controller/
│ │ │ ├── AdminController.java # 管理员登录
│ │ │ └── AdminBookController.java # 书籍管理
│ │ ├── service/
│ │ │ ├── AdminService.java # 管理员服务
│ │ │ └── AdminBookService.java # 书籍管理服务
│ │ ├── dto/
│ │ │ ├── AdminLoginDTO.java # 登录DTO
│ │ │ └── BookManageDTO.java # 书籍管理DTO
│ │ ├── vo/
│ │ │ ├── AdminLoginVO.java # 登录VO
│ │ │ └── AdminBookVO.java # 书籍管理VO
│ │ ├── interceptor/
│ │ │ └── AdminInterceptor.java # 权限拦截器
│ │ └── config/
│ │ └── AdminWebConfig.java # Web配置
│ └── ...
└── src/main/resources/
└── db/
└── admin_schema.sql # 数据库脚本
book-admin/
├── pages/
│ ├── login.html # 登录页面
│ └── books.html # 书籍管理页面
└── utils/
└── api.js # API接口文件
role 为 admin 的用户可以登录role 为 user)不能登录/api/admin/** 接口都需要token/api/admin/login 不需要token/api/category/**)不受影响admin_token_{userId}Authorization: admin_token_1POST /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 - 批量下架书籍mysql -u root -p books_db < book/src/main/resources/db/admin_schema.sql
cd book
mvn spring-boot:run
使用浏览器打开 book-admin/pages/login.html
默认管理员账号:
adminadmin123ALTER 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');
admin123 的MD5值为 0192023a7bbd73250516f069df18b500book-admin/utils/api.js 中,默认是 http://localhost:8081book/后台管理系统功能说明.md - 详细功能说明book/后台管理系统快速启动指南.md - 快速启动指南book-admin/README.md - 前端使用说明book/src/main/resources/db/admin_schema.sql - 数据库脚本