5 Star 2 Fork 2

唐梓迅 / 抖音

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
userinfo_handler.go 1.42 KB
一键复制 编辑 原始数据 按行查看 历史
Jack 提交于 2023-02-24 12:12 . 提交更新
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,
})
}
Go
1
https://gitee.com/Tang-CMer/tiktok.git
git@gitee.com:Tang-CMer/tiktok.git
Tang-CMer
tiktok
抖音
6db71edd81e7

搜索帮助