# syrj_system
**Repository Path**: yunxiplus/syrj_system
## Basic Information
- **Project Name**: syrj_system
- **Description**: 食遇日记-遇见最好的美食
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-03
- **Last Updated**: 2026-09-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 食遇日记





**面向餐饮连锁/加盟场景的智慧点餐 + 外卖配送 + 分销裂变平台**
基于 [Mars Admin](https://gitee.com/Marsfactory/mars-admin) 企业级后台框架构建
[详细设计文档](docs/食遇日记系统详细设计文档.md) · [小程序开发文档](docs/食遇日记系小程序文档%20.md)
---
## 项目简介
食遇日记(`syrj_system`)是一套覆盖 **平台管理、区域总代、商户经营、用户消费、骑手配送** 的全链路餐饮 SaaS 系统,支持堂食点餐、外卖配送、商城购物、会员营销、财务结算等核心业务。
| 端 | 技术栈 | 角色 |
|---|---|---|
| Web 管理后台 | Vue 3 + Vite + Naive UI(`mars-ui`) | 平台管理员、区域总代、商户后台 |
| 微信小程序 · 用户端 | uni-app + uView Plus(`syrj-uniapp` 主包) | 普通消费者 |
| 微信小程序 · 商户端 | uni-app 分包 `pages-merchant` | 门店经营者 |
| 微信小程序 · 骑手端 | uni-app 分包 `pages-rider` | 配送人员 |
| 后端服务 | Spring Boot 多模块(`mars-admin-api` / `mars-app-api` / `mars-biz`) | API 提供方 |
## 技术架构
```
┌─────────────────────────────────────────────────────────────┐
│ mars-ui (Web Admin) │ syrj-uniapp (用户/商户/骑手) │
└───────────┬───────────┴──────────────────┬──────────────────┘
│ /api 反向代理 │
┌───────────▼──────────────────────────────▼──────────────────┐
│ mars-admin-api mars-app-api │
│ (管理端 /syrj/**) (小程序 /app/**) │
└───────────┬──────────────────────────────┬──────────────────┘
│ │
┌───────────▼──────────────────────────────▼──────────────────┐
│ mars-biz (业务 Service) · mars-common · mars-infra │
│ mars-system / mars-auth / mars-file / mars-message / ... │
└───────────┬─────────────────────────────────────────────────┘
│
┌───────────▼─────────────────────────────────────────────────┐
│ syrj_system 数据库 │
│ mars-system.sql(系统表) + syrj.sql(业务表 + 种子数据) │
└─────────────────────────────────────────────────────────────┘
```
## 技术栈
### 后端
| 技术 | 版本 | 说明 |
|------|------|------|
| Spring Boot | 3.2.2 | 基础框架 |
| MyBatis-Plus | 3.5.5 | ORM 框架 |
| Sa-Token | 1.37.0 | 权限认证框架 |
| Redis | 7.0+ | 缓存/会话存储 |
| MySQL | 8.0+ | 数据库 |
| Druid | 1.2.23 | 数据库连接池 |
| Quartz | 2.3.2 | 定时任务框架 |
| Hutool | 5.8.25 | Java 工具类库 |
### 前端(PC 管理后台)
| 技术 | 版本 | 说明 |
|------|------|------|
| Vue | 3.4.15 | 前端框架 |
| Vite | 5.0.11 | 构建工具 |
| TypeScript | 5.3.3 | 类型安全 |
| Naive UI | 2.37.3 | UI 组件库 |
| Pinia | 2.1.7 | 状态管理 |
| ECharts | 6.0.0 | 图表库 |
### 移动端(微信小程序)
| 技术 | 版本 | 说明 |
|------|------|------|
| UniApp | - | 跨平台框架 |
| uView Plus | 3.3.36 | UI 组件库 |
| crypto-js | 4.2.0 | 接口加解密 |
## 项目结构
```
syrj_system
├── mars-common # 公共基础模块(实体、异常、响应封装、工具类)
├── mars-infra # 基础设施层
│ ├── mars-db / mars-redis / mars-oss / mars-sms / mars-pay
│ ├── mars-push / mars-social / mars-wechat / mars-websocket
│ ├── mars-crypto / mars-mail
│ └── ...
├── mars-core # 业务核心层
│ ├── mars-biz # 食遇日记业务模块(订单、菜品、会员、配送等)
│ ├── mars-system # 系统管理(用户、角色、菜单、字典等)
│ ├── mars-auth # 认证授权(多策略登录)
│ ├── mars-file # 文件管理
│ ├── mars-gen # 代码生成
│ └── mars-message # 消息中心
├── mars-api # 接口层
│ ├── mars-admin-api # 管理端接口(/syrj/** 业务 + 系统管理)
│ ├── mars-app-api # 小程序接口(/app/**)
│ └── mars-web-api # 网页端接口
├── mars-job # 定时任务模块
├── mars-starter # 启动入口(application-dev.yml)
├── mars-ui # Web 管理后台
│ └── src/views/syrj/ # 食遇日记业务页面(50+ 页面)
├── syrj-uniapp # 微信小程序(三端一体)
│ ├── pages/ # 用户端主包(门店、点餐、订单、会员、商城等)
│ ├── pages-merchant/ # 商户端分包(工作台、订单、商品、采购)
│ └── pages-rider/ # 骑手端分包(接单、配送、收入)
├── sql
│ ├── mars-system.sql # Mars Admin 系统表 + 初始数据
│ └── syrj.sql # 食遇日记业务表 + 菜单权限 + 测试种子数据
├── docs/ # 产品设计文档、详细设计、原型
└── doc/ # API 冒烟测试脚本(smoke-*.js)
```
## 功能模块
### 用户端小程序
- **门店与点餐** — 门店首页、菜单浏览、购物车、堂食/自提/外卖下单
- **订单履约** — 订单列表、详情、支付收银、配送跟踪
- **会员中心** — 会员充值、优惠券、积分商城、收藏、地址管理
- **营销活动** — 排队取号、团购、预定、商城购物
### 商户端小程序
- **经营看板** — 首页数据概览
- **订单管理** — 全部/外卖/自提/堂食订单处理
- **商品与采购** — 商品管理、采购单、售后
### 骑手端小程序
- **配送作业** — 待接单、配送中、收入统计、个人设置
### Web 管理后台
- **平台管理** — 租户、品牌、门店、代理、激活码、数据中心
- **商品与库存** — 菜品分类、菜品、套餐、库存、采购
- **订单与履约** — 订单管理、退款、配送、骑手、KDS 后厨大屏
- **营销与会员** — 优惠券、团购、预定、积分商品、充值规则、会员计划
- **商城** — 商城分类、商品、满减活动
- **财务** — 门店账单、提现审核、收银台
- **门店运营** — 台桌、打印机、Banner、装修、排队
### 基础能力(Mars Admin 基座)
- RBAC 权限管理、多租户隔离、操作/登录日志
- 多种登录方式(密码/短信/社交/小程序)、接口 RSA 加密
- 文件存储策略(本地/MinIO/阿里云 OSS)、短信/支付/推送策略工厂
- 系统监控、定时任务、代码生成器、即时通讯
## 快速开始
### 环境准备
- JDK 17+
- Maven 3.8+
- MySQL 8.0+
- Redis 7.0+
- Node.js 18+
- HBuilderX(小程序开发,可选)
### 1. 克隆项目
```bash
git clone https://gitee.com/yunxiplus/syrj_system.git
cd syrj_system
```
### 2. 初始化数据库
```sql
CREATE DATABASE syrj_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
```
```bash
# 先导入系统表,再导入业务表与种子数据
mysql -u root -p syrj_system < sql/mars-system.sql
mysql -u root -p syrj_system < sql/syrj.sql
```
### 3. 修改配置
编辑 `mars-starter/src/main/resources/application-dev.yml`,配置数据库与 Redis:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/syrj_system?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: your_password
data:
redis:
host: localhost
port: 6379
password:
database: 6
```
### 4. 启动后端
```bash
mvn clean install -DskipTests
cd mars-starter
mvn spring-boot:run
```
后端默认运行在 `http://localhost:8080`
### 5. 启动前端
```bash
cd mars-ui
npm install
npm run dev
```
前端默认运行在 `http://localhost:3000`,通过 Vite 代理转发 `/api` 到后端。
### 6. 启动小程序
使用 HBuilderX 打开 `syrj-uniapp` 目录,配置小程序 AppID 后运行到微信开发者工具。
> 小程序 API 封装见 `syrj-uniapp/utils/syrj-api.js`,统一导航见 `utils/nav.js`。
### 默认账号
| 账号 | 密码 | 说明 |
|------|------|------|
| admin | admin123 | 超级管理员(`mars-system.sql` 种子数据) |
## 冒烟测试
`doc/` 目录提供按里程碑划分的 API 冒烟脚本,可用于联调验证:
```bash
# 示例:用户端门店首页
node doc/smoke-p01-store.js
# 示例:管理端 M7 验收
node doc/smoke-m7-step1.js
```
公共请求库见 `doc/smoke-lib.js`(含 AES 解密与登录逻辑)。
## 开发指南
### 文档索引
| 文档 | 说明 |
|------|------|
| [食遇日记系统详细设计文档](docs/食遇日记系统详细设计文档.md) | 架构、接口契约、里程碑进度 |
| [食遇日记小程序文档](docs/食遇日记系小程序文档%20.md) | 小程序信息架构、导航规范 |
| [食遇日记功能点](docs/食遇日记功能点.html) | 全端功能清单 |
| [食遇日记原型设计](docs/食遇日记系统原型设计.html) | UI 原型与交互基准 |
| `.agents/skills/` | 后端、前端、MySQL、UniApp 开发规范 |
### 新增业务模块(推荐流程)
1. 在 `mars-core/mars-biz` 下创建 entity / mapper / service
2. 在 `mars-api/mars-admin-api/controller/syrj` 或 `mars-app-api/controller` 下创建 Controller
3. 在 `mars-ui/src/views/syrj` 或 `syrj-uniapp/pages` 下实现前端页面
4. 在 `sql/syrj.sql` 中维护表结构与菜单权限
5. 编写 `doc/smoke-*.js` 冒烟脚本验证闭环
### 权限控制
```java
@SaCheckPermission("syrj:order:list")
@GetMapping("/list")
public Result> list(OrderQuery query) {
// ...
}
```
### 操作日志
```java
@Log(title = "订单管理", businessType = BusinessType.UPDATE)
@PutMapping("/{id}")
public Result update(@PathVariable Long id, @RequestBody OrderDTO dto) {
// ...
}
```
## 里程碑进度
| 里程碑 | 名称 | 状态 |
|--------|------|------|
| M1 | 基础底座与认证 | ✅ 已验收 |
| M2 | 用户端门店首页 & 点餐闭环 | ✅ 已验收 |
| M3 | 订单履约 & 商户移动端 | ✅ 已验收 |
| M4 | 外卖配送 & 骑手端 | ✅ 已验收 |
| M5 | 排队/团购/预定/会员营销 | ✅ 已验收 |
| M6 | 商城 & 购物车 | ✅ 已验收 |
| M7 | 平台管理端 & 区域总代 | ✅ 已验收 |
| M8 | 后厨大屏 & 收银台 & 财务提现 | ✅ 已验收 |
## 开源协议
本项目基于 [MIT License](LICENSE) 开源。底层框架 [Mars Admin](https://gitee.com/Marsfactory/mars-admin) 同样采用 MIT 协议。
---
**食遇日记 — 让每一餐都有温度**