虞江增 92fa9e11b5 first commit 2 hafta önce
..
src 92fa9e11b5 first commit 2 hafta önce
.gitignore 92fa9e11b5 first commit 2 hafta önce
README.md 92fa9e11b5 first commit 2 hafta önce
package.json 92fa9e11b5 first commit 2 hafta önce
pom.xml 92fa9e11b5 first commit 2 hafta önce
一键修复登录问题.bat 92fa9e11b5 first commit 2 hafta önce
一键修复登录问题.sh 92fa9e11b5 first commit 2 hafta önce
使用说明.md 92fa9e11b5 first commit 2 hafta önce
启动指南.md 92fa9e11b5 first commit 2 hafta önce
完整功能说明.md 92fa9e11b5 first commit 2 hafta önce
实现总结.md 92fa9e11b5 first commit 2 hafta önce
快速修复登录问题.md 92fa9e11b5 first commit 2 hafta önce
快速启动.md 92fa9e11b5 first commit 2 hafta önce
快速启动指南.md 92fa9e11b5 first commit 2 hafta önce
登录问题排查指南.md 92fa9e11b5 first commit 2 hafta önce
登录问题解决方案.md 92fa9e11b5 first commit 2 hafta önce
项目结构说明.md 92fa9e11b5 first commit 2 hafta önce

README.md

后台管理系统

功能概述

后台管理系统用于管理小程序中的书籍数据,包括:

  • 书籍的增删改查
  • 书籍的上架/下架
  • 书籍状态管理
  • 管理员登录(只有管理员可以登录)

技术栈

  • 后端: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. 数据库初始化

执行数据库脚本创建管理员账号:

# 在book项目根目录执行
mysql -u root -p books_db < src/main/resources/db/admin_schema.sql

2. 启动后端服务

# 在book项目根目录执行
cd ..
mvn spring-boot:run

# 或者使用IDE启动 BookApplication.java

验证后端服务:

  • 打开浏览器访问:http://localhost:8081/api/admin/login
  • 如果能看到响应,说明服务已启动

3. 启动前端开发服务器

# 在book-admin目录执行
cd book-admin

# 首次使用需要安装依赖
npm install

# 启动开发服务器(自动打开浏览器)
npm run dev

4. 登录

默认管理员账号:

  • 用户名:admin
  • 密码:admin123

功能说明

1. 管理员登录

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

2. 书籍管理

查询功能

  • 支持按书名、作者搜索
  • 支持按状态筛选(上架/下架)
  • 支持按分类筛选
  • 支持分页查询

添加书籍

  • 点击"添加书籍"按钮
  • 填写书籍信息(书名、作者、封面、简介等)
  • 设置书籍状态(上架/下架)
  • 选择分类

编辑书籍

  • 点击书籍列表中的"编辑"按钮
  • 修改书籍信息
  • 保存更改

删除书籍

  • 单个删除:点击"删除"按钮
  • 批量删除:选中多个书籍后点击"批量删除"

上架/下架

  • 单个操作:点击"上架"或"下架"按钮
  • 批量操作:选中多个书籍后点击"批量上架"或"批量下架"

3. 权限控制

  • 所有后台管理接口都需要在请求头中携带token
  • token格式:admin_token_{userId}
  • 如果token无效或过期,会返回401未授权错误

API接口

管理员登录

POST /api/admin/login

请求体:

{
  "username": "admin",
  "password": "admin123"
}

响应:

{
  "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:手动创建

-- 创建管理员账号
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. 添加数据导出功能

启动命令

# 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(需要登录)