🌱 农产品直销平台 (SunnyFarm)
一个基于 Spring Boot + Vue.js + MySQL 的现代化农产品电商平台,支持多角色管理(用户、商家、管理员),提供完整的电商功能包括商品管理、订单处理、支付集成、库存管理等。
📋 目录
✨ 功能特性
🛒 核心电商功能
- 商品管理: 分类管理、商品发布、图片上传、库存管理
- 购物车: 添加商品、数量调整、批量操作
- 订单系统: 创建订单、支付集成、状态跟踪、物流管理
- 用户系统: 注册登录、个人中心、收货地址管理
- 评价系统: 商品评价、商家回复、评分统计
👥 多角色支持
- 普通用户: 浏览商品、下单购买、管理订单
- 商家: 商品管理、订单处理、销售统计、客服聊天
- 平台管理员: 用户管理、商家审核、系统配置、数据统计
🔧 技术亮点
- 支付集成: 支付宝沙箱支付,支持异步回调
- 文件存储: 腾讯云COS + CDN加速
- 缓存优化: Redis缓存用户会话和购物车数据
- 邮件服务: 注册验证码、订单通知
- 实时聊天: 用户与商家在线客服
- 响应式设计: 支持PC端和移动端访问
🛠 技术栈
后端技术
- 框架: Spring Boot 2.7.14
- 安全: Spring Security + JWT认证
- 数据库: MySQL 8.0 + MyBatis Plus
- 缓存: Redis
- 文件存储: 腾讯云COS
- 支付: 支付宝开放平台
- 邮件: Spring Boot Mail
前端技术
- 框架: Vue 3 + Vite
- UI组件: Element Plus
- 状态管理: Pinia
- 路由: Vue Router 4
- 图表: ECharts
- HTTP客户端: Axios
运维部署
- 容器化: Docker + Docker Compose
- 云服务: 支持各类云平台部署
- 反向代理: Nginx
- 进程管理: PM2(可选)
📋 环境要求
开发环境
- Java: JDK 8 或以上
- Node.js: 16.0 或以上
- Maven: 3.6 或以上
- MySQL: 8.0 或以上
- Redis: 6.0 或以上
生产环境
- 服务器: Linux (推荐 Ubuntu 20.04+)
- 内存: 建议 2GB 以上
- 存储: 建议 20GB 以上
- 网络: 需要公网IP或域名(用于支付回调)
🚀 快速开始
1. 克隆项目
git clone https://git.sq0715.com/qin/SunnyFarm.git
cd SunnyFarm
2. 配置文件设置
后端配置
复制配置模板并填入你的配置信息:
# 开发环境配置
cp backend/src/main/resources/application-dev.yml.example backend/src/main/resources/application-dev.yml
# 生产环境配置
cp backend/src/main/resources/application-prod.yml.example backend/src/main/resources/application-prod.yml
3. 数据库初始化
# 创建数据库
mysql -u root -p -e "CREATE DATABASE sunnyfarm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 导入数据库结构和初始数据
mysql -u your_username -p sunnyfarm < sql/sunnyfarm.sql
mysql -u your_username -p sunnyfarm < sql/init_inventory.sql
4. 启动后端服务
cd backend
mvn clean install
mvn spring-boot:run
服务启动后访问: http://localhost:8080/api/init/status
5. 启动前端服务
cd frontend
npm install
npm run dev
前端启动后访问: http://localhost:3000
⚙️ 配置说明
数据库配置
spring:
datasource:
url: jdbc:mysql://your-mysql-host:3306/sunnyfarm
username: your-db-username
password: your-db-password
Redis配置
spring:
redis:
host: your-redis-host
port: 6379
password: your-redis-password
邮件服务配置 (QQ邮箱示例)
spring:
mail:
host: smtp.qq.com
port: 465
username: your-email@qq.com
password: your-email-auth-code # QQ邮箱授权码
腾讯云COS配置
tencent:
cos:
secret-id: your-tencent-cos-secret-id
secret-key: your-tencent-cos-secret-key
region: ap-guangzhou
bucket: your-bucket-name
支付宝配置
alipay:
app-id: your-alipay-app-id
app-private-key: your-alipay-app-private-key
alipay-public-key: your-alipay-public-key
notify-url: http://your-domain:8080/api/payment/alipay/notify
return-url: http://your-domain:3000/orders?payment=success
重要: 支付宝回调地址必须是公网可访问的地址,不能使用localhost
JWT配置
jwt:
secret: your-jwt-secret-key
expiration: 86400000 # 24小时,单位毫秒
🐳 Docker部署
使用Docker Compose部署
# 构建并启动服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
手动Docker部署
# 构建后端镜像
cd backend
docker build -t sunnyfarm-backend .
# 构建前端镜像
cd ../frontend
docker build -t sunnyfarm-frontend .
# 启动服务
docker run -d -p 8080:8080 --name sunnyfarm-backend sunnyfarm-backend
docker run -d -p 3000:3000 --name sunnyfarm-frontend sunnyfarm-frontend
🌍 生产环境部署
1. 服务器准备
# 安装基础软件
sudo apt update && sudo apt install -y git docker.io docker-compose nginx
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
2. 克隆项目并配置
git clone https://git.sq0715.com/qin/SunnyFarm.git
cd SunnyFarm
# 配置生产环境文件
cp backend/src/main/resources/application-prod.yml.example backend/src/main/resources/application-prod.yml
# 编辑配置文件,填入生产环境配置信息
vim backend/src/main/resources/application-prod.yml
3. 部署启动
# 构建并启动
docker-compose up -d
# 检查服务状态
docker-compose ps
curl http://your-server-ip:8080/api/init/status
📚 API文档
认证接口
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/user/login |
用户登录 |
| POST | /api/user/register |
用户注册 |
| POST | /api/merchant/login |
商家登录 |
| POST | /api/admin/login |
管理员登录 |
商品接口
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/product/list |
商品列表 |
| GET | /api/product/{id} |
商品详情 |
| POST | /api/product/create |
创建商品(商家) |
| PUT | /api/product/{id} |
更新商品(商家) |
订单接口
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/order/create |
创建订单 |
| GET | /api/order/list |
订单列表 |
| GET | /api/order/{id} |
订单详情 |
| POST | /api/order/{id}/pay |
订单支付 |
🎯 默认账号
管理员账号
- 用户名:
admin - 密码:
admin123
测试商家账号
- 用户名:
merchant - 密码:
merchant123
测试用户账号
- 用户名:
user - 密码:
user123
📝 开发说明
项目结构
SunnyFarm/
├── backend/ # 后端Spring Boot项目
│ ├── src/main/java/ # Java源码
│ ├── src/main/resources/ # 配置文件
│ └── pom.xml # Maven配置
├── frontend/ # 前端Vue项目
│ ├── src/ # Vue源码
│ ├── public/ # 静态资源
│ └── package.json # NPM配置
├── sql/ # 数据库脚本
├── docker-compose.yml # Docker编排
└── README.md # 项目文档
开发规范
- 代码格式化: 使用项目配置的格式化规则
- 提交规范: 使用语义化提交信息
- 分支管理: 使用Git Flow工作流
- 代码审查: 重要功能需要代码审查
🤝 贡献指南
- Fork本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送分支 (
git push origin feature/AmazingFeature) - 创建Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
📞 联系方式
- 项目地址: https://git.sq0715.com/qin/SunnyFarm
- 问题反馈: 请在GitHub Issues中提交
- 邮箱联系: 852326703@qq.com
🙏 致谢
感谢所有为本项目做出贡献的开发者们!
注意: 本项目仅供学习和研究使用,请勿用于商业用途。使用前请确保遵守相关法律法规。
Description
Languages
Vue
50.2%
Java
31.2%
PLpgSQL
8.4%
HTML
7.6%
JavaScript
2.4%
Other
0.2%