request.go 3.03 KB
Newer Older
chenweijian's avatar
chenweijian committed
1 2 3
package req

import (
hujiebin's avatar
hujiebin committed
4 5 6
	"git.hilo.cn/hilo-common/domain"
	"git.hilo.cn/hilo-common/mycontext"
	"git.hilo.cn/hilo-common/resource/mysql"
chenweijian's avatar
chenweijian committed
7 8 9 10 11 12
	"github.com/gin-gonic/gin"
	"hilo-user/domain/cache/user_c"
	"hilo-user/domain/model/res_m"
	"hilo-user/myerr/bizerr"
)

hujiebin's avatar
hujiebin committed
13 14 15 16 17 18 19 20 21 22 23 24
// 分页base
type PageReqBase struct {
	PageIndex int `form:"pageIndex,default=0"`
	PageSize  int `form:"pageSize,default=10"`
}

type PageRespBase struct {
	NextPageIndex int         `json:"nextPageIndex"`
	HasNextPage   bool        `json:"hasNextPage"`
	Data          interface{} `json:"data"` // 需要具体自定义
}

chenweijian's avatar
chenweijian committed
25
func GetUserId(c *gin.Context) (mysql.ID, error) {
hujiebin's avatar
hujiebin committed
26
	if userIdStr, ok := c.Keys[mycontext.USERID]; ok {
chenweijian's avatar
chenweijian committed
27 28 29 30 31 32
		userId := userIdStr.(uint64)
		return userId, nil
	}
	return 0, bizerr.ParaMissing
}

hujiebin's avatar
hujiebin committed
33 34 35 36 37 38 39 40 41 42 43 44 45 46
func ToUserId(myContext *mycontext.MyContext, externalId mysql.Str) (mysql.ID, error) {
	return user_c.ToUserId(domain.CreateModelContext(myContext), externalId)
	//if externalId == "" {
	//	return 0, myerr.NewSysError("externalId 不能为空")
	//}
	//var user user_m.User
	//if err := mysql.Db.Where(&user_m.User{
	//	ExternalId: externalId,
	//}).First(&user).Error; err != nil {
	//	return 0, bizerr.ExternalIdNoExist
	//}
	//return user.ID, nil
}

chenweijian's avatar
chenweijian committed
47 48
// 获取userId和externalId
func GetUserIdAndExtId(c *gin.Context, myContext *mycontext.MyContext) (mysql.ID, string, error) {
hujiebin's avatar
hujiebin committed
49
	if userIdStr, ok := c.Keys[mycontext.USERID]; ok {
chenweijian's avatar
chenweijian committed
50 51
		userId := userIdStr.(uint64)

hujiebin's avatar
hujiebin committed
52
		externalId, ok := c.Get(mycontext.EXTERNAL_ID)
chenweijian's avatar
chenweijian committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
		if ok {
			return userId, externalId.(string), nil
		} else {
			user, err := user_c.GetUserTinyById(domain.CreateModelContext(myContext), userId)
			if err != nil {
				return 0, "", bizerr.ExternalIdNoExist
			}
			return userId, user.ExternalId, nil
		}
	}
	return 0, "", bizerr.ParaMissing
}

// 获取userId和ExtId和code
func GetUserIdExtIdCode(c *gin.Context, myContext *mycontext.MyContext) (mysql.ID, string, string, error) {
hujiebin's avatar
hujiebin committed
68
	if userIdStr, ok := c.Keys[mycontext.USERID]; ok {
chenweijian's avatar
chenweijian committed
69 70
		userId := userIdStr.(uint64)

hujiebin's avatar
hujiebin committed
71 72
		userCode, ok1 := c.Get(mycontext.CODE)
		externalId, ok2 := c.Get(mycontext.EXTERNAL_ID)
chenweijian's avatar
chenweijian committed
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
		if ok1 && ok2 {
			return userId, externalId.(string), userCode.(string), nil
		} else {
			user, err := user_c.GetUserTinyById(domain.CreateModelContext(myContext), userId)
			if err != nil {
				return 0, "", "", bizerr.ExternalIdNoExist
			}
			return userId, user.ExternalId, user.Code, nil
		}
	}
	return 0, "", "", bizerr.ParaMissing
}

// 获取userId和LANGUAGE
func GetUserIdLang(c *gin.Context, myContext *mycontext.MyContext) (mysql.ID, string, error) {
hujiebin's avatar
hujiebin committed
88
	if userIdStr, ok := c.Keys[mycontext.USERID]; ok {
chenweijian's avatar
chenweijian committed
89 90
		userId := userIdStr.(uint64)

hujiebin's avatar
hujiebin committed
91
		lang, ok := c.Get(mycontext.LANGUAGE)
chenweijian's avatar
chenweijian committed
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
		if ok {
			return userId, lang.(string), nil
		} else {
			model := domain.CreateModelContext(myContext)
			user, err := user_c.GetUserTinyById(model, userId)
			if err != nil {
				return 0, "", bizerr.ExternalIdNoExist
			}
			lang, err := res_m.GetLangeByCountry(model.Db, user.Country)
			if err != nil {
				return 0, "", err
			}
			return userId, lang, nil
		}
	}
	return 0, "", bizerr.ParaMissing
}