# software_practice_complex **Repository Path**: xenogene/software_practice_complex ## Basic Information - **Project Name**: software_practice_complex - **Description**: 饿了没是基于上学期前端开发继续的,API整合的版本,前端进行了一次优化,支持滚动横幅,滚动搜索框,超级会员,实现用户充血模型,钱包,积分,等级,预付,优惠券,等级优惠等功能,以及做了一部分外观美化,使用Material Design图标。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2026-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 饿了没 - 全端外卖平台 V1.3 (集成钱包&积分系统) ## 简介 ![项目预览](./img/readmeimg2.png) ![项目预览](./img/readmeimg1.png) **饿了没** 是一个完整的外卖平台解决方案,包含用户端、商家端、骑手端和管理员端四个独立系统,支持完整的订单流程、积分体系、优惠券系统和等级折扣等功能。 ### 平台特色 - **三端一体**:用户端、商家端、管理员端完整集成 - **完整支付**:支付宝、微信、钱包支付 - **积分系统**:积分商店、优惠券兑换、自动创建优惠券 - **等级体系**:用户等级、等级折扣、经验值系统 - **商家管理**:菜品管理、订单管理、店铺信息管理 - **骑手管理**:接单,送单,骑手钱包和提现 - **平台管理**:商户管理、用户管理、优惠券管理、等级管理 --- ## 结构 ``` 饿了没平台/ ├── elmclient/ # 用户端前端 (Vue 3) ├── elmboot/ # 用户端总后端 (Spring Boot) ├── elmbusiness/ # 商家端前端 (Vue 3) ├── elmadministrator/ # 管理员端前端 (Vue 3) ├── elmdeliver/ # 骑手端前端 (Vue 3) ``` --- ### 前置要求 - Node.js 12+ - Java 1.8+ - MySQL 8.0+ - Maven 3.6+ ### 手动启动 #### 启动数据库 net start mysql80 #### 启动后端服务 ```bash # 总后端 (8888) cd elmboot mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dfile.encoding=UTF-8" #### 启动前端服务 ```bash # 用户端 (8080) cd elmclient npm install npm run serve # 商家端 (8081) cd elmbusiness npm install npm run serve # 管理员端 (8082) cd elmadministrator npm install npm run serve # 骑手端 (8083) cd elmdeliver npm install npm run dev ``` --- ## 用户端 (elmclient) ### 访问地址 - **前端**: http://localhost:8080 - **后端**: http://localhost:8888 ### 主要功能 | 功能 | 说明 | |------|------| | **首页浏览** | 浏览商家列表、菜品展示 | | **购物车** | 添加菜品、修改数量、结算 | | **下单支付** | 支付宝、微信、钱包支付 | | **订单管理** | 查看订单、订单追踪、评价 | | **积分商店** | 积分兑换优惠券、会员卡等 | | **优惠券** | 查看可用优惠券、使用优惠券 | | **等级系统** | 查看用户等级、等级折扣 | | **钱包充值** | 在线充值、余额查询 | ### 核心特性 ✅ **积分系统** - 每笔订单获得积分 - 积分可兑换优惠券 - 自动创建优惠券 ✅ **优惠券体系** - 积分兑换优惠券 - 下单时选择使用 - 自动验证和扣减 ✅ **等级折扣** - 用户等级自动计算 - 订单自动应用等级折扣 - 支持与优惠券叠加 ### 演示账号 | 账号 | 密码 | |------|------| | 13832875716 | 123456 | | 13912345678 | 123456 | --- ## 商家端 (elmbusiness) ### 访问地址 - **前端**: http://localhost:8081 ### 主要功能 | 功能 | 说明 | |------|------| | **仪表板** | 今日订单、收入、菜品数、评分 | | **店铺管理** | 编辑店名、地址、起送价、配送费、图标 | | **菜品管理** | 添加、编辑、删除、上架/下架菜品 | | **订单管理** | 查看订单列表、订单详情、订单追踪 | | **数据统计** | 收入统计、订单统计、趋势分析 | ### 核心特性 ✅ **完整店铺管理** - 实时编辑店铺信息 - 灵活调整起送价和配送费 - 上传店铺图标 ✅ **菜品全生命周期** - 快速添加菜品 - 实时编辑菜品信息 - 灵活上架/下架 ✅ **订单实时追踪** - 订单列表展示 - 订单详情查看 - 订单状态管理 ### 演示账号 | 账号 | 密码 | |------|------| | 10001 | 123456 | | 10002 | 123456 | --- ## 管理员端 (elmadministrator) ### 访问地址 - **前端**: http://localhost:8082 ### 主要功能 | 功能 | 说明 | |------|------| | **仪表板** | 商户数、用户数、优惠券数、收入统计 | | **商户管理** | 添加、编辑、删除、启用/禁用商户 | | **用户管理** | 添加、编辑、删除、启用/禁用用户 | | **优惠券管理** | 创建、编辑、启用/禁用优惠券 | | **等级管理** | 调整经验值、折扣比例、折扣金额 | | **数据统计** | 平台收入、订单数、活跃用户、趋势 | ### 核心特性 ✅ **商户全生命周期管理** - 快速添加商户 - 灵活编辑商户信息 - 启用/禁用商户 ✅ **用户管理** - 添加新用户 - 编辑用户信息 - 启用/禁用用户 ✅ **优惠券灵活配置** - 创建新优惠券 - 设置优惠金额 - 设置最低消费 - 设置有效期 ✅ **等级系统配置** - 调整等级所需经验值 - 修改等级折扣比例 - 调整等级折扣金额 - 查看各等级用户数 ### 演示账号 | 账号 | 密码 | |------|------| | admin | 123456 | --- ## 工作流程 ### 用户下单流程 ``` 1. 用户浏览商家和菜品 ↓ 2. 添加菜品到购物车 ↓ 3. 结算订单 ↓ 4. 选择优惠券(可选) ↓ 5. 自动应用等级折扣 ↓ 6. 选择支付方式 ↓ 7. 完成支付 ↓ 8. 获得积分 ↓ 9. 订单完成后可评价 ``` ### 积分兑换流程 ``` 1. 用户进入积分商店 ↓ 2. 选择要兑换的商品 ↓ 3. 确认兑换 ↓ 4. 后端验证积分和库存 ↓ 5. 扣除积分,减少库存 ↓ 6. 自动创建优惠券 ↓ 7. 用户在优惠券页面查看 ``` ### 价格计算流程 ``` 原价 ↓ - 优惠券折扣 ↓ = 优惠券折扣后的价格 ↓ - 等级折扣(基于折扣后的价格) ↓ = 最终支付金额 ``` --- ## 架构 ### 技术栈 | 层级 | 技术 | 版本 | |------|------|------| | **前端框架** | Vue | 3.2.13 | | **路由** | Vue Router | 4.0.3 | | **状态管理** | Vuex | 4.0.0 | | **HTTP** | Axios | 0.27.2 | | **后端框架** | Spring Boot | 2.7.0 | | **ORM** | MyBatis | 2.2.2 | | **数据库** | MySQL | 8.0+ | | **认证** | JWT | 0.11.5 | ### 服务端口 | 服务 | 端口 | 说明 | |------|------|------| | 用户端后端 | 8888 | elmclient-boot | | 商家端后端 | 8889 | elmbusiness-boot | | 管理员端后端 | 8890 | elmadministrator-boot | | 用户端前端 | 8080 | elmclient | | 商家端前端 | 8081 | elmbusiness | | 管理员端前端 | 8082 | elmadministrator | --- ## 认证 ### JWT令牌 - **生成**:登录成功后返回JWT令牌 - **有效期**:24小时 - **使用**:在请求头中添加 `Authorization: Bearer {token}` - **验证**:系统自动验证令牌有效性 ### 密码加密 - **算法**:MD5加密 - **存储**:加密后的密码存储在数据库 - **验证**:登录时比对加密后的密码 --- ## 数据库配置 ### 修改数据库连接 编辑各项目的 `application.yml` 文件: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/elm username: root password: your_password ``` ### 数据库初始化 ```bash # 执行 elm.sql 脚本初始化数据库 mysql -u root -p elm < elm.sql ``` --- ## 核心功能 ### 1. 积分系统 **用户端** - 每笔订单自动获得积分 - 积分 = 订单金额(四舍五入) - 积分可在积分商店兑换商品 **商家端** - 查看积分兑换记录 - 管理积分相关商品 **管理员端** - 查看平台积分统计 - 管理积分商店商品 ### 2. 优惠券系统 **用户端** - 积分兑换优惠券 - 下单时选择使用优惠券 - 自动验证优惠券有效性 - 查看优惠券列表和详情 **管理员端** - 创建新优惠券 - 设置优惠金额、最低消费、有效期 - 启用/禁用优惠券 - 查看优惠券发放和使用统计 ### 3. 等级系统 **用户端** - 自动计算用户等级 - 显示当前等级和下一等级所需经验值 - 订单自动应用等级折扣 - 支持与优惠券叠加 **管理员端** - 查看所有等级配置 - 调整等级所需经验值 - 修改等级折扣比例 - 调整等级折扣金额 - 查看各等级用户数 ### 4. 支付系统 **支持的支付方式** - 支付宝 - 微信支付 - 钱包支付 **支付流程** 1. 选择支付方式 2. 确认订单信息 3. 完成支付 4. 订单状态更新 ---