146 lines
5.4 KiB
Markdown
146 lines
5.4 KiB
Markdown
# 🥟 哈尔滨美食地图 · 第一阶段
|
||
|
||
## **管理后台系统(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
|
||
```
|
||
|