2025-09-12 01:27:31 +08:00
|
|
|
|
# NiūMall Go后端
|
2025-09-12 01:21:43 +08:00
|
|
|
|
|
2025-09-12 01:27:31 +08:00
|
|
|
|
这是一个使用Go语言和Gin框架构建的后端服务,为NiūMall活牛采购智能数字化系统提供API支持。
|
2025-09-12 01:21:43 +08:00
|
|
|
|
|
2025-09-12 01:27:31 +08:00
|
|
|
|
## 目录结构
|
2025-09-12 01:21:43 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
go-backend/
|
2025-09-12 01:27:31 +08:00
|
|
|
|
├── config/ # 配置文件
|
|
|
|
|
|
├── controllers/ # 控制器
|
|
|
|
|
|
├── docs/ # API文档
|
|
|
|
|
|
├── middleware/ # 中间件
|
|
|
|
|
|
├── models/ # 数据模型
|
|
|
|
|
|
├── routes/ # 路由定义
|
|
|
|
|
|
├── utils/ # 工具函数
|
|
|
|
|
|
├── main.go # 主程序入口
|
|
|
|
|
|
├── go.mod # Go模块定义
|
|
|
|
|
|
├── go.sum # Go模块校验和
|
|
|
|
|
|
├── .env.example # 环境变量示例
|
|
|
|
|
|
├── .env # 本地环境变量配置
|
|
|
|
|
|
├── Dockerfile # Docker构建文件
|
|
|
|
|
|
├── docker-compose.yml # Docker编排文件
|
|
|
|
|
|
├── Makefile # 构建脚本
|
|
|
|
|
|
├── start_dev.sh # 本地开发启动脚本
|
|
|
|
|
|
└── README.md # 项目说明
|
2025-09-12 01:21:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-12 01:27:31 +08:00
|
|
|
|
## 本地开发
|
2025-09-12 01:21:43 +08:00
|
|
|
|
|
2025-09-12 01:27:31 +08:00
|
|
|
|
### 环境要求
|
2025-09-12 01:21:43 +08:00
|
|
|
|
|
2025-09-12 01:27:31 +08:00
|
|
|
|
- Go 1.21或更高版本
|
|
|
|
|
|
- MySQL 8.0或更高版本
|
|
|
|
|
|
- Docker (可选,用于容器化部署)
|
2025-09-12 01:21:43 +08:00
|
|
|
|
|
2025-09-12 01:27:31 +08:00
|
|
|
|
### 安装依赖
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go mod tidy
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 配置环境变量
|
|
|
|
|
|
|
|
|
|
|
|
复制`.env.example`文件并根据需要修改配置:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 启动服务
|
|
|
|
|
|
|
|
|
|
|
|
#### 方法1:直接运行(需要本地安装Go和MySQL)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./start_dev.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 方法2:使用Docker(推荐)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 构建并启动所有服务
|
|
|
|
|
|
docker-compose up -d
|
|
|
|
|
|
|
|
|
|
|
|
# 查看服务状态
|
|
|
|
|
|
docker-compose ps
|
|
|
|
|
|
|
|
|
|
|
|
# 查看服务日志
|
|
|
|
|
|
docker-compose logs -f
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### API文档
|
|
|
|
|
|
|
|
|
|
|
|
API文档位于`docs/`目录下,使用OpenAPI 3.0规范编写:
|
|
|
|
|
|
|
|
|
|
|
|
- 用户管理: `docs/users.yaml`
|
|
|
|
|
|
- 订单管理: `docs/orders.yaml`
|
|
|
|
|
|
- 支付管理: `docs/payments.yaml`
|
|
|
|
|
|
|
|
|
|
|
|
可以使用[Swagger UI](https://editor.swagger.io/)等工具查看文档。
|
|
|
|
|
|
|
|
|
|
|
|
## 部署
|
|
|
|
|
|
|
|
|
|
|
|
### 使用Docker部署
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 构建镜像
|
|
|
|
|
|
docker build -t niumall-go-backend .
|
|
|
|
|
|
|
|
|
|
|
|
# 运行容器
|
|
|
|
|
|
docker run -p 8080:8080 niumall-go-backend
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 使用Docker Compose部署
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 在生产环境中启动服务
|
|
|
|
|
|
docker-compose up -d
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 开发指南
|
|
|
|
|
|
|
|
|
|
|
|
### 代码结构
|
|
|
|
|
|
|
|
|
|
|
|
- `main.go`: 程序入口,负责初始化和启动服务
|
|
|
|
|
|
- `config/`: 数据库连接等配置
|
|
|
|
|
|
- `models/`: 数据模型定义
|
|
|
|
|
|
- `controllers/`: 业务逻辑处理
|
|
|
|
|
|
- `routes/`: 路由注册
|
|
|
|
|
|
- `middleware/`: 中间件
|
|
|
|
|
|
- `utils/`: 工具函数
|
|
|
|
|
|
|
|
|
|
|
|
### 添加新功能
|
|
|
|
|
|
|
|
|
|
|
|
1. 在`models/`目录下创建数据模型
|
|
|
|
|
|
2. 在`controllers/`目录下创建控制器
|
|
|
|
|
|
3. 在`routes/routes.go`中注册路由
|
|
|
|
|
|
4. 更新`docs/`目录下的API文档
|
|
|
|
|
|
|
|
|
|
|
|
### 测试
|
|
|
|
|
|
|
|
|
|
|
|
运行单元测试:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go test -v ./...
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 故障排除
|
|
|
|
|
|
|
|
|
|
|
|
### 网络连接问题
|
|
|
|
|
|
|
|
|
|
|
|
如果在构建Docker镜像时遇到网络连接问题,请配置Docker使用国内镜像源:
|
|
|
|
|
|
|
|
|
|
|
|
1. 在Docker Desktop中打开Settings → Docker Engine
|
|
|
|
|
|
2. 添加以下配置:
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"registry-mirrors": [
|
|
|
|
|
|
"https://docker.mirrors.ustc.edu.cn",
|
|
|
|
|
|
"https://hub-mirror.c.163.com"
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
3. 点击"Apply & Restart"
|
|
|
|
|
|
|
|
|
|
|
|
### 数据库连接问题
|
|
|
|
|
|
|
|
|
|
|
|
确保MySQL服务正在运行,并且在`.env`文件中配置了正确的数据库连接信息。
|