夜市地摊管理系统 (Night Market)
一个面向夜市地摊场景的多角色管理系统,包含消费者下单、商家经营、平台管理三条业务线,支持摊位租赁、商品管理、订单流转、提现审核、数据统计等完整闭环功能。
目录
- 系统功能
- 技术栈
- 目录结构
- 环境要求
- 快速启动
- 演示账号
- 页面说明与截图
- 数据库说明
系统功能
系统包含 普通用户(USER)/ 商家(MERCHANT)/ 管理员(ADMIN) 三种角色,登录后进入各自独立的工作台。
用户端(逛夜市)
| 夜市逛吃 | 按分类浏览/搜索摊位商品,按销量排序 |
| 商品详情 | 查看商品图、价格、库存、销量,选择数量加入购物车 |
| 购物车 | 增减数量、删除商品、结算下单 |
| 我的订单 | 查看全部订单与各状态,支持取消订单(申请取消)、确认收货 |
| 订单详情 | 查看取货码、订单明细、金额拆分(平台抽成/商家实得) |
| 个人中心 | 编辑昵称/手机号、修改密码、商家入驻引导、退出登录 |
商家端(摆摊经营)
| 经营看板 | 今日/近7日营业额、订单数、待办提醒、商品销量排行 |
| 商品管理 | 上架/下架/编辑/删除商品,维护价格、库存、封面 |
| 订单管理 | 接单、备货、完成、拒绝、处理取消申请(同意/拒绝) |
| 摊位租赁 | 浏览空闲摊位、租摊位、续租 |
| 我的钱包 | 查看余额、申请提现、提现记录(审核中/成功/驳回) |
| 商家资料 | 修改店铺名称、登录密码 |
管理端(平台运营)
| 数据概览 | 平台营业额、订单量、商家/用户规模、7日趋势图 |
| 用户管理 | 查看/禁用用户 |
| 商家管理 | 查看商家信息、审核状态、调整余额、禁用商家 |
| 摊位管理 | 维护摊位、租金、状态(空闲/已出租/停用) |
| 商品监管 | 全局商品列表,可强制下架违规商品 |
| 订单管理 | 查看平台全部订单 |
| 提现审核 | 通过/驳回商家提现申请,余额联动 |
| 系统配置 | 平台抽成比例、新商家初始余额、租赁月数 |
| 统计分析 | 销售额/订单趋势、分类占比、商家排行等图表 |
技术栈
| 前端 | Vue 3 + Vite 5 + Element Plus + Pinia + Vue Router + ECharts + Axios |
| 后端 | Java 8 + Spring Boot 2.7 + MyBatis-Plus 3.5 + Spring Security (BCrypt) |
| 认证 | JWT(jjwt 0.9.1,24h 有效期),登录态存 localStorage |
| 数据库 | MySQL 8.0(utf8mb4),逻辑删除(deleted 字段) |
| 构建 | Maven(后端)、npm(前端) |
目录结构
E:\\project\\009
├── backend # Spring Boot 后端
│ ├── src/main/java/com/nightmarket
│ │ ├── config # WebConfig / DataInitRunner / JWT 等
│ │ ├── controller # Auth/User/Merchant/Admin/Order/Cart/Public/Upload
│ │ ├── entity / mapper / service
│ │ ├── interceptor # JWT 认证拦截器
│ │ └── util
│ ├── src/main/resources
│ │ ├── application.yml # 端口/数据库/抽成等配置
│ │ └── sql
│ │ ├── init.sql # 建库建表 + 基础数据
│ │ └── demo-data.sql # 演示数据(账号/商品/订单/提现)
│ ├── uploads/seed/ # 商品演示图片(静态资源 /uploads/**)
│ └── pom.xml
└── frontend # Vue3 前端
├── src
│ ├── views/user|merchant|admin|login # 各角色页面
│ ├── layouts # 三套布局(用户/商家/管理端)
│ ├── router / stores / api / utils / components
├── vite.config.js # 端口 5173,代理 /api -> 8080
└── package.json
环境要求
- JDK 1.8+
- Maven 3.6+
- Node.js 16+(含 npm)
- MySQL 8.0(本地 3306,账号 root/123456)
快速启动
1. 初始化数据库
mysql -uroot -p123456 < backend/src/main/resources/sql/init.sql
mysql -uroot -p123456 < backend/src/main/resources/sql/demo-data.sql # 可选:更丰富的演示数据
后端首次启动时 DataInitRunner 也会自动创建基础演示数据(账号 + 10 个商品),演示图片已随仓库放在 backend/uploads/seed/。
2. 启动后端
cd backend
mvn package -DskipTests # 打包(产物 target/night-market-new.jar)
java -jar target/night-market-new.jar
注意:upload-dir: uploads/ 为相对路径,必须在 backend 目录下启动,否则商品图片无法访问。后端默认端口 8080,接口前缀 /api。
3. 启动前端
cd frontend
npm install
npm run dev
浏览器访问 http://localhost:5173(开发服务器代理 /api 到 http://localhost:8080)。
演示账号
所有演示账号密码均为 123456
| 管理员 | admin | 平台运营,管理端全部功能 |
| 商家 | merchant1 | 老王烧烤店(A-01 摊位) |
| 商家 | merchant2 | 香姐麻辣烫(B-02 摊位) |
| 商家 | merchant3 | 阿明水果屋(C-02 摊位) |
| 用户 | user1 | 夜市常客 |
| 用户 | user2 | 夜市老饕 |
| 用户 | user3 | 逛吃小能手 |
提现审核、商家禁用、余额调整等功能建议使用 admin 登录操作。
页面说明与截图
一、通用
1. 登录页
登录、记住会话、跳转注册。按角色自动路由到对应工作台。

