Files
ai_wht_wechat/go_backend
2026-01-06 19:36:42 +08:00
..
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2025-12-19 22:36:48 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2026-01-06 19:36:42 +08:00
2025-12-19 22:36:48 +08:00

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 - 发布记录表

开发说明

添加新接口

  1. models/ 中定义数据模型
  2. service/ 中实现业务逻辑
  3. controller/ 中创建控制器方法
  4. 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

生产环境注意事项

  1. 修改 config.prod.yaml 中的JWT密钥
  2. 配置正确的数据库连接信息
  3. 设置服务器防火墙规则
  4. 建议使用进程管理工具如systemd、supervisor
  5. 配置反向代理如Nginx
  6. 启用HTTPS

常见问题

1. 数据库连接失败

检查:

  • MySQL服务是否启动
  • 数据库名称是否正确
  • 用户名密码是否正确
  • 数据库字符集是否为 utf8mb4

2. 端口已被占用

修改配置文件中的 server.port 配置项。

3. JWT认证失败

检查:

  • Token是否正确携带
  • Token格式是否为 Bearer <token>
  • Token是否过期

许可证

MIT