哈尔滨美食地图
This commit is contained in:
145
后端设计文档.md
Normal file
145
后端设计文档.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# 🥟 哈尔滨美食地图 · 第一阶段
|
||||
|
||||
## **管理后台系统(Admin Panel)详细设计文档**
|
||||
|
||||
> 技术栈:Go (Gin) + PostgreSQL + Vue3 + Element Plus
|
||||
> 目标:为后续 Web 网站和抖音小程序提供数据支撑的**高可用、易维护的管理后台**
|
||||
|
||||
------
|
||||
|
||||
## 一、项目目标
|
||||
|
||||
构建一个**独立的 Web 管理后台**,供运营人员或管理员:
|
||||
|
||||
- 录入/编辑/删除哈尔滨本地美食店铺
|
||||
- 管理分类、招牌菜、用户评论(审核)
|
||||
- 查看数据统计与排行榜预览
|
||||
- 支持图片上传与地理位置标注
|
||||
|
||||
该后台将作为整个美食地图项目的**唯一数据入口**。
|
||||
|
||||
------
|
||||
|
||||
## 二、整体架构
|
||||
|
||||
```
|
||||
┌──────────────────────┐
|
||||
│ Admin Frontend │ ← Vue3 + Element Plus (SPA)
|
||||
└──────────┬───────────┘
|
||||
│ HTTP / JSON
|
||||
┌──────────▼───────────┐
|
||||
│ Go Backend (Gin) │ ← RESTful API + JWT Auth
|
||||
└──────────┬───────────┘
|
||||
│
|
||||
┌──────────▼───────────┐
|
||||
│ Mysql │ ← 存储店铺、分类、评论等
|
||||
└──────────┬───────────┘
|
||||
│
|
||||
┌──────────▼───────────┐
|
||||
│ redis │ ← 缓存
|
||||
└──────────┬───────────┘
|
||||
┌──────────▼───────────┐
|
||||
│ 阿里云 OSS / 本地存储 │ ← 图片文件存储
|
||||
└──────────────────────┘
|
||||
```
|
||||
|
||||
------
|
||||
|
||||
## 三、核心功能模块(管理后台)
|
||||
|
||||
### 1. **管理员登录 / 权限控制**
|
||||
|
||||
- 账号密码登录(支持初始超级管理员)
|
||||
- JWT Token 认证
|
||||
- 后续可扩展角色权限(当前 MVP 只需“管理员”角色)
|
||||
|
||||
### 2. **美食分类管理**
|
||||
|
||||
- 新增/编辑/删除分类(如:东北菜、俄餐、烧烤、小吃)
|
||||
- 分类图标(可选)
|
||||
- 排序权重(用于前端展示顺序)
|
||||
|
||||
### 3. **店铺管理(核心)**
|
||||
|
||||
- 创建新店铺:
|
||||
- 店铺名称(必填)
|
||||
- 所属分类(单选)
|
||||
- 地址(文本 + 自动解析经纬度 via 高德 API)
|
||||
- 手动调整经纬度(地图选点组件)
|
||||
- 营业时间、电话(可选)
|
||||
- 封面图 + 多图上传(最多6张)
|
||||
- 必点招牌菜(可添加多个,带名称+描述+图片)
|
||||
- 编辑/下架/删除店铺
|
||||
- 批量导入(CSV 模板下载 + 上传解析,MVP 可暂缓)
|
||||
|
||||
### 4. **评论管理**
|
||||
|
||||
- 列表展示所有用户评论(含评分、内容、图片)
|
||||
- 支持审核状态:通过 / 屏蔽
|
||||
- 可删除恶意评论
|
||||
- 按店铺筛选
|
||||
|
||||
### 5. **数据概览(Dashboard)**
|
||||
|
||||
- 总店铺数、总评论数、分类分布饼图
|
||||
- 最近7天新增店铺趋势
|
||||
- 高评分店铺 Top5 预览
|
||||
|
||||
### 6. **系统设置(可选)**
|
||||
|
||||
- OSS 配置(AccessKey、Bucket)
|
||||
- 高德地图 Key 配置(用于地址转经纬度)
|
||||
|
||||
------
|
||||
|
||||
## 四、技术选型详情
|
||||
|
||||
| 模块 | 技术 | 说明 |
|
||||
| --------- | ----------------------------------------------- | ----------------------------------------------- |
|
||||
| 后端语言 | Go 1.22+ | 高性能、编译快、并发好 |
|
||||
| Web 框架 | [Gin](https://gin-gonic.com/) | 轻量、路由清晰、中间件丰富 |
|
||||
| 数据库 | mysql:8.0 | 支持 JSON、数组、地理扩展(未来可升级 PostGIS) |
|
||||
| ORM | [GORM](https://gorm.io/) | Go 最流行 ORM,支持关联、事务、软删除 |
|
||||
| 认证 | JWT + Bcrypt | 密码加密 + Token 验证 |
|
||||
| 文件存储 | 阿里云 OSS(生产) / 本地 static/upload(开发) | 图片统一 CDN 加速 |
|
||||
| 前端框架 | Vue 3 + Vite + TypeScript | 响应式、组件化 |
|
||||
| UI 组件库 | [Element Plus](https://element-plus.org/) | 企业级后台 UI,开箱即用 |
|
||||
| 地图组件 | 高德地图 JS API(Web 端选点) | 用于手动标注店铺位置 |
|
||||
| 构建部署 | Docker + Nginx | |
|
||||
|
||||
## 五、设置添加前端调用apikey,做好加密防止别人随意调用接口内容。
|
||||
|
||||
## 六、补充不足,完善数据库表,api接口等。
|
||||
|
||||
## 七、数据库链接信息
|
||||
|
||||
根据docker-compose.yml信息进行链接,告诉我配置文件位置,后期可以自行修改
|
||||
|
||||
```yml
|
||||
mysql:
|
||||
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/wechatpadpro/mysql:8.0
|
||||
container_name: mysql-db
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root123456
|
||||
MYSQL_DATABASE: mydb
|
||||
MYSQL_USER: user
|
||||
MYSQL_PASSWORD: password123
|
||||
ports:
|
||||
- "3309:3306"
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
redis:
|
||||
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.0.8
|
||||
container_name: redis-cache
|
||||
ports:
|
||||
|
||||
- "6381:6379"
|
||||
lumes:
|
||||
- redis_data:/data
|
||||
tworks:
|
||||
- app-network
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user