基于Java的水果网上订购平台

项目简介

本项目是一个基于Java开发的助农型水果网上订购平台,采用前后端分离架构,平台包含用户端和管理端两个子系统,实现了从商品展示、购物下单到订单管理、用户管理的完整电商业务流程。可用于学生课设、毕设、学习交流使用。

核心功能介绍

用户端功能

  • 用户注册登录:支持用户注册、登录和密码修改
  • 商品浏览与搜索:支持商品列表展示、分类筛选和关键词搜索
  • 商品详情查看:展示商品详细信息、价格、库存、产地等信息
  • 购物车管理:支持添加商品到购物车、修改数量、删除商品
  • 订单管理:支持提交订单、支付订单、查看订单详情、取消订单、确认收货
  • 收货地址管理:支持添加、编辑、删除收货地址,设置默认地址
  • 个人信息管理:支持修改个人资料、头像、联系方式
  • 商品评价:支持对已购买商品进行评分和评价

管理端功能

  • 管理员登录:支持管理员身份认证和登录
  • 分类管理:支持水果分类的增删改查操作
  • 商品管理:支持商品的增删改查、上下架、库存管理
  • 订单管理:支持查看订单列表、订单详情、更新订单状态、发货操作
  • 用户管理:支持查看用户列表、禁用/启用用户账号
  • 数据统计:支持查看平台运营数据(待完善)

技术栈介绍

后端技术

  • 后端框架:Spring Boot 2.3.12
  • 数据库:MySQL 8.0
  • ORM框架:MyBatis 2.1.4
  • 数据库连接池:Druid 1.2.8
  • 身份认证:JWT (JSON Web Token)
  • 构建工具:Maven 3.6.3
  • Java版本:JDK 1.8

前端技术

  • 前端框架:Vue 2.6.14
  • UI组件库:Element UI 2.15.9
  • HTTP客户端:Axios 0.27.2
  • 状态管理:Vuex 3.6.2
  • 路由管理:Vue Router 3.5.1
  • 构建工具:Vue CLI 5.0.0

系统界面展示

项目结构

复制代码
code/
├── backend/                    # 后端Spring Boot项目
│   ├── src/
│   │   └── main/
│   │       ├── java/
│   │       │   └── com/fruit/
│   │       │       ├── controller/        # 控制器层
│   │       │       │   ├── admin/         # 管理端控制器
│   │       │       │   └── user/          # 用户端控制器
│   │       │       ├── service/           # 服务层
│   │       │       │   └── impl/          # 服务实现类
│   │       │       ├── mapper/            # 数据访问层
│   │       │       ├── entity/            # 实体类
│   │       │       ├── dto/               # 数据传输对象
│   │       │       ├── vo/                # 视图对象
│   │       │       ├── config/             # 配置类
│   │       │       ├── common/             # 公共类
│   │       │       └── utils/             # 工具类
│   │       └── resources/
│   │           ├── mapper/                # MyBatis XML映射文件
│   │           ├── application.yml         # 应用配置文件
│   │           └── application-dev.yml    # 开发环境配置
│   ├── pom.xml                             # Maven依赖配置
│   └── uploads/                            # 文件上传目录
├── frontend-user/            # 用户端Vue项目
│   ├── public/
│   │   └── index.html       # HTML模板
│   ├── src/
│   │   ├── views/            # 页面组件
│   │   │   ├── Home.vue      # 首页
│   │   │   ├── Login.vue     # 登录页
│   │   │   ├── Register.vue  # 注册页
│   │   │   ├── ProductList.vue    # 商品列表
│   │   │   ├── ProductDetail.vue  # 商品详情
│   │   │   ├── Cart.vue          # 购物车
│   │   │   ├── OrderList.vue     # 订单列表
│   │   │   ├── OrderDetail.vue   # 订单详情
│   │   │   ├── Address.vue       # 地址管理
│   │   │   └── UserCenter.vue    # 个人中心
│   │   ├── router/           # 路由配置
│   │   ├── store/            # Vuex状态管理
│   │   ├── utils/            # 工具函数
│   │   ├── App.vue           # 根组件
│   │   └── main.js           # 入口文件
│   ├── package.json          # 依赖配置
│   └── vue.config.js         # Vue配置
├── frontend-admin/           # 管理端Vue项目
│   ├── public/
│   │   └── index.html
│   ├── src/
│   │   ├── views/            # 页面组件
│   │   │   ├── Login.vue     # 登录页
│   │   │   ├── Dashboard.vue # 首页概览
│   │   │   ├── Category.vue  # 分类管理
│   │   │   ├── Product.vue   # 商品管理
│   │   │   ├── Order.vue     # 订单管理
│   │   │   └── User.vue      # 用户管理
│   │   ├── router/           # 路由配置
│   │   ├── store/            # Vuex状态管理
│   │   ├── utils/            # 工具函数
│   │   ├── App.vue
│   │   └── main.js
│   ├── package.json
│   └── vue.config.js
└── database/
    └── fruit_order.sql       # 数据库初始化脚本

