Files
ai_wht_wechat/go_backend/controller/xhs_controller.go
2026-01-09 23:27:52 +08:00

83 lines
2.1 KiB
Go

package controller
import (
"ai_xhs/common"
"ai_xhs/service"
"github.com/gin-gonic/gin"
)
type XHSController struct {
service *service.XHSService
}
func NewXHSController() *XHSController {
return &XHSController{
service: &service.XHSService{},
}
}
// SendCode 发送小红书验证码
func (ctrl *XHSController) SendCode(c *gin.Context) {
var req struct {
Phone string `json:"phone" binding:"required"`
CountryCode string `json:"country_code"`
}
if err := c.ShouldBindJSON(&req); err != nil {
common.Error(c, common.CodeInvalidParams, "参数错误:手机号不能为空")
return
}
// 调用Service层发送验证码
result, err := ctrl.service.SendVerificationCode(req.Phone, req.CountryCode)
if err != nil {
common.Error(c, common.CodeInternalError, "调用Python服务失败: "+err.Error())
return
}
// 检查是否需要扫码验证
if needCaptcha, ok := result.Data["need_captcha"].(bool); ok && needCaptcha {
// 发送验证码时触发风控,返回二维码
common.SuccessWithMessage(c, result.Message, result.Data)
return
}
// 判断Python服务返回的结果
if result.Code != 0 {
common.Error(c, result.Code, result.Message)
return
}
common.SuccessWithMessage(c, result.Message, result.Data)
}
// VerifyCode 验证小红书验证码并登录
func (ctrl *XHSController) VerifyCode(c *gin.Context) {
var req struct {
Phone string `json:"phone" binding:"required"`
Code string `json:"code" binding:"required"`
CountryCode string `json:"country_code"`
}
if err := c.ShouldBindJSON(&req); err != nil {
common.Error(c, common.CodeInvalidParams, "参数错误:手机号和验证码不能为空")
return
}
// 调用Service层验证登录
result, err := ctrl.service.VerifyLogin(req.Phone, req.Code, req.CountryCode)
if err != nil {
common.Error(c, common.CodeInternalError, "调用Python服务失败: "+err.Error())
return
}
// 判断Python服务返回的结果
if result.Code != 0 {
common.Error(c, result.Code, result.Message)
return
}
common.SuccessWithMessage(c, result.Message, result.Data)
}