8666e1d8253a5ebabac346128723481132fac10b
奶茶店管理系统
基于Spring Boot + MyBatis + MySQL + Thymeleaf的奶茶店管理系统,包含用户端和商家端两个主要模块,集成协同过滤推荐算法。
技术栈
- 后端框架: Spring Boot 2.7.18
- 数据库: MySQL 8.0+
- ORM: MyBatis
- 认证: JWT Token
- 前端: HTML + Thymeleaf + Bootstrap 5
- 算法: 协同过滤推荐算法(基于用户的协同过滤)
功能模块
用户端功能
- 用户注册登录
- 个人信息管理
- 商品浏览(支持分类筛选)
- 商品个性化定制(甜度、冰度、配料)
- 购物车管理
- 订单下单支付(模拟微信/支付宝)
- 订单跟踪
- 个性化商品推荐(协同过滤算法)
- 公告查看
- 留言反馈
商家端功能
- 商家注册登录
- 商家信息管理
- 商品管理(新增/编辑/下架)
- 商品规格和配料管理
- 订单管理(接单/拒单/状态更新)
- 库存管理(入库/出库/预警)
- 公告发布
- 评价管理(查看/回复)
- 数据统计(日/周/月销量、营收、热门商品)
数据库设计
数据库表结构请参考 src/main/resources/db/schema.sql
主要表包括:
- user, user_address - 用户相关
- merchant - 商家
- product, product_spec, product_topping, product_custom - 商品相关
- cart - 购物车
- order, order_item, order_track - 订单相关
- inventory, inventory_log - 库存相关
- announcement - 公告
- message - 留言反馈
- review - 评价
- user_behavior, user_similarity - 协同过滤算法相关
安装和运行
1. 环境要求
- JDK 1.8+
- Maven 3.6+
- MySQL 8.0+
2. 数据库配置
- 创建数据库:
CREATE DATABASE nl_shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 执行建表SQL:
mysql -u root -p nl_shop < src/main/resources/db/schema.sql
- 修改配置文件
src/main/resources/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/nl_shop?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: your_password
3. 编译运行
mvn clean install
mvn spring-boot:run
4. 访问系统
协同过滤算法
系统实现了基于用户的协同过滤推荐算法:
- 用户行为记录: 记录用户的浏览、购买、评分行为
- 相似度计算: 使用余弦相似度计算用户之间的相似度
- 推荐生成: 基于相似用户的偏好生成推荐列表
- 冷启动处理: 新用户推荐热门商品
算法实现在 CollaborativeFilteringService 中。
API接口
用户端接口
- POST
/user/register- 用户注册 - POST
/user/login- 用户登录 - GET
/user/products- 商品列表 - GET
/user/products/{id}- 商品详情 - GET
/user/recommend- 个性化推荐 - POST
/user/cart/add- 加入购物车 - POST
/user/order/create- 创建订单 - POST
/user/order/{id}/pay- 支付订单
商家端接口
- POST
/merchant/register- 商家注册 - POST
/merchant/login- 商家登录 - GET
/merchant/products- 商品列表 - POST
/merchant/products- 新增商品 - GET
/merchant/orders- 订单列表 - PUT
/merchant/orders/{id}/accept- 接单 - GET
/merchant/statistics/sales- 销量统计
详细API文档请参考Controller代码。
项目结构
nl_shop/
├── src/main/java/com/nlshop/
│ ├── config/ # 配置类
│ ├── controller/ # 控制器层
│ │ ├── user/ # 用户端控制器
│ │ └── merchant/ # 商家端控制器
│ ├── service/ # 业务逻辑层
│ │ ├── user/
│ │ ├── merchant/
│ │ └── algorithm/ # 协同过滤算法
│ ├── mapper/ # MyBatis Mapper
│ ├── entity/ # 实体类
│ ├── dto/ # 数据传输对象
│ ├── util/ # 工具类
│ └── interceptor/ # 拦截器
└── src/main/resources/
├── mapper/ # MyBatis XML映射
├── templates/ # Thymeleaf模板
└── db/ # 数据库脚本
注意事项
- JWT Token默认有效期为24小时,可在
application.yml中配置 - 文件上传路径配置在
application.yml的file.upload-path - 密码使用MD5加密(生产环境建议使用BCrypt)
- 支付功能为模拟实现,实际项目需要对接真实支付接口
开发计划
- 项目基础架构
- 数据库设计
- 用户端功能
- 商家端功能
- 协同过滤算法
- 前端页面
- 单元测试
- 性能优化
- Redis缓存集成
许可证
MIT License
Description
Languages
HTML
73.2%
Java
15.9%
JavaScript
10.9%