数据库设计

  • 用户表(user):存储用户基本信息,包括用户名、密码、昵称、联系方式等
  • 管理员表(admin):存储管理员账号信息
  • 分类表(category):存储水果分类信息,用于商品分类管理
  • 商品表(product):存储商品详细信息,包括名称、价格、库存、图片等
  • 购物车表(cart):存储用户购物车中的商品信息
  • 收货地址表(address):存储用户的收货地址信息
  • 订单表(orders):存储订单基本信息,包括订单号、金额、状态等
  • 订单项表(order_item):存储订单中的商品明细信息
  • 评价表(review):存储用户对商品的评价信息

系统运行流程

用户购物流程

用户首先注册账号并登录系统,登录后可以浏览商品列表,通过分类筛选或关键词搜索找到心仪的水果商品,查看商品详情了解价格、库存、产地等信息,将商品添加到购物车并调整数量,选择收货地址后提交订单,完成支付操作,等待商家发货,收到商品后确认收货,最后可以对商品进行评价。

订单处理流程

用户提交订单后订单状态为待付款,用户完成支付后订单状态更新为待发货,管理员登录管理端查看订单列表,选择待发货订单进行发货操作,订单状态更新为待收货,用户收到商品后确认收货,订单状态更新为已完成,用户可以对订单中的商品进行评价。

管理员管理流程

管理员登录管理端系统,可以管理商品分类(添加、编辑、删除分类),管理商品信息(添加商品、编辑商品信息、上下架商品、管理库存),查看和处理订单(查看订单列表、订单详情、更新订单状态、发货),管理用户账号(查看用户列表、禁用或启用用户账号)。

系统启动流程

首先启动MySQL数据库服务,导入数据库初始化脚本创建数据库和表结构,配置后端数据库连接信息,启动后端Spring Boot服务(默认端口8080),启动用户端前端服务(默认端口8081),启动管理端前端服务(默认端口8082),通过浏览器访问用户端和管理端进行系统使用。

快速开始

环境要求

  • JDK 1.8+
  • Maven 3.6+
  • MySQL 8.0+
  • Node.js 14+
  • npm 6+

数据库配置

  1. 创建数据库并导入初始化脚本:

    mysql -u root -p < database/fruit_order.sql

  2. 修改后端配置文件 backend/src/main/resources/application-dev.yml 中的数据库连接信息

启动后端服务

复制代码
cd backend
mvn clean install
mvn spring-boot:run

后端服务将在 http://localhost:8080 启动

启动用户端前端

复制代码
cd frontend-user
npm install
npm run serve

用户端将在 http://localhost:8081 启动

启动管理端前端

复制代码
cd frontend-admin
npm install
npm run serve

管理端将在 http://localhost:8082 启动

注意事项

  1. 请确保MySQL服务已启动
  2. 请确保端口8080、8081、8082未被占用
  3. 首次运行需要执行数据库初始化脚本
  4. 商品图片使用的是占位图片链接,实际使用时需要替换为真实图片
  5. 支付功能为模拟支付,未集成真实支付接口
相关推荐
小北方城市网2 小时前
SpringBoot 集成 MyBatis-Plus 实战(高效 CRUD 与复杂查询):简化数据库操作
java·数据库·人工智能·spring boot·后端·安全·mybatis
小白不会Coding2 小时前
一文详解JVM中类的生命周期
java·jvm·类的生命周期
醇氧2 小时前
java.lang.NumberFormatException: For input string: ““
java·开发语言·spring
sww_10262 小时前
智能问数系统(一):高质量的Text-to-SQL
java·人工智能·ai编程
win x2 小时前
文件操作与io总结
java
洛豳枭薰2 小时前
jvm运行时数据区& Java 内存模型
java·开发语言·jvm
liux35282 小时前
从零开始学MySQL:入门基础篇(一)
数据库·mysql·oracle
这儿有个昵称2 小时前
互联网大厂Java面试场景:从Spring Boot到微服务架构
java·spring boot·消息队列·微服务架构·大厂面试·数据库优化
填满你的记忆3 小时前
【从零开始——Redis 进化日志|Day5】分布式锁演进史:从 SETNX 到 Redisson 的完美蜕变
java·数据库·redis·分布式·缓存