乐于分享
好东西不私藏

源码专题-java0159-基于 Spring Boot图书借阅微信小程序系统

源码专题-java0159-基于 Spring Boot图书借阅微信小程序系统

📚 图书借阅微信小程序系统 · 项目技术文档

> 一款基于 **Spring Boot + 微信小程序** 的在线图书借阅平台,涵盖读者端小程序与管理员后台,实现选书、加入书架、押金充值、微信支付、借阅下单、归还、评价的全流程闭环。

一、项目概览

| 项目条目 | 详情 |
| 项目名称 | 图书借阅(Book Borrowing) |
| 项目类型 | 微信小程序 + 后台管理系统 |
| 业务领域 | 图书租借 / 共享阅读 |
| 数据库 | MySQL 5.7(`db_book`,11 张业务表) |
| Java 版本 | JDK 1.8 |
| 后端主框架 | Spring Boot 2.3.4.RELEASE |
| 应用端口 | `8080` |
| 项目根包 | `com.kinnong` 

二、技术栈

🔧 后端服务(server)

| 分层 | 技术 / 组件 | 版本 | 作用 |
| Web 框架 | **Spring Boot** | 2.3.4 | 快速构建 REST API,自动装配 |
| ORM 框架 | **MyBatis-Spring-Boot** | 1.3.0 | SQL 映射,Mapper XML 灵活可控 |
| 数据库 | **MySQL** + **mysql-connector-java** | 8.0.16 | 关系型数据持久化 |
| 连接池 | **Alibaba Druid** | 1.0.28 | 高性能连接池,自带监控 |
| 权限框架 | **Apache Shiro** | 1.3.2 | 后台会话管理、静态资源放行 |
| 令牌方案 | **JWT (java-jwt)** | 3.3.0 | 小程序端无状态鉴权 |
| 验证码 | **Kaptcha** | 0.0.9 | 后台登录图形验证码 |
| 微信生态 | **weixin-java-miniapp** | 3.4.0 | 小程序登录、code2session |
| 微信支付 | **weixin-java-pay** | 3.4.0 | 统一下单、异步回调解析 |
| 富文本 | **UEditor** | - | 后台图书详情富文本编辑 |
| 工具库 | commons-lang / io / fileupload / codec | - | 通用工具、文件上传 |
| 热部署 | spring-boot-devtools | - | 开发期修改即刻生效 |
| 构建工具 | **Maven** + 阿里云仓库 | - | 依赖管理,加速下载 

🖥 管理端页面(Admin)

| 技术 | 说明 |
| : | : |
| **Vue.js** (`vue.min.js`) | 声明式渲染、组件化 |
| **AdminLTE** + **Bootstrap** | 蓝色骨架 UI,响应式布局 |
| **jQuery** | DOM 操作与 Ajax |
| **FontAwesome / Ionicons** | 图标体系 |
| **bootstrap-paginator** | 列表分页 |
| **UEditor** | 图书富文本描述编辑器 |

📱 微信小程序(my-weixin)

| 技术 | 说明 |
| : | : |
| **微信原生小程序** | `wxml + wxss + js + json`,无框架依赖 |
| **ColorUI** | 精致 UI 组件库,颜值担当 |
| **WeUI** | 微信官方视觉规范补充 |
| **自定义 tabBar** | 首页 / 分类 / 书架 / 我的 四大 Tab |
| **微信支付 JSAPI** | 押金充值、订单支付 |
| **wx.login + JWT** | 一键静默登录

三、角色划分与核心功能

系统采用 **双角色分权** 设计:**管理员** 通过 Web 后台运营图书与订单,**读者(会员)** 通过微信小程序完成借阅闭环。

👨‍💼 角色一:管理员(Admin)

> 表 `sys_user`,登录接口 `/sys/login`,Shiro 静态资源放行 + JWT 令牌鉴权 + Kaptcha 验证码三重保障。

🎯 核心功能