2. 注册页
注册普通用户,或选择"我是摊主"进行商家入驻。

二、用户端
3. 夜市逛吃(商品列表)
顶部分类栏 + 商品卡片网格,展示封面、价格、销量,点击进入详情。

4. 商品详情
大图、价格库存、数量选择、加入购物车。

5. 购物车
商品明细、数量调整、合计金额、结算下单。

6. 我的订单
订单列表(全部/待支付/待接单/备货中/待取货/已完成/已取消),支持取消与确认收货。

7. 订单详情
取货码、商品明细、金额拆分(平台抽成、商家实得)。

8. 个人中心
头像昵称、菜单入口:我的订单 / 编辑个人信息 / 修改密码 / 商家入驻。

三、商家端
9. 经营看板
营收与订单概览、近7日趋势、商品销量排行。

10. 商品管理
商品列表、上下架、新增/编辑(名称、分类、价格、库存、封面、描述)。

11. 订单管理
各状态订单处理:接单、备货、完成、拒绝、同意/拒绝取消申请。

12. 摊位租赁
空闲摊位列表、租赁/续租操作。

13. 我的钱包
余额展示、申请提现(金额校验)、提现记录(状态标签)。

14. 商家资料
店铺名称修改、登录密码修改。

四、管理端
15. 数据概览
平台级指标卡片 + 近7日订单/销售额趋势图。

16. 用户管理
用户列表、禁用/启用。

17. 商家管理
商家列表、调整余额、禁用/启用。

18. 摊位管理
摊位 CRUD、租金与状态维护。

19. 商品监管
全局商品列表,强制下架违规商品。

20. 订单管理(平台)
全部订单列表与状态筛选。

21. 提现审核
商家提现申请,通过/驳回。

22. 系统配置
平台抽成比例、新商家初始余额、租赁月数。

23. 统计分析
订单/销售额趋势、分类占比饼图、商家/商品排行。

数据库说明
| users | 用户(ADMIN/USER/MERCHANT) |
| merchants | 商家(余额、关联摊位) |
| stalls | 摊位(租金、状态) |
| stall_rentals | 摊位租赁记录 |
| categories | 商品分类 |
| products | 商品(封面、价格、库存、销量) |
| carts | 购物车 |
| orders | 订单(状态机:待支付→待接单→备货中→待取货→已完成;取消申请) |
| order_items | 订单明细 |
| withdrawals | 提现记录(审核中/成功/驳回) |
| configs | 系统配置(抽成比例等) |
订单金额规则:commission_amount = total × rate%,merchant_amount = total − commission_amount,平台抽成默认 10%。





