JM-WechatMini/api/base.go

44 lines
948 B
Go
Raw Normal View History

2023-11-02 04:34:46 +08:00
package api
import (
"git.echol.cn/loser/logger/log"
"github.com/gin-gonic/gin"
"miniapp/global"
"miniapp/model/app"
"miniapp/model/common/response"
"strconv"
)
func GetUser(ctx *gin.Context, u *app.User, dontResponse, dontCheck bool) {
userId := ctx.Request.Header.Get("userId")
if userId == "" {
if !dontResponse {
ctx.Abort()
response.FailWithMessage("未授权操作", ctx)
}
return
}
id, _ := strconv.Atoi(userId)
u.ID = uint(id)
// 查询
err := global.GVA_DB.Take(&u).Error
if err != nil {
log.Errorf("获取用户信息失败:%s", err.Error())
ctx.Abort()
if !dontResponse {
response.FailWithMessage("用户状态异常", ctx)
}
return
}
// 需要跳过微信绑定检验
if !dontCheck {
// 检查微信绑定
if u.WechatOpenId == nil || *u.WechatOpenId == "" {
log.Errorf("%v 未绑定微信", u.Nickname)
response.FailWithMessage("请先绑定微信", ctx)
ctx.Abort()
}
}
}