4.9 KiB
4.9 KiB
AI小红书 - Go后端服务
基于Go + Gin + GORM + MySQL开发的小红书营销助手后端服务。
技术栈
- Web框架: Gin
- ORM: GORM
- 数据库: MySQL 8.0+
- 配置管理: Viper
- 认证: JWT
项目结构
go_backend/
├── config/ # 配置文件
│ ├── config.go # 配置加载
│ ├── config.dev.yaml # 开发环境配置
│ └── config.prod.yaml# 生产环境配置
├── models/ # 数据模型
│ └── models.go
├── database/ # 数据库
│ └── database.go
├── service/ # 业务逻辑层
│ └── employee_service.go
├── controller/ # 控制器层
│ └── employee_controller.go
├── router/ # 路由
│ └── router.go
├── middleware/ # 中间件
│ └── auth.go
├── common/ # 公共模块
│ └── response.go
├── utils/ # 工具函数
│ └── jwt.go
├── main.go # 入口文件
├── go.mod # 依赖管理
├── start.sh # Linux/Mac启动脚本
├── start.bat # Windows开发环境启动脚本
└── start_prod.bat # Windows生产环境启动脚本
快速开始
1. 环境要求
- Go 1.21+
- MySQL 8.0+
2. 数据库准备
创建数据库:
-- 开发环境
CREATE DATABASE ai_xhs_dev DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 生产环境
CREATE DATABASE ai_xhs_prod DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. 配置文件
配置文件位于 config/ 目录:
config.dev.yaml- 开发环境配置config.prod.yaml- 生产环境配置
根据需要修改数据库连接信息和JWT密钥。
4. 安装依赖
go mod tidy
5. 启动服务
Windows开发环境
双击运行 start.bat 或命令行执行:
start.bat
Windows生产环境
双击运行 start_prod.bat 或命令行执行:
start_prod.bat
Linux/Mac
chmod +x start.sh
./start.sh
或手动启动:
# 开发环境
go run main.go -env=dev
# 生产环境
go run main.go -env=prod
6. 验证服务
访问健康检查接口:
curl http://localhost:8080/health
返回:
{
"status": "ok"
}
API接口
所有接口都需要在请求头中携带JWT Token(除登录接口外):
Authorization: Bearer <token>
员工端接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 获取个人信息 | GET | /api/employee/profile |
获取当前员工信息 |
| 绑定小红书 | POST | /api/employee/bind-xhs |
绑定小红书账号 |
| 解绑小红书 | POST | /api/employee/unbind-xhs |
解绑小红书账号 |
| 可领取文案 | GET | /api/employee/available-copies |
获取可领取的文案列表 |
| 领取文案 | POST | /api/employee/claim-copy |
领取指定文案 |
| 随机领取 | POST | /api/employee/claim-random-copy |
随机领取文案 |
| 发布内容 | POST | /api/employee/publish |
发布内容到小红书 |
| 发布记录 | GET | /api/employee/my-publish-records |
获取我的发布记录 |
| 产品列表 | GET | /api/employee/products |
获取产品列表 |
详细接口文档请参考项目需求文档。
数据库表结构
系统会在启动时自动创建以下数据表:
enterprises- 企业表employees- 员工表products- 产品表copies- 文案表copy_claims- 文案领取记录表publish_records- 发布记录表
开发说明
添加新接口
- 在
models/中定义数据模型 - 在
service/中实现业务逻辑 - 在
controller/中创建控制器方法 - 在
router/router.go中注册路由
环境切换
通过 -env 参数切换环境:
go run main.go -env=dev # 开发环境
go run main.go -env=prod # 生产环境
日志
GORM日志级别在 database/database.go 中配置,默认为 Info 级别。
部署
编译
# Windows
go build -o ai_xhs.exe main.go
# Linux/Mac
go build -o ai_xhs main.go
运行
# Windows
ai_xhs.exe -env=prod
# Linux/Mac
./ai_xhs -env=prod
生产环境注意事项
- 修改
config.prod.yaml中的JWT密钥 - 配置正确的数据库连接信息
- 设置服务器防火墙规则
- 建议使用进程管理工具(如systemd、supervisor)
- 配置反向代理(如Nginx)
- 启用HTTPS
常见问题
1. 数据库连接失败
检查:
- MySQL服务是否启动
- 数据库名称是否正确
- 用户名密码是否正确
- 数据库字符集是否为 utf8mb4
2. 端口已被占用
修改配置文件中的 server.port 配置项。
3. JWT认证失败
检查:
- Token是否正确携带
- Token格式是否为
Bearer <token> - Token是否过期
许可证
MIT