代码拉取完成,页面将自动刷新
package user_info
import (
"errors"
"net/http"
"gitee.com/Tang-CMer/tiktok/models"
"github.com/gin-gonic/gin"
)
type UserResponse struct {
models.CommonResponse
User *models.UserInfo `json:"user"`
}
func UserInfoHandler(c *gin.Context) {
p := NewProxyUserInfo(c)
//得到上层中间件根据token解析的userId
rawId, ok := c.Get("user_id")
if !ok {
p.UserInfoError("解析userId出错")
return
}
err := p.DoQueryUserInfoByUserId(rawId)
if err != nil {
p.UserInfoError(err.Error())
}
}
type ProxyUserInfo struct {
c *gin.Context
}
func NewProxyUserInfo(c *gin.Context) *ProxyUserInfo {
return &ProxyUserInfo{c: c}
}
func (p *ProxyUserInfo) DoQueryUserInfoByUserId(rawId interface{}) error {
userId, ok := rawId.(int64)
if !ok {
return errors.New("解析userId失败")
}
//由于得到userinfo不需要组装model层的数据,所以直接调用model层的接口
userinfoDAO := models.NewUserInfoDAO()
var userInfo models.UserInfo
err := userinfoDAO.QueryUserInfoById(userId, &userInfo)
if err != nil {
return err
}
p.UserInfoOk(&userInfo)
return nil
}
func (p *ProxyUserInfo) UserInfoError(msg string) {
p.c.JSON(http.StatusOK, UserResponse{
CommonResponse: models.CommonResponse{StatusCode: 1, StatusMsg: msg},
})
}
func (p *ProxyUserInfo) UserInfoOk(user *models.UserInfo) {
p.c.JSON(http.StatusOK, UserResponse{
CommonResponse: models.CommonResponse{StatusCode: 0},
User: user,
})
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。