多角色电子商务平台(管理员、用户、骑手)
⚙️ 技术栈
- 后端:larvel 11(PHP 8+)
- 数据库:MySQL(本地)
- 前端:Next.js/Nuxt.js
- 存储:本地(/存储/应用程序/公共/上传)
- 认证:Laravel Sanctum/JWT
- API类型:REST(JSON)
- 托管:共享虚拟主机(cPanel)
- 前端-后端通信:Axios/Refetch(基于JSON的API)
👥 角色
- 管理员 –完全控制
- 用户 –可以订购、查看、管理个人资料
- 骑手 –管理交付
基于角色的重定向
登录后,根据角色重定向:
/admin/dashboard/user/dashboard/rider/dashboard
🧠 DFD(数据流图)
级别0:上下文关系图
演员:管理员、用户、骑手
系统:电子商务平台
外部实体:数据库(MySQL),本地存储(图像/视频)
数据流:
- User → 产品搜索、下单→ 系统
- 管理员→ 产品、订单、用户管理→ 系统
- 骑手→ 交付更新→ 系统
- 系统↔ 数据库↔ 存储
第一级:主要流程
用户模块
- 注册/登录
- 浏览产品
- 加入购物车/结账
- 跟踪订单
- 管理个人资料
管理员功能模块
- 管理用户、乘客
- 管理类别和产品
- 分配订单
- 查看报告
骑手模块
- 查看已分配的订单
- 更新交付状态
- 查看收益
共同事务
- 身份验证(登录/注册)
- 文件上传(图像/视频)
- 通知
🗄️ 实体关系图(ER模型)
主要实体:
用户
- id(PK)
- 名字
- 电子邮件
- 密码
- 电话
- 角色(管理员、用户、骑手)
- 状态(活动、阻止)
- 个人资料图片
- created_at
- updated_at
分类
- id(PK)
- 名字
- parent_id(可以为空)
- 蛞蝓
- 状态
- created_at
- updated_at
产品
- id(PK)
- category_id(FK→ 类别.id)
- 名字
- 蛞蝓
- 描述
- 价格
- discount_price(可以为空)
- 股票
- 库存量单位
- 图像(主图像)
- 视频(可空)
- 状态(活动、非活动)
- created_at
- updated_at
产品图片
- id(PK)
- product_id(FK→ products.id)
- 文件路径
订单
- id(PK)
- user_id(FK→ users.id)
- rider_id(FK→ users.id)
- 订单编号
- 总计_数量
- payment_method(cod,在线)
- payment_status(待定、已支付、失败)
- delivery_status(待定、处理中、途中、已交付、已取消)
- 地址
- created_at
- updated_at
订单项目
- id(PK)
- order_id(FK→ orders.id)
- product_id(FK→ products.id)
- 数量
- 价格
乘客_配送
- id(PK)
- rider_id(FK→ users.id)
- order_id(FK→ orders.id)
- 状态(已分配、已拣选、正在运输、已交付)
- updated_at
横幅
- id(PK)
- 标题
- 图像
- link_url(可以为空)
- 状态
- created_at
- updated_at
地址
- id(PK)
- user_id(FK→ users.id)
- 地址线
- 城市
- 邮政编码
- 电话
- is_default(bool)
- created_at
- updated_at
支付
- id(PK)
- order_id(FK→ orders.id)
- 数量
- transaction_id
- 方法
- 状态
- created_at
🔗 关系摘要
| 实体 | 关系 |
|---|---|
| 用户→ 订单 | 1:很多 |
| 用户→ 地址 | 1:很多 |
| 类别→ 产品 | 1:很多 |
| 产品→ order_items | 1:很多 |
| 订单→ order_items | 1:很多 |
| 订单→ 乘客_配送 | 1:1 |
| 订单→ 付款 | 1:1 |
| 骑手→ 乘客_配送 | 1:很多 |
🧩 后端功能模块
身份验证模块
- 注册、登录、注销
- 基于角色的访问控制(中间件)
- 令牌管理
用户模块
- 配置文件查看/编辑
- 地址管理
- 订单管理
- 查看历史
管理员功能模块
- 管理用户/乘客
- 管理类别/产品
- 为订单分配骑手
- 查看报告
骑手模块
- 已分配订单
- 状态更新
- 交货历史
产品模块
- CRUD产品
- 上传图片/视频
- 搜索/筛选产品
订单模块
- 创建订单
- 轨道状态
- 管理员分配
支付模块
- 处理COD和在线交易
- 更新订单付款状态
横幅模块
- 主页横幅
- 管理员CRUD
🧠 API路线概述
认证
POST /api/register
POST /api/login
POST /api/logout
GET /api/user管理员
GET /api/admin/dashboard
GET /api/admin/users
PATCH /api/admin/user/{id}
DELETE /api/admin/user/{id}
GET /api/admin/orders
PATCH /api/admin/order/{id}/status
POST /api/admin/product
PUT /api/admin/product/{id}
DELETE /api/admin/product/{id}
GET /api/admin/reports/sales
POST /api/admin/banner用户
GET /api/products
GET /api/products/{id}
GET /api/categories
POST /api/cart
GET /api/cart
POST /api/order
GET /api/user/orders
GET /api/user/profile
PUT /api/user/profile骑手
GET /api/rider/orders
PATCH /api/rider/order/{id}/status
GET /api/rider/history
GET /api/rider/profile
PUT /api/rider/profile🖥️ 前端页面(Next.js/Nuxt.js)
公众:
/→ 首页/login/register/products/product/[id]/cart/checkout
用户:
/user/dashboard/user/orders/user/profile/user/address
管理员:
/admin/dashboard/admin/users/admin/products/admin/orders/admin/reports/admin/banners
骑手:
/rider/dashboard/rider/orders/rider/history/rider/profile
📦 存储
本地存储的所有图像/视频:
/storage/app/public/uploads/
仅MySQL中保存的文件路径。
🧭 工作流摘要
- 用户/管理员/骑手→ 登录→ 生成令牌
- 基于角色→ 重定向到特定仪表板
- 通过REST API的所有请求
- MySQL处理所有持久数据
- 媒体的本地存储
- 管理员完全控制产品、用户、订单管理
- 安全的基于角色的访问中间件
还可以使用api密钥保护它,流将是,所有都应该加密更高的安全性
#使用测试脚本mcp进行测试
📋 项目状态和缺少的功能
✅ 目前实施:
- 基本身份验证(登录/注册)
- 基于角色系统的用户模型
- 产品列表页面
- API基本结构
- 角色中间件
- 所有实体的数据库迁移
❌ 缺少的功能:
- 前端页面:仅存在3个页面(登录、注册、产品)-缺少12+个页面
- API终点:README中的大多数端点都没有实现
- 管理员/骑手/用户仪表板
- 订单管理系统
- 购物车功能
- 支付处理
- 文件上传处理
- API安全增强
- 数据库种子和工厂
- 前端路由和导航
- 国家管理
- 表单验证
- 错误处理
- 响应式设计
🚧 不完整:
- 产品型号缺少某些字段(折扣_价格、视频、状态)
- 缺少控制器实现
- 缺少API路由实现
- 无前端布局/导航
- 无仪表板页面
我已经分析了您的电子商务平台,并确定了当前的状态:
✅ __完整的:__
- 产品模型增强,缺少字段(discount_price、视频、状态、slug)
- 已创建产品映像模型
- API基本结构存在
- 使用基于角色的重定向进行身份验证
⚠️ __发现的关键问题:__
- 仅存在3个前端页面(登录、注册、产品)
- 大多数API端点未实现
- 无响应式布局
- 缺少购物车/订单功能
- 控制器不完整
