1. 项目概述
这个宠物咖小程序项目采用SpringBoot后端+微信小程序前端的技术架构,是一个典型的毕业设计级别全栈应用。我在实际开发中发现,这类结合线下宠物主题咖啡馆的O2O小程序,既能展示学生全栈开发能力,又具备真实商业场景的应用价值。
整套系统包含小程序用户端、商家管理后台、SpringBoot服务端三大部分。用户可以通过小程序预约宠物互动、购买咖啡饮品、查看活动信息;商家后台则提供订单管理、宠物档案维护、营业数据统计等功能。技术栈选择上,SpringBoot提供了稳定的RESTful API支持,微信小程序则保证了移动端的用户体验。
提示:毕业设计选择这类"线上预约+线下体验"的O2O项目时,建议重点考虑三个要素:业务流程完整性、技术栈主流程度、商业逻辑合理性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能模块设计
2.1 用户端功能实现
小程序用户端采用微信原生开发框架,主要包含以下核心页面:
- 首页展示模块:
- 轮播图展示最新活动(使用swiper组件)
- 宠物明星墙(横向scroll-view布局)
- 快捷预约入口(绑定跳转事件)
javascript复制// 首页数据加载示例
Page({
data: {
banners: [],
pets: [],
loading: true
},
onLoad() {
wx.request({
url: 'https://api.example.com/home',
success: (res) => {
this.setData({
banners: res.data.banners,
pets: res.data.featuredPets,
loading: false
})
}
})
}
})
- 预约系统实现:
- 日历组件(采用第三方vant-weapp)
- 时段选择(与后端库存联动)
- 宠物选择器(多选限制逻辑)
2.2 后台管理系统
SpringBoot后台采用经典的三层架构:
- 控制层:
- 使用@RestController注解
- 统一异常处理(@ControllerAdvice)
- JWT token验证拦截器
java复制@RestController
@RequestMapping("/api/admin")
public class AdminController {
@Autowired
private PetService petService;
@PostMapping("/pets")
public Result addPet(@RequestBody PetDTO dto) {
return Result.success(petService.addPet(dto));
}
}
-
服务层:
- 业务逻辑封装
- 事务管理(@Transactional)
- 缓存处理(Redis集成)
-
数据访问层:
- MyBatis-Plus实现CRUD
- 动态SQL编写
- 分页查询处理
3. 关键技术实现细节
3.1 微信小程序与SpringBoot通信
前后端交互采用HTTPS协议,数据格式为JSON。关键实现点包括:
-
接口安全设计:
- 小程序登录获取openid
- JWT token生成与验证
- 敏感数据加密传输
-
文件上传处理:
- 微信临时文件转存
- 七牛云OSS集成
- 图片压缩处理
java复制@PostMapping("/upload")
public Result upload(@RequestParam MultipartFile file) {
String fileName = UUID.randomUUID() + getSuffix(file.getOriginalFilename());
qiniuUtil.upload(file.getInputStream(), fileName);
return Result.success(fileName);
}
3.2 数据库设计要点
MySQL数据库主要表结构设计:
| 表名 | 核心字段 | 说明 |
|---|---|---|
| t_user | id, openid, nickname | 用户表 |
| t_pet | id, name, age, avatar | 宠物档案 |
| t_order | order_no, user_id, pet_id, status | 预约订单 |
| t_product | id, name, price, stock | 商品表 |
注意:实际开发中建议添加create_time、update_time等审计字段,便于后期排查问题。
4. 开发环境搭建指南
4.1 后端环境配置
-
基础依赖:
- JDK 1.8+
- Maven 3.6+
- MySQL 5.7
-
关键pom依赖:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
4.2 小程序开发准备
-
开发工具:
- 微信开发者工具
- VSCode(推荐插件:wxml、minapp)
-
项目结构:
code复制/pages
/index
index.js
index.json
index.wxml
index.wxss
/utils
request.js
util.js
app.js
app.json
app.wxss
5. 典型问题解决方案
5.1 微信登录流程异常
问题现象:获取openid失败,返回40029错误码
排查步骤:
- 检查appid和secret是否正确
- 确认code未重复使用
- 验证服务器时间是否同步
解决方案:
javascript复制// 正确登录代码示例
wx.login({
success: res => {
if (res.code) {
wx.request({
url: 'https://yourdomain.com/api/login',
data: { code: res.code }
})
}
}
})
5.2 跨域问题处理
SpringBoot后端需添加CORS配置:
java复制@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.maxAge(3600);
}
}
6. 项目部署方案
6.1 后端部署
推荐两种部署方式:
-
传统服务器部署:
- 打包:mvn clean package
- 启动:java -jar petcafe.jar
- 使用Nginx反向代理
-
Docker容器化:
dockerfile复制FROM openjdk:8-jdk-alpine
COPY target/petcafe.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
6.2 小程序发布流程
- 开发版本测试
- 体验版审核
- 提交微信审核
- 线上发布
重要:微信小程序发布前需完成服务器域名配置,包括request合法域名、uploadFile合法域名等。
7. 项目扩展方向
在实际开发中,可以考虑以下增强功能:
-
会员积分系统:
- 消费积分累计
- 积分兑换规则
- 等级特权设计
-
智能推荐算法:
- 基于用户行为的宠物推荐
- 协同过滤算法实现
- 推荐结果缓存处理
-
物联网集成:
- 宠物健康监测设备对接
- 智能喂食器控制
- 环境传感器数据展示
这个项目最让我印象深刻的是业务完整性与技术实用性的平衡。在开发预约系统时,最初设计的数据库表缺少状态流转记录字段,导致后期无法追踪订单状态变化。后来通过添加t_order_log表解决了这个问题,这也让我深刻理解了审计日志的重要性。
