# 后台管理系统 ## 功能概述 后台管理系统用于管理小程序中的书籍数据,包括: - 书籍的增删改查 - 书籍的上架/下架 - 书籍状态管理 - 管理员登录(只有管理员可以登录) ## 技术栈 - 后端:Spring Boot + MyBatis + MySQL - 前端:HTML + Vue.js 3 + Fetch API ## 项目结构 ``` book-admin/ ├── src/main/resources/static/ │ ├── pages/ │ │ ├── login.html # 登录页面 │ │ └── books.html # 书籍管理页面 │ └── utils/ │ └── api.js # API接口文件 ├── package.json # npm配置文件 └── README.md # 说明文档 ``` ## 安装和运行 ### 🚀 快速启动 #### 1. 数据库初始化 执行数据库脚本创建管理员账号: ```bash # 在book项目根目录执行 mysql -u root -p books_db < src/main/resources/db/admin_schema.sql ``` #### 2. 启动后端服务 ```bash # 在book项目根目录执行 cd .. mvn spring-boot:run # 或者使用IDE启动 BookApplication.java ``` **验证后端服务:** - 打开浏览器访问:`http://localhost:8081/api/admin/login` - 如果能看到响应,说明服务已启动 #### 3. 启动前端开发服务器 ```bash # 在book-admin目录执行 cd book-admin # 首次使用需要安装依赖 npm install # 启动开发服务器(自动打开浏览器) npm run dev ``` #### 4. 登录 默认管理员账号: - 用户名:`admin` - 密码:`admin123` ## 功能说明 ### 1. 管理员登录 - 只有 `role` 为 `admin` 的用户可以登录 - 普通用户不能登录后台管理系统 - Token保存在localStorage中 ### 2. 书籍管理 #### 查询功能 - 支持按书名、作者搜索 - 支持按状态筛选(上架/下架) - 支持按分类筛选 - 支持分页查询 #### 添加书籍 - 点击"添加书籍"按钮 - 填写书籍信息(书名、作者、封面、简介等) - 设置书籍状态(上架/下架) - 选择分类 #### 编辑书籍 - 点击书籍列表中的"编辑"按钮 - 修改书籍信息 - 保存更改 #### 删除书籍 - 单个删除:点击"删除"按钮 - 批量删除:选中多个书籍后点击"批量删除" #### 上架/下架 - 单个操作:点击"上架"或"下架"按钮 - 批量操作:选中多个书籍后点击"批量上架"或"批量下架" ### 3. 权限控制 - 所有后台管理接口都需要在请求头中携带token - token格式:`admin_token_{userId}` - 如果token无效或过期,会返回401未授权错误 ## API接口 ### 管理员登录 **POST** `/api/admin/login` 请求体: ```json { "username": "admin", "password": "admin123" } ``` 响应: ```json { "code": 200, "message": "登录成功", "data": { "id": 1, "username": "admin", "nickname": "管理员", "role": "admin", "token": "admin_token_1" } } ``` ### 书籍管理接口 所有书籍管理接口都需要在请求头中携带token: ``` Authorization: admin_token_1 ``` #### 分页查询书籍 **GET** `/api/admin/book/list?page=1&size=10&keyword=&status=&categoryId=` #### 根据ID查询书籍 **GET** `/api/admin/book/{id}` #### 创建书籍 **POST** `/api/admin/book` #### 更新书籍 **PUT** `/api/admin/book/{id}` #### 删除书籍 **DELETE** `/api/admin/book/{id}` #### 上架书籍 **PUT** `/api/admin/book/{id}/publish` #### 下架书籍 **PUT** `/api/admin/book/{id}/unpublish` ## 创建管理员账号 ### 方法1:使用SQL脚本 执行 `admin_schema.sql` 脚本会自动创建默认管理员账号。 ### 方法2:手动创建 ```sql -- 创建管理员账号 INSERT INTO `users` (`username`, `nickname`, `password`, `role`, `status`, `created_at`, `updated_at`) VALUES ('admin', '管理员', '0192023a7bbd73250516f069df18b500', 'admin', 1, NOW(), NOW()); -- 密码:admin123(MD5加密后:0192023a7bbd73250516f069df18b500) ``` ## 注意事项 1. **密码加密**:系统使用MD5加密密码,默认管理员密码 `admin123` 的MD5值为 `0192023a7bbd73250516f069df18b500` 2. **Token管理**:当前使用的是模拟token,实际项目中应该使用JWT Token 3. **CORS配置**:后端已配置CORS,允许跨域请求 4. **API地址**:前端API地址配置在 `utils/api.js` 中,默认是 `http://localhost:8081` 5. **Vue.js版本**:前端使用Vue.js 3,通过CDN引入 ## 后续优化 1. 使用JWT Token进行身份验证 2. 添加token过期时间管理 3. 添加操作日志记录 4. 添加数据统计功能 5. 添加用户管理功能 6. 添加分类管理功能 7. 添加图片上传功能 8. 添加数据导出功能 ## 启动命令 ```bash # 1. 启动后端服务(在book项目根目录) mvn spring-boot:run # 2. 启动前端开发服务器(在book-admin目录) cd book-admin npm install # 首次使用 npm run dev # 启动开发服务器 ``` ## 访问地址 - 登录页面:`http://localhost:8000/pages/login.html` - 书籍管理页面:`http://localhost:8000/pages/books.html`(需要登录)