package controller import ( "github.com/gin-gonic/gin" "hepa-calc-api/api/requests" "hepa-calc-api/api/responses" "hepa-calc-api/api/service" "hepa-calc-api/global" "hepa-calc-api/utils" "strconv" ) type Public struct{} // GetCaptcha 获取验证码 func (b *Public) GetCaptcha(c *gin.Context) { id, b64s, err := utils.GenerateCaptcha() if err != nil { responses.FailWithMessage("验证码获取失败", c) } responses.OkWithData(gin.H{ "id": id, "b64s": b64s, }, c) } // GetPhoneCode 获取手机验证码 func (b *Public) GetPhoneCode(c *gin.Context) { responses.Ok(c) return publicRequest := requests.PublicRequest{} req := publicRequest.GetPhoneCode if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 获取手机验证码 publicService := service.PublicService{} _, err := publicService.GetPhoneCode(req.Scene, req.Phone) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) } // GetIndex 获取首页数据 func (b *Public) GetIndex(c *gin.Context) { publicRequest := requests.PublicRequest{} req := publicRequest.GetIndex if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } var userId int64 if req.UserId != "" { // 将 id 转换为 int64 类型 var err error userId, err = strconv.ParseInt(req.UserId, 10, 64) if err != nil { responses.Fail(c) return } } publicService := service.PublicService{} g, err := publicService.GetIndex(userId) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(g, c) } // GetOssSign 获取oss签名 func (b *Public) GetOssSign(c *gin.Context) { publicRequest := requests.PublicRequest{} req := publicRequest.GetOssSign if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 获取oss签名 publicService := service.PublicService{} ossSign, err := publicService.GetOssSign(req.Scene) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(ossSign, c) }