Files
ai_wht_wechat/go_backend/router/router.go
2026-01-10 21:46:50 +08:00

138 lines
5.1 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package router
import (
"ai_xhs/controller"
"ai_xhs/middleware"
"ai_xhs/service"
"github.com/gin-gonic/gin"
)
func SetupRouter(r *gin.Engine) {
// 跨域中间件
r.Use(middleware.CORS())
// 健康检查
r.GET("/health", func(c *gin.Context) {
c.JSON(200, gin.H{
"status": "ok",
})
})
// 静态文件服务(上传的图片)
r.Static("/uploads", "./uploads")
// API路由组
api := r.Group("/api")
{
// 公开接口(不需要认证)
authCtrl := controller.NewAuthController()
api.POST("/login/wechat", authCtrl.WechatLogin) // 微信登录
api.POST("/login/phone", authCtrl.PhoneLogin) // 手机号登录(测试用)
api.POST("/login/phone-password", authCtrl.PhonePasswordLogin) // 手机号密码登录
api.POST("/login/xhs-phone-code", authCtrl.XHSPhoneCodeLogin) // 小红书手机号验证码登录
api.POST("/login/send-sms-code", authCtrl.SendSmsCode) // 发送阿里云短信验证码
api.POST("/xhs/send-verification-code", authCtrl.SendXHSVerificationCode) // 发送小红书验证码
api.POST("/logout", middleware.AuthMiddleware(), authCtrl.Logout) // 退出登录(需要认证)
// 小红书相关接口
employeeCtrlPublic := controller.NewEmployeeController()
api.POST("/xhs/send-code", employeeCtrlPublic.SendXHSCode) // 发送小红书验证码
api.GET("/products", middleware.AuthMiddleware(), employeeCtrlPublic.GetProducts) // 获取产品列表
// 员工路由(需要认证)
employee := api.Group("/employee")
employee.Use(middleware.AuthMiddleware())
{
employeeCtrl := controller.NewEmployeeController()
// 10.1 获取员工个人信息
employee.GET("/profile", employeeCtrl.GetProfile)
// 10.1.1 更新个人信息
employee.PUT("/profile", employeeCtrl.UpdateProfile)
// 10.1.2 上传头像
employee.POST("/upload-avatar", employeeCtrl.UploadAvatar)
// 10.2 绑定小红书账号
employee.POST("/bind-xhs", employeeCtrl.BindXHS)
// 10.2.1 获取绑定状态
employee.GET("/bind-xhs-status", employeeCtrl.GetBindXHSStatus)
// 10.3 解绑小红书账号
employee.POST("/unbind-xhs", employeeCtrl.UnbindXHS)
// 10.4 获取可领取文案列表
employee.GET("/available-copies", employeeCtrl.GetAvailableCopies)
// 10.5 领取文案
employee.POST("/claim-copy", employeeCtrl.ClaimCopy)
// 10.6 随机领取文案
employee.POST("/claim-random-copy", employeeCtrl.ClaimRandomCopy)
// 10.7 发布内容
employee.POST("/publish", employeeCtrl.Publish)
// 10.8 获取我的发布记录
employee.GET("/my-publish-records", employeeCtrl.GetMyPublishRecords)
// 10.8.1 获取发布记录详情
employee.GET("/publish-record/:id", employeeCtrl.GetPublishRecordDetail)
// 10.9 检查小红书绑定与Cookie状态
employee.GET("/xhs/status", employeeCtrl.CheckXHSStatus)
// 10.10 更新文案状态(通过/拒绝)
employee.POST("/article/:id/status", employeeCtrl.UpdateArticleStatus)
// 10.10.1 更新文案内容(标题、正文)
employee.PUT("/article/:id", employeeCtrl.UpdateArticleContent)
// 10.10.2 添加文案图片
employee.POST("/article/:id/image", employeeCtrl.AddArticleImage)
// 10.10.3 删除文案图片
employee.DELETE("/article/image/:imageId", employeeCtrl.DeleteArticleImage)
// 10.10.4 更新文案图片排序
employee.PUT("/article/:id/images/order", employeeCtrl.UpdateArticleImagesOrder)
// 10.10.5 上传图片
employee.POST("/upload/image", employeeCtrl.UploadImage)
// 10.11 编辑发布记录
employee.PUT("/publish-record/:id", employeeCtrl.UpdatePublishRecord)
// 10.12 重新发布种草内容
employee.POST("/publish-record/:id/republish", employeeCtrl.RepublishRecord)
// 10.13 禁用用户撤销Token
employee.POST("/revoke-token", employeeCtrl.RevokeUserToken)
// 反馈相关接口
feedbackCtrl := controller.NewFeedbackController(service.NewFeedbackService())
employee.POST("/feedback", feedbackCtrl.CreateFeedback) // 创建反馈
employee.GET("/feedback", feedbackCtrl.GetFeedbackList) // 获取反馈列表
employee.GET("/feedback/:id", feedbackCtrl.GetFeedbackDetail) // 获取反馈详情
}
// 小红书相关接口(不需要认证由Python后端或小程序调用)
xhs := api.Group("/xhs")
{
xhsCtrl := controller.NewEmployeeController()
// 扫码登录相关接口(需要token但不在employee路由下)
xhs.POST("/qrcode/start", middleware.AuthMiddleware(), xhsCtrl.StartQRCodeLogin) // 启动扫码登录
xhs.POST("/qrcode/status", middleware.AuthMiddleware(), xhsCtrl.GetQRCodeStatus) // 轮询扫码状态
xhs.POST("/qrcode/refresh", middleware.AuthMiddleware(), xhsCtrl.RefreshQRCode) // 刷新二维码
xhs.POST("/qrcode/cancel", middleware.AuthMiddleware(), xhsCtrl.CancelQRCodeLogin) // 取消扫码登录
// 保存扫码登录的绑定信息
xhs.POST("/save-qrcode-login", xhsCtrl.SaveQRCodeLogin)
// 保存验证码登录的绑定信息
xhs.POST("/save-login", xhsCtrl.SaveLogin)
}
}
}