Skip to content

✨从原材料到餐桌,全程可信可溯一个基于Spring Boot + Vue3 + 微信小程序 的预制菜全链路溯源与电商一体化平台 🔍 扫码溯源 🏭 智能生产管理 🛒 一体化商城 📱 多端覆盖 🔐 企业级权限

License

Notifications You must be signed in to change notification settings

linyshdhhcb/prep-meals-blockchain-traceability

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

预制菜可信溯源平台 (PMBT)

License: MIT Java Spring Boot Vue.js 微信小程序

注意

本软件基于 RuoYi 二次开发 https://github.com/yangzongzhuan/RuoYi-Vue3

📖 项目简介

PMBT (Prep Meals Blockchain Traceability) 是一个预制菜可信溯源平台,旨在为预制菜行业提供完整的供应链追溯解决方案。确保食品从原料采购到最终消费的全过程可追溯、可验证。

**注意:**本项目我用于毕设、竞赛、课程设计等,不具备生产环境使用条件,不足之处还请见谅。

✨ 核心特性

  • 🔗 溯源: 扫码,提供可信的溯源信息
  • 🏭 生产管理: 完整的生产订单管理,支持设备监控和工艺控制
  • 🛒 商城系统: 集成电商功能,支持商品展示、购物车、订单管理
  • 📱 多端支持: 提供 Web 管理端、微信小程序端,满足不同用户需求
  • 🔐 安全认证: 完善的用户认证和权限管理系统
  • 📊 数据可视化: 丰富的图表展示,实时监控业务数据

🏗️ 技术架构

后端技术栈

  • 框架: Spring Boot 3.3.4
  • 数据库: MySQL 8.2.0
  • ORM: MyBatis Plus 3.5.5
  • 连接池: Druid 1.2.23
  • 缓存: Redis
  • 文档: SpringDoc OpenAPI 2.5.0
  • 工具库: Hutool 5.1.0, FastJSON2 2.0.43

前端技术栈

  • 框架: Vue.js 3.4.31
  • UI 组件: Element Plus 2.7.6
  • 构建工具: Vite 5.3.2
  • 状态管理: Pinia 2.1.7
  • 路由: Vue Router 4.4.0
  • 图表: ECharts 5.5.1

微信小程序

  • 框架: 微信小程序原生开发
  • UI 库: ColorUI
  • 版本: 2.19.6

📁 项目结构

prep-meals-blockchain-traceability/
├── pmbt-api/                    # 后端API服务
│   ├── pmbt-admin/             # 管理后台模块
│   ├── pmbt-common/            # 通用工具模块
│   ├── pmbt-framework/         # 核心框架模块
│   ├── pmbt-generator/         # 代码生成器模块
│   ├── pmbt-mall/              # 商城模块
│   ├── pmbt-production/        # 生产管理模块
│   ├── pmbt-quartz/            # 定时任务模块
│   ├── pmbt-system/            # 系统管理模块
│   └── pmbt-weixin/            # 微信集成模块
├── pmbt-web/                   # Web前端
│   ├── src/
│   │   ├── api/                # API接口
│   │   ├── components/         # 公共组件
│   │   ├── views/              # 页面组件
│   │   ├── router/             # 路由配置
│   │   └── store/              # 状态管理
│   └── public/                 # 静态资源
└── pmbt-miniapp/               # 微信小程序
    ├── pages/                  # 页面
    ├── components/             # 组件
    ├── utils/                  # 工具函数
    └── public/                 # 静态资源

🚀 快速开始

环境要求

  • Java 17+
  • Node.js 16+
  • MySQL 8.0+
  • Redis 6.0+
  • Maven 3.6+
  • Docker & Docker Compose (可选)

🐳 Docker 部署 (推荐)