| 功能模块 | 核心能力 | 对应接口 / 页面 |
| 📊 **数据看板** | 登录后首页展示:用户总数、图书总数、订单总数;**近 7 天订单趋势图**(自动补零,无数据日期填充为 0) | `/statistics/query`、`admin/index.html` |
| 📖 **图书管理** | 图书 CRUD、**上架 / 下架**切换、多图轮播、库存管理、出版社 & 作者维护、UEditor 富文本描述 | `/book/{list,save,update,lower,upper,delete}` |
| 🏷 **分类管理** | 图书分类的增删改查,支持关联图书数量统计 | `/category/*` |
| 🖼 **广告位管理** | 首页轮播图配置:图片、跳转链接、排序、启停 | `/advert/*` |
| 👥 **会员管理** | 查看小程序注册用户;押金、昵称、手机号维护 | `/member/*` |
| 📦 **订单管理** | 查看全部借阅单、状态流转(未支付 / 已支付 / 已发货 / 已归还 / 已取消)、**录入物流单号** | `/order/*` |
| ⭐ **评价管理** | 查看读者对订单的评分与文字评价,支持删除违规评价 | `/evaluation/*` |
| 🔐 **系统管理** | 后台账号管理、密码 MD5+Salt 加密、退出登录 | `/sys/user/*`

📖 角色二:读者 / 会员(Member)

> 表 `base_member` + `base_member_auth`,通过 `wx.login` 换取 openid 静默注册;后续请求以 `token` Header 携带 JWT。

🎯 核心功能

| 功能模块 | 核心能力 | 对应接口 / 页面 |
| 🚪 **一键登录** | `wx.login → code2session → openid`,首次自动注册;**过滤 utf8mb4 emoji** 防止入库报错;签发 JWT | `/api/wechat/login` |
| 🏠 **首页发现** | 轮播广告 + 推荐图书 **瀑布流**展示 + 顶部搜索框(跳转搜索结果页) | `/api/advert/list`、`/api/book/recommend` |
| 🔍 **图书浏览** | 按分类筛选、关键字搜索、图书详情多图轮播、作者 / 出版社 / 库存查看 | `/api/book/{list,detail}`、`/api/category/list` |
| 📚 **我的书架** | 收藏喜欢的图书到**个人书架**;书架计数、快速下单、批量删除 | `/api/shelf/{save,list,total,del,update}` |
| 💰 **押金充值** | 调用微信支付 **JSAPI 统一下单**,支付成功回写 `base_member.deposit`;未交押金拦截下单 | `/api/member/addDeposit`、`/api/wechat/pay/unifiedOrder` |
| 📝 **借阅下单** | 选书 → 提交订单 → **事务生成订单号** → 扣减图书库存 → 自动写入 14 天到期日 → 生成浏览记录 | `/api/order/create` |
| 💳 **微信支付** | 唤起小程序支付,商户回调 `parseOrderNotifyResult` 更新订单状态为"已支付" | `/api/wechat/pay/*` 
| 📮 **订单跟踪** | 查看订单列表 / 详情、取消未支付订单、查看物流信息、到期归还提醒 | `/api/order/{list,detail,cancel}` |
| ✍️ **归还与评价** | 归还时**事务性回补库存**;对已完成订单进行星级评分 + 文字点评 | `/api/evaluation/save` |
| 👤 **个人中心** | 昵称 / 头像 / 性别 / 手机号维护、押金余额、我的评价、赞赏开发者 | `/api/member/{info,update}`

四、项目亮点 ✨

① 🎯 全流程闭环设计

从**逛书 → 加书架 → 交押金 → 下单 → 支付 → 发货 → 到期归还 → 评价**一气呵成,模拟真实"共享图书馆"业态,业务逻辑完整可落地。

② 🔐 双端异构鉴权体系

- **后台管理端**:Shiro 会话管理 + Kaptcha 图形验证码,防止暴力破解
- **小程序端**:JWT 无状态令牌,通过自定义 `@AuthIgnore` 注解 + `AuthorizationInterceptor` 拦截器实现"白名单免鉴权 + 其余强制校验"的精准控制

③ 💸 微信生态深度集成

- 小程序 `wx.login` 静默换取 openid,**首次访问自动注册**,零门槛
- 微信支付 **JSAPI 统一下单**,前端直接 `wx.requestPayment` 唤起,后端 `parseOrderNotifyResult` 优雅处理回调
- 押金与订单支付**共用同一支付通道**,代码复用度高

④ 🛡 事务保障的库存一致性

`OrderServiceImplcreateOrder` 与 `returnBook` 均使用 `@Transactional` 修饰,**下单扣库存 / 归还回库存**在同一事务内完成,杜绝超卖与丢单。

