generated from pkg/go-template
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"git.icechen.cn/monorepo/backend/pkg/orm"
|
||||
)
|
||||
|
||||
func init() {
|
||||
err := orm.DB.AutoMigrate(&UserInfo{})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"git.icechen.cn/monorepo/backend/pkg/orm"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type UserInfo struct {
|
||||
gorm.Model
|
||||
AccessToken string `json:"access_token,omitempty" gorm:"access_token"`
|
||||
TokenType string `json:"token_type,omitempty" gorm:"token_type"`
|
||||
ExpiresIn int `json:"expires_in,omitempty" gorm:"expires_in"`
|
||||
Name string `json:"name,omitempty" gorm:"name"`
|
||||
EnName string `json:"en_name,omitempty" gorm:"en_name"`
|
||||
AvatarUrl string `json:"avatar_url,omitempty" gorm:"avatar_url"`
|
||||
AvatarThumb string `json:"avatar_thumb,omitempty" gorm:"avatar_thumb"`
|
||||
AvatarMiddle string `json:"avatar_middle,omitempty" gorm:"avatar_middle"`
|
||||
AvatarBig string `json:"avatar_big,omitempty" gorm:"avatar_big"`
|
||||
OpenId string `json:"open_id,omitempty" gorm:"open_id;uniqueIndex"`
|
||||
UnionId string `json:"union_id,omitempty" gorm:"union_id;uniqueIndex"`
|
||||
Email string `json:"email,omitempty" gorm:"email;uniqueIndex"`
|
||||
UserId string `json:"user_id,omitempty" gorm:"user_id"`
|
||||
Mobile string `json:"mobile,omitempty" gorm:"mobile;uniqueIndex"`
|
||||
TenantKey string `json:"tenant_key,omitempty" gorm:"tenant_key"`
|
||||
RefreshExpiresIn int `json:"refresh_expires_in,omitempty" gorm:"refresh_expires_in"`
|
||||
RefreshToken string `json:"refresh_token,omitempty" gorm:"refresh_token"`
|
||||
}
|
||||
|
||||
func (UserInfo) TableName() string {
|
||||
return "user_info"
|
||||
}
|
||||
|
||||
// CreateUser 创建用户
|
||||
func CreateUser(user *UserInfo) error {
|
||||
return orm.DB.Where("open_id = ?", user.OpenId).Assign(user).FirstOrCreate(user).Error
|
||||
}
|
||||
|
||||
// GetUserByID 根据ID获取用户信息
|
||||
func GetUserByID(userID uint) (info UserInfo, err error) {
|
||||
err = orm.DB.First(&info, userID).Error
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"git.icechen.cn/monorepo/backend/pkg/orm"
|
||||
"github.com/gofiber/fiber/v2/utils"
|
||||
"gorm.io/gorm"
|
||||
"time"
|
||||
)
|
||||
|
||||
// TokenEffectiveTime token有效时长
|
||||
const TokenEffectiveTime = time.Hour * 2
|
||||
|
||||
type UserToken struct {
|
||||
gorm.Model
|
||||
Token string `json:"token" gorm:"token;uniqueIndex"`
|
||||
ExpiresTime time.Time `json:"expires_time" gorm:"expires_time"`
|
||||
UserInfoID uint `json:"user_info_id" gorm:"user_info_id"`
|
||||
}
|
||||
|
||||
func (UserToken) TableName() string {
|
||||
return "user_token"
|
||||
}
|
||||
|
||||
// CreateToken 创建Token
|
||||
func CreateToken(userInfoID uint) (string, error) {
|
||||
userToken := UserToken{
|
||||
Token: genToken(),
|
||||
ExpiresTime: time.Now().Add(TokenEffectiveTime),
|
||||
UserInfoID: userInfoID,
|
||||
}
|
||||
err := orm.DB.Where("user_info_id = ?", userInfoID).
|
||||
Assign(UserToken{UserInfoID: userInfoID}).
|
||||
FirstOrCreate(&userToken).Error
|
||||
return userToken.Token, err
|
||||
}
|
||||
|
||||
func genToken() string {
|
||||
return utils.UUIDv4()
|
||||
}
|
||||
|
||||
// GetToken 根据token获取token对象
|
||||
func GetToken(token string) (UserToken, error) {
|
||||
userToken := UserToken{}
|
||||
err := orm.DB.Where("token = ? AND expires_time < ?", token, time.Now()).
|
||||
First(&userToken).Error
|
||||
return userToken, err
|
||||
}
|
||||
Reference in New Issue
Block a user