基于SpringBoot的宠物咖啡馆平台
1. 在线演示:
后台:http://springbootx9rzc.xiaobias.com/springbootx9rzc/admin/dist/index.html
前台:http://springbootx9rzc.xiaobias.com/springbootx9rzc/front/index.html
管理员:abo/abo
用户:用户1/123456、用户2/123456
看护师:看护师1/123456、看护师2/123456
资源:https://fifteen.xiaobias.com/source/68
2. 项目简介
该项目是一个集宠物服务与咖啡餐饮于一体的综合性在线平台。系统主要分为前台用户端和后台管理端。前台面向普通用户,提供咖啡菜品点单、宠物信息浏览与互动体验(如体验、寄养、购买)、周边商品购买等功能。后台面向管理员、看护师等角色,提供全面的内容管理、订单处理、健康状况跟踪、看护服务记录等功能。该系统旨在为用户提供一个可以线上享受咖啡、与宠物互动、购买宠物及周边商品的便捷环境。
3. 技术栈
该项目是一个典型的基于 Spring Boot 的全栈项目,具体技术栈如下:
层次 | 技术选型 |
---|---|
后端框架 | Spring Boot 2.2.2.RELEASE, Mybatis-Plus 2.3, Shiro 1.3.2 (权限控制) |
数据库 | MySQL 5.7 |
前端框架 | 后台管理端: Vue 2 + Element-UI 前台用户端: 基于 Layui 的传统多页应用 (MPA) |
构建工具 | Maven |
其他技术 | FastJson (JSON处理), Hutool (Java工具库), ECharts (图表), 百度AI Java SDK (预留), Vue AMap (高德地图) |
4. 详细介绍
4.1 系统功能模块
系统主要包含三大核心模块和对应的管理功能:
-
咖啡菜品模块
- 前台: 用户浏览咖啡菜单、点单、评论。
- 后台: 管理员管理菜品信息、分类、处理菜品订单。
-
宠物信息模块
- 前台: 用户浏览宠物信息、预约宠物互动体验、申请宠物寄养、购买宠物。
- 后台: 管理员管理宠物信息;看护师记录宠物的健康状况、提供看护服务(喂食、剪毛、上传视频)。
-
周边商品模块
- 前台: 用户浏览和购买宠物零食、用品等商品。
- 后台: 管理员管理商品信息、类型、入库记录,处理商品购买订单。
4.2 数据库设计
数据库 springbootx9rzc
包含了约20张表,核心表包括:
yonghu
(用户表)kanhushi
(看护师表)kafeicaipin
(咖啡菜品表)caipindingdan
(菜品订单表)chongwuxinxi
(宠物信息表)chongwutiyan
(宠物体验表)chongwujiyang
(宠物寄养表)chongwudingdan
(宠物订单表)jiankangzhuangkuang
(健康状况表)kanhufuwu
(看护服务表)zhoubianshangpin
(周边商品表)shangpingoumai
(商品购买表)discuss...
(系列评论表)config
(系统配置表,用于存储轮播图等)storeup
(收藏表)
4.3 权限与角色管理
系统通过 Shiro 和前端路由控制实现了精细的权限管理,定义了三种角色及其权限:
- 管理员 (users): 拥有所有模块的增删改查、审核权限。
- 用户 (yonghu): 可进行前台所有消费操作(点单、体验、寄养、购买)、管理自己的订单和收藏。
- 看护师 (kanhushi): 主要负责宠物寄养、健康状况、看护服务等相关模块的管理。
权限细节在 menu.js
配置文件中明确定义。
5. 部分代码
5.1 后端 API 接口示例 (MyBatis-Plus Mapper)
/mapper/ChongwuxinxiDao.xml
中的查询片段展示了数据访问层的配置:
<select id="selectListView" resultType="com.entity.view.ChongwuxinxiView" >SELECT chongwuxinxi.* FROM chongwuxinxi chongwuxinxi <where> 1=1 ${ew.sqlSegment}</where>
</select>
5.2 前端权限判断 (Vue)
/admin/admin/src/utils/utils.js
中的 isAuth
方法展示了前端如何根据用户角色和菜单配置控制按钮权限:
export function isAuth(tableName,key) {let role = storage.get("role");// ... 从menu配置中查找当前角色对当前表(tableName)的操作权限(key)let buttons = menus[i].backMenu[j].child[k].buttons.join(',');return buttons.indexOf(key) !== -1 || false;
}
5.3 前台页面组件
前台首页 index.html
使用 Vue 和 Layui 动态生成导航:
<li v-for="(item,index) in indexNav" v-bind:key="index"><a :href="'javascript:navPage(\''+item.url+'\')'">{{item.name}}</a>
</li>
// 导航配置来自 config.js
var indexNav = [ {name: '咖啡菜品', url: './pages/kafeicaipin/list.html'}, ... ]
6. 部分截图
7. 项目总结
项目特点:
- 业务融合创新: 巧妙地将“咖啡馆”与“宠物服务”两种业态结合,满足了特定用户群体的需求。
- 权限设计清晰: 三权分立的角色设计(管理员、用户、看护师)使得业务流程清晰,责任明确。
- 技术栈选型合理: 采用 Spring Boot + Vue 的前后端分离架构(后台管理端)和 Spring Boot + Layui 的多页架构(前台用户端),兼顾了开发效率与传统部署的便利性。
- 功能完整: 涵盖了从商品/内容管理、订单流程、线下服务跟踪(看护服务)、到用户互动(评论、收藏)的完整业务链。