⑤ 📊 智能补零的统计看板

后台首页 `StatisticsControllerquery` 智能**补齐近 7 天订单曲线**,无订单日期自动填 0,图表不断线;三大核心指标(用户 / 图书 / 订单)一屏呈现。

⑥ 🖼 富媒体图书详情

- 图书多图上传,前端 Swiper 轮播展示
- UEditor 富文本编辑图书简介,支持图文混排
- ColorUI 瀑布流首页布局,视觉效果高级

⑦ 🧩 高度模块化的代码组织

按业务领域切分为 `advert / book / member / order / sys / wechat` 六大模块,每个模块严格遵循 `Controller → Service → Dao → Entity` 分层,**API 接口**(`api/`)与**后台接口**(`controller/`)目录分离,读者调用小程序 API、管理员调用管理接口,职责一目了然。

⑧ ⚡ 开发效率友好

- Druid 连接池带监控页,数据库问题一眼定位
- `spring-boot-devtools` 热部署,改完即用
- Maven 依赖走**阿里云镜像**,国内构建飞快
- 全局异常处理 `RExceptionHandler` + 统一响应 `R.ok() / R.error()`,前端解析零心智负担

⑨ 📱 小程序颜值与体验并重

- **ColorUI + WeUI** 双组件库加持,卡片、瀑布流、Tab 栏视觉精致
- **自定义导航栏**(`navigationStyle: custom`)配合胶囊按钮位,界面沉浸
- 首页瀑布流双列布局,自动测量图片高度避免抖动

⑩ 🔄 灵活的静态资源与跨域方案

`WebMvcConfig` + `CorsConfig` 打通跨域;`static-locations` 同时支持 classpath 与外部 `fileupload.filepath`,上传的图书封面**无需重启即可访问**。

五、数据模型速览

| 表名 | 中文 | 说明 |
| `sys_user` | 管理员 | 后台账号,密码 MD5+Salt |
| `base_member` | 会员 | 小程序读者,含押金余额 |
| `base_member_auth` | 授权表 | openid ↔ member_id 绑定 |
| `book_book` | 图书 | 名称、封面、多图、库存、上下架 |
| `book_category` | 分类 | 图书分类字典 |
| `book_advert` | 广告位 | 首页轮播 |
| `book_shelf` | 我的书架 | 会员收藏的图书 |
| `book_history` | 浏览记录 | 借阅过的图书 |
| `book_order` | 订单 | 借阅主单,含状态、金额、起止日 |
| `book_order_book` | 订单明细 | 订单包含的图书清单 |
| `book_order_evaluation` | 订单评价 | 星级 + 文字 

六、目录结构(关键部分)

```
java0159/
├── server/                        Spring Boot 后端
│   ├── pom.xml
│   ├── db/db_book.sql             建表 + 初始数据
│   └── src/main/
│       ├── java/com/kinnong/
│       │   ├── BookApplication.java    启动类
│       │   ├── common/                 通用注解、异常、工具
│       │   ├── modules/                业务模块
│       │   │   ├── advert/ book/ member/ order/ sys/ wechat/
│       │   │   │   ├── api/            小程序 REST 接口
│       │   │   │   ├── controller/     后台管理接口
│       │   │   │   ├── service/        业务逻辑
│       │   │   │   ├── dao/            MyBatis Mapper 接口
│       │   │   │   └── entity/         实体类
│       │   └── web/                    Shiro / Cors / 拦截器 / 全局异常
│       └── resources/
│           ├── application.yml
│           ├── mapper/                 MyBatis XML
│           ├── static/                 后台静态资源(AdminLTE/Vue/jQuery)
│           └── views/admin/            后台页面
└── my-weixin/                     微信小程序端
├── app.js / app.json / app.wxss
├── colorui/                        ColorUI 组件库
├── style/weui.wxss
└── pages/
├── index/      首页
├── classify/   分类
├── book-shelf/ 书架
├── book/       图书列表、搜索、详情
├── order/      借阅、支付、评价、详情
└── my/         个人中心、押金、赞赏
```
**📚 简单、优雅、可运行的图书借阅解决方案 📚**
*Spring Boot × MyBatis × Shiro × JWT × 微信小程序*

软件定制及其他业务

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)