后台管理系统完成总结.md 7.2 KB

后台管理系统完成总结

✅ 已完成的功能

1. 数据库设计

  • ✅ 在 users 表中添加 role 字段
  • ✅ 创建默认管理员账号(用户名:admin,密码:admin123)
  • ✅ 更新现有用户角色为普通用户

2. 后端实现

实体类更新

  • User.java - 添加 role 字段
  • UserMapper.xml - 添加 role 字段映射

DTO和VO

  • AdminLoginDTO.java - 管理员登录DTO
  • AdminLoginVO.java - 管理员登录VO
  • BookManageDTO.java - 书籍管理DTO
  • AdminBookVO.java - 后台管理书籍VO

服务层

  • AdminService.java - 管理员登录服务(只有管理员可以登录)
  • AdminBookService.java - 书籍管理服务(增删改查、上架下架)

控制器

  • AdminController.java - 管理员登录接口
  • AdminBookController.java - 书籍管理接口(10个接口)

权限控制

  • AdminInterceptor.java - 管理员权限拦截器
  • AdminWebConfig.java - Web配置(注册拦截器)

3. 前端实现

API接口

  • book-admin/utils/api.js - 所有后台管理API接口

页面

  • book-admin/pages/login.html - 登录页面
  • book-admin/pages/books.html - 书籍管理页面

4. 功能特性

管理员登录

  • ✅ 只有 roleadmin 的用户可以登录
  • ✅ 普通用户不能登录后台管理系统
  • ✅ Token保存在localStorage中

书籍管理

  • ✅ 分页查询书籍(支持关键词、分类、状态筛选)
  • ✅ 添加书籍
  • ✅ 编辑书籍
  • ✅ 删除书籍(单个/批量)
  • ✅ 上架/下架书籍(单个/批量)
  • ✅ 查看书籍详情

📁 项目结构

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接口文件

🔐 权限控制

1. 登录权限

  • 只有 roleadmin 的用户可以登录
  • 普通用户(roleuser)不能登录

2. 接口权限

  • 所有 /api/admin/** 接口都需要token
  • 登录接口 /api/admin/login 不需要token
  • 其他接口(如 /api/category/**)不受影响

3. Token验证

  • Token格式:admin_token_{userId}
  • Token存储在请求头:Authorization: admin_token_1
  • 如果token无效,返回401未授权错误

📝 API接口列表

管理员登录

  • 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 - 批量下架书籍

🚀 使用步骤

1. 数据库初始化

mysql -u root -p books_db < book/src/main/resources/db/admin_schema.sql

2. 启动后端服务

cd book
mvn spring-boot:run

3. 打开前端页面

使用浏览器打开 book-admin/pages/login.html

4. 登录

默认管理员账号:

  • 用户名:admin
  • 密码:admin123

📊 数据库变更

1. 用户表添加role字段

ALTER TABLE `users` 
ADD COLUMN `role` VARCHAR(20) DEFAULT 'user' COMMENT '用户角色:admin-管理员,user-普通用户' AFTER `status`,
ADD INDEX `idx_role` (`role`);

2. 创建默认管理员账号

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');

🎯 核心功能

1. 管理员登录

  • ✅ 验证用户名和密码
  • ✅ 检查用户角色(只有admin可以登录)
  • ✅ 检查用户状态
  • ✅ 返回token

2. 书籍管理

  • ✅ 分页查询(支持搜索、筛选)
  • ✅ 添加书籍
  • ✅ 编辑书籍
  • ✅ 删除书籍
  • ✅ 上架/下架
  • ✅ 批量操作

3. 权限控制

  • ✅ 拦截器验证token
  • ✅ 只有管理员可以访问后台接口
  • ✅ 登录接口不需要token

📌 注意事项

  1. 密码加密:使用MD5加密,默认密码 admin123 的MD5值为 0192023a7bbd73250516f069df18b500
  2. Token管理:当前使用模拟token,生产环境应该使用JWT Token
  3. CORS配置:后端已配置CORS,允许跨域请求
  4. API地址:前端API地址配置在 book-admin/utils/api.js 中,默认是 http://localhost:8081
  5. Vue.js版本:前端使用Vue.js 3,通过CDN引入

🔄 后续优化建议

  1. JWT Token:使用JWT Token替代模拟token
  2. Token过期:添加token过期时间管理
  3. 操作日志:记录管理员操作日志
  4. 数据统计:添加数据统计功能
  5. 用户管理:添加用户管理功能
  6. 分类管理:添加分类管理功能
  7. 图片上传:添加图片上传功能
  8. 数据导出:添加数据导出功能(Excel、CSV等)
  9. 权限细化:细化权限管理(不同管理员有不同的权限)
  10. 操作确认:添加操作确认对话框,防止误操作

✅ 测试 Checklist

  • 数据库初始化成功
  • 管理员账号创建成功
  • 后端服务启动成功
  • 管理员登录成功
  • 普通用户登录失败(正确)
  • 书籍列表查询成功
  • 添加书籍成功
  • 编辑书籍成功
  • 删除书籍成功
  • 上架/下架书籍成功
  • 批量操作成功
  • 搜索和筛选功能正常
  • 分页功能正常
  • Token验证正常
  • 权限控制正常

📚 相关文档

  • book/后台管理系统功能说明.md - 详细功能说明
  • book/后台管理系统快速启动指南.md - 快速启动指南
  • book-admin/README.md - 前端使用说明
  • book/src/main/resources/db/admin_schema.sql - 数据库脚本