一键部署

  1. 克隆项目

    git clone https://github.com/linyshdhhcb/prep-meals-blockchain-traceability.git
    cd prep-meals-blockchain-traceability
  2. 准备部署文件

    # 构建后端JAR包
    cd pmbt-api
    mvn clean package -DskipTests
    cp pmbt-admin/target/pmbt-admin.jar ../docker/jar/
    
    # 构建前端静态文件
    cd ../pmbt-web
    npm install
    npm run build
    cp -r dist/* ../docker/dist/
    
    # 准备数据库脚本
    cp sql/pmbt.sql ../docker/db/
  3. 启动服务

    cd ../docker
    docker-compose up -d
  4. 访问应用

Docker 服务说明

服务 端口 说明
pmbt-nginx 80, 443 前端静态文件和反向代理
pmbt-server 7500 后端 API 服务
pmbt-mysql 3306 MySQL 数据库
pmbt-redis 6379 Redis 缓存

Docker 管理命令

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f pmbt-server

# 重启服务
docker-compose restart pmbt-server

# 停止所有服务
docker-compose down

# 停止并删除数据卷
docker-compose down -v

💻 传统部署

后端部署

  1. 克隆项目

    git clone https://github.com/linyshdhhcb/prep-meals-blockchain-traceability.git
    cd prep-meals-blockchain-traceability
  2. 数据库配置

    # 创建数据库
    CREATE DATABASE pmbt CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
    # 导入数据库脚本
    mysql -u root -p pmbt < sql/pmbt.sql
  3. 配置文件修改

    # pmbt-api/pmbt-admin/src/main/resources/application.yml
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/pmbt?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: your_username
        password: your_password
      redis:
        host: localhost
        port: 6379
        password: your_redis_password
  4. 启动后端服务

    cd pmbt-api
    mvn clean install
    cd pmbt-admin
    mvn spring-boot:run

前端部署

  1. 安装依赖

    cd pmbt-web
    npm install
  2. 配置 API 地址

    // src/config/env.js
    export default {
      baseURL: "http://localhost:8080/api",
    };
  3. 启动开发服务器

    npm run dev

微信小程序部署

  1. 配置小程序信息

    // config/env.js
    export default {
      baseURL: "https://your-domain.com/api",
    };
  2. 使用微信开发者工具

    • 导入 pmbt-miniapp 目录
    • 配置 AppID
    • 编译并上传

📋 功能模块

🏭 生产管理

  • 生产订单管理
  • 设备监控
  • 工艺参数控制
  • 质量检测记录

🛒 商城系统

  • 商品管理
  • 购物车功能
  • 订单处理
  • 支付集成

🔗 溯源

  • 供应链追溯
  • 数据上链
  • 溯源查询
  • 防伪验证

👥 用户管理

  • 用户注册/登录
  • 权限管理
  • 角色分配
  • 操作日志

📊 数据统计

  • 销售统计
  • 生产统计
  • 设备状态
  • 实时监控

🔧 配置说明

Docker 环境配置

环境变量配置

docker-compose.yml 中可以配置以下环境变量:

environment:
  # MySQL配置
  MYSQL_ROOT_PASSWORD: root
  MYSQL_DATABASE: pmbt

  # Redis配置
  REDIS_PASSWORD: your_redis_password

  # 应用配置
  SPRING_PROFILES_ACTIVE: docker
  TZ: Asia/Shanghai

数据持久化

Docker 容器中的数据会持久化到以下目录:

docker/
├── mysql/data/          # MySQL数据文件
├── redis/data/          # Redis数据文件
├── pmbt/logs/           # 应用日志
├── pmbt/uploadPath/     # 上传文件
└── nginx/logs/          # Nginx日志

网络配置

项目使用自定义网络 pmbt-network,服务间通过服务名通信:

  • pmbt-serverpmbt-mysql:3306
  • pmbt-serverpmbt-redis:6379
  • pmbt-nginxpmbt-server:7500

数据库配置

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      max-wait: 60000

Redis 配置

spring:
  redis:
    database: 0
    timeout: 10000ms
    lettuce:
      pool:
        max-active: 8
        max-wait: -1ms
        max-idle: 8
        min-idle: 0

微信小程序配置

// 微信支付配置
wxPayConfig: {
  appId: 'your_app_id',
  mchId: 'your_mch_id',
  apiKey: 'your_api_key'
}

🚨 故障排除

Docker 部署常见问题

1. 端口冲突

# 检查端口占用
netstat -tulpn | grep :80
netstat -tulpn | grep :3306

# 修改 docker-compose.yml 中的端口映射
ports:
  - "8080:80"  # 改为其他端口

2. 数据库连接失败

# 检查MySQL容器状态
docker-compose logs pmbt-mysql

# 检查网络连接
docker network ls
docker network inspect docker_pmbt-network

3. 前端页面无法访问

# 检查Nginx配置
docker-compose logs pmbt-nginx

# 检查静态文件是否正确复制
docker exec -it pmbt-nginx ls -la /home/pmbt/projects/pmbt-web/

4. 后端服务启动失败

# 查看详细日志
docker-compose logs -f pmbt-server

# 检查JAR文件是否存在
ls -la docker/jar/

性能优化建议

Docker 资源限制

services:
  pmbt-server:
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: "1.0"
        reservations:
          memory: 1G
          cpus: "0.5"

MySQL 优化

-- 在 docker/db/pmbt.sql 中添加
SET GLOBAL innodb_buffer_pool_size = 256M;
SET GLOBAL max_connections = 200;

Redis 优化

# 在 docker/conf/redis.conf 中配置
maxmemory 512mb
maxmemory-policy allkeys-lru

📱 界面预览

Web 管理端

  • 仪表盘:实时数据展示
  • 生产管理:订单和设备监控
  • 商城管理:商品和订单处理
  • 用户管理:权限和角色配置

微信小程序

  • 首页:商品展示和推荐
  • 商品详情:详细信息查看
  • 购物车:商品管理
  • 订单:订单跟踪
  • 溯源:区块链溯源查询

🤝 贡献指南

我们欢迎所有形式的贡献,包括但不限于:

  1. Bug 报告: 发现问题请提交 Issue
  2. 功能建议: 提出新功能想法
  3. 代码贡献: 提交 Pull Request
  4. 文档完善: 改进文档内容

📄 许可证

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

📞 联系我们

🙏 致谢

感谢以下开源项目的支持:


⭐ 如果这个项目对您有帮助,请给我们一个 Star!

About

✨从原材料到餐桌,全程可信可溯一个基于Spring Boot + Vue3 + 微信小程序 的预制菜全链路溯源与电商一体化平台 🔍 扫码溯源 🏭 智能生产管理 🛒 一体化商城 📱 多端覆盖 🔐 企业级权限

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published