# 后台管理系统快速启动指南 ## 一、数据库初始化 ### 1. 执行数据库脚本 ```bash # 在MySQL中执行以下脚本 mysql -u root -p books_db < book/src/main/resources/db/admin_schema.sql ``` ### 2. 验证管理员账号 ```sql -- 查看管理员账号 SELECT id, username, nickname, role, status FROM users WHERE role = 'admin'; ``` 默认管理员账号: - 用户名:`admin` - 密码:`admin123` - 角色:`admin` ## 二、启动后端服务 ### 1. 启动Spring Boot应用 ```bash cd book mvn spring-boot:run ``` 或者使用IDE启动 `BookApplication.java` ### 2. 验证后端服务 访问以下URL验证服务是否启动: - `http://localhost:8081/api/admin/login` (应该返回405或需要POST请求) ## 三、打开前端页面 ### 1. 使用浏览器打开 直接双击打开 `book-admin/pages/login.html` 文件,或使用本地服务器: ```bash # 使用Python启动本地服务器(Python 3) cd book-admin python -m http.server 8000 # 然后访问 # http://localhost:8000/pages/login.html ``` ### 2. 登录 使用默认管理员账号登录: - 用户名:`admin` - 密码:`admin123` ## 四、功能测试 ### 1. 登录测试 - ✅ 使用管理员账号登录(应该成功) - ✅ 使用普通用户账号登录(应该失败,提示"您不是管理员") - ✅ 使用错误的密码登录(应该失败) ### 2. 书籍管理测试 - ✅ 查看书籍列表 - ✅ 搜索书籍 - ✅ 筛选书籍(按状态、分类) - ✅ 添加书籍 - ✅ 编辑书籍 - ✅ 删除书籍 - ✅ 上架/下架书籍 - ✅ 批量操作 ## 五、常见问题 ### 1. 无法登录 **问题**:提示"用户名或密码错误" **解决方法**: 1. 检查数据库中的管理员账号是否存在 2. 检查密码是否正确(MD5加密后应为:`0192023a7bbd73250516f069df18b500`) 3. 检查用户角色是否为 `admin` 4. 检查用户状态是否为 `1`(启用) ### 2. 提示"未授权,请先登录" **问题**:访问书籍管理接口时返回401错误 **解决方法**: 1. 检查是否已登录(localStorage中是否有 `admin_token`) 2. 检查token是否正确传递到请求头 3. 检查后端拦截器配置是否正确 ### 3. 前端页面无法加载 **问题**:页面显示空白或错误 **解决方法**: 1. 检查浏览器控制台是否有错误 2. 检查Vue.js是否加载成功 3. 检查API地址是否正确(默认:`http://localhost:8081`) 4. 检查后端服务是否启动 ### 4. CORS错误 **问题**:浏览器控制台显示CORS错误 **解决方法**: 1. 检查后端是否配置了CORS(已配置 `@CrossOrigin(origins = "*")`) 2. 检查前端API地址是否正确 3. 检查浏览器是否允许跨域请求 ## 六、创建新的管理员账号 ### 方法1:使用SQL ```sql -- 创建新管理员账号 INSERT INTO `users` (`username`, `nickname`, `password`, `role`, `status`, `created_at`, `updated_at`) VALUES ('newadmin', '新管理员', '0192023a7bbd73250516f069df18b500', 'admin', 1, NOW(), NOW()); -- 注意:密码需要MD5加密,admin123的MD5值为:0192023a7bbd73250516f069df18b500 ``` ### 方法2:将现有用户设置为管理员 ```sql -- 将现有用户设置为管理员 UPDATE `users` SET `role` = 'admin' WHERE `username` = 'your_username'; ``` ## 七、API接口测试 ### 1. 使用Postman测试 #### 管理员登录 **POST** `http://localhost:8081/api/admin/login` 请求体: ```json { "username": "admin", "password": "admin123" } ``` #### 查询书籍列表(需要token) **GET** `http://localhost:8081/api/admin/book/list?page=1&size=10` 请求头: ``` Authorization: admin_token_1 ``` ### 2. 使用curl测试 ```bash # 登录 curl -X POST http://localhost:8081/api/admin/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin123"}' # 查询书籍列表(需要token) curl -X GET "http://localhost:8081/api/admin/book/list?page=1&size=10" \ -H "Authorization: admin_token_1" ``` ## 八、项目结构 ``` book/ ├── src/main/java/com/yu/book/ │ ├── admin/ # 后台管理模块 │ │ ├── controller/ # 控制器 │ │ │ ├── AdminController.java │ │ │ └── AdminBookController.java │ │ ├── service/ # 服务层 │ │ │ ├── AdminService.java │ │ │ └── AdminBookService.java │ │ ├── dto/ # 数据传输对象 │ │ │ ├── AdminLoginDTO.java │ │ │ └── BookManageDTO.java │ │ ├── vo/ # 视图对象 │ │ │ ├── AdminLoginVO.java │ │ │ └── AdminBookVO.java │ │ ├── interceptor/ # 拦截器 │ │ │ └── AdminInterceptor.java │ │ └── config/ # 配置类 │ │ └── AdminWebConfig.java │ └── ... └── src/main/resources/ └── db/ └── admin_schema.sql # 数据库脚本 book-admin/ ├── pages/ │ ├── login.html # 登录页面 │ └── books.html # 书籍管理页面 └── utils/ └── api.js # API接口文件 ``` ## 九、下一步 1. ✅ 数据库初始化完成 2. ✅ 后端服务启动 3. ✅ 前端页面打开 4. ✅ 登录测试 5. ✅ 功能测试 现在可以开始使用后台管理系统管理书籍了! ## 十、注意事项 1. **密码安全**:生产环境中应该使用更强的密码加密方式(如BCrypt) 2. **Token管理**:当前使用模拟token,生产环境应该使用JWT Token 3. **权限控制**:可以根据需要细化权限控制(如不同管理员有不同的权限) 4. **数据备份**:定期备份数据库,防止数据丢失 5. **日志记录**:建议添加操作日志,记录管理员的各项操作