# 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. 数据库准备 创建数据库: ```sql -- 开发环境 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. 安装依赖 ```bash go mod tidy ``` ### 5. 启动服务 #### Windows开发环境 双击运行 `start.bat` 或命令行执行: ```bash start.bat ``` #### Windows生产环境 双击运行 `start_prod.bat` 或命令行执行: ```bash start_prod.bat ``` #### Linux/Mac ```bash chmod +x start.sh ./start.sh ``` 或手动启动: ```bash # 开发环境 go run main.go -env=dev # 生产环境 go run main.go -env=prod ``` ### 6. 验证服务 访问健康检查接口: ```bash curl http://localhost:8080/health ``` 返回: ```json { "status": "ok" } ``` ## API接口 所有接口都需要在请求头中携带JWT Token(除登录接口外): ``` Authorization: Bearer ``` ### 员工端接口 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 获取个人信息 | 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` 参数切换环境: ```bash go run main.go -env=dev # 开发环境 go run main.go -env=prod # 生产环境 ``` ### 日志 GORM日志级别在 `database/database.go` 中配置,默认为 `Info` 级别。 ## 部署 ### 编译 ```bash # Windows go build -o ai_xhs.exe main.go # Linux/Mac go build -o ai_xhs main.go ``` ### 运行 ```bash # 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是否过期 ## 许可证 MIT