SunnyFarm/README.md
2025-09-25 05:52:22 +08:00

8.4 KiB
Raw Blame History

🌱 农产品直销平台 (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工作流
  • 代码审查: 重要功能需要代码审查

🤝 贡献指南

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送分支 (git push origin feature/AmazingFeature)
  5. 创建Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

📞 联系方式

🙏 致谢

感谢所有为本项目做出贡献的开发者们!


注意: 本项目仅供学习和研究使用,请勿用于商业用途。使用前请确保遵守相关法律法规。