|
- package svc
-
- import (
- "applet/app/comm/db"
- "applet/app/comm/md"
- "applet/app/comm/utils"
- "applet/app/lib/auth"
- "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
- "errors"
- "strings"
-
- "github.com/gin-gonic/gin"
- )
-
- // 因为在mw_auth已经做完所有校验, 因此在此不再做任何校验
- // GetUser is get user model
- func GetUser(c *gin.Context) *md.User {
- user, _ := c.Get("user")
- return user.(*md.User)
- }
- func GetCampStore(c *gin.Context) *models.CampTaskStoreUser {
- user, _ := c.Get("camp_store")
- return user.(*models.CampTaskStoreUser)
- }
- func GetCampStoreId(c *gin.Context) int {
- user, _ := c.Get("camp_store")
- store := user.(*models.CampTaskStoreUser)
- if store != nil {
- id := store.Id
- if store.Pid > 0 {
- id = store.Pid
- }
- return id
- }
- return 0
- }
- func GetUid(c *gin.Context) string {
- user, _ := c.Get("user")
- u := user.(*md.User)
- return utils.IntToStr(u.Info.Uid)
- }
- func GetUserById(c *gin.Context, uid string) *md.User {
- // 获取user
- u, err := db.UserFindByID(db.DBs[c.GetString("mid")], uid)
- if err != nil {
- return nil
- }
- if u == nil {
- return nil
- }
- // 获取user profile
- up, err := db.UserProfileFindByID(db.DBs[c.GetString("mid")], uid)
- if err != nil {
- return nil
- }
- // 获取user 等级
- ul, err := db.UserLevelByID(db.DBs[c.GetString("mid")], u.Level)
- if err != nil {
- return nil
- }
- user := &md.User{
- Info: u,
- Profile: up,
- Level: ul,
- }
- return user
- }
- func CheckUser(c *gin.Context) (*md.User, error) {
- requestType := c.Request.Header.Get("Request-Type")
- requestUid := c.Request.Header.Get("Request-uid")
- var mc = new(auth.JWTUser)
- var err error
- if requestType == "mq_consume" {
- mc.UID = utils.StrToInt(requestUid)
- } else {
- token := c.GetHeader("Authorization")
- if token == "" {
- return nil, errors.New("token not exist")
- }
- // 按空格分割
- parts := strings.SplitN(token, " ", 2)
- if !(len(parts) == 2 && parts[0] == "Bearer") {
- return nil, errors.New("token format error")
- }
- // parts[1]是获取到的tokenString,我们使用之前定义好的解析JWT的函数来解析它
- mc, err = utils.ParseToken(parts[1])
- if err != nil {
- return nil, err
- }
- }
-
- // 获取user
- u, err := db.UserFindByID(db.DBs[c.GetString("mid")], mc.UID)
- if err != nil {
- return nil, err
- }
- if u == nil {
- return nil, errors.New("token can not find user")
- }
- // 获取user profile
- up, err := db.UserProfileFindByID(db.DBs[c.GetString("mid")], mc.UID)
- if err != nil {
- return nil, err
- }
- // 获取user 等级
- ul, err := db.UserLevelByID(db.DBs[c.GetString("mid")], u.Level)
- if err != nil {
- return nil, err
- }
-
- // 获取用户标签
- tags, err := db.UserTagsByUid(db.DBs[c.GetString("mid")], mc.UID)
- if err != nil {
- return nil, err
- }
- user := &md.User{
- Info: u,
- Profile: up,
- Level: ul,
- Tags: tags,
- }
- return user, nil
- }
|