53 lines
1.7 KiB
Go
Executable File
53 lines
1.7 KiB
Go
Executable File
package gmodel
|
||
|
||
import (
|
||
"context"
|
||
"fusenapi/utils/auth"
|
||
"time"
|
||
|
||
"github.com/zeromicro/go-zero/core/logx"
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
type FsGuest struct {
|
||
GuestId int64 `gorm:"primary_key" json:"guest_id"` // 游客ID
|
||
AuthKey *string `gorm:"" json:"auth_key"` // jwt token
|
||
Status *int64 `gorm:"" json:"status"` // 1正常 0不正常
|
||
IsDel *int64 `gorm:"" json:"is_del"` // 是否删除 1删除
|
||
CreatedAt *int64 `gorm:"" json:"created_at"` // 添加时间
|
||
UpdatedAt *int64 `gorm:"" json:"updated_at"` // 更新时间
|
||
IsOpenRender *int64 `gorm:"" json:"is_open_render"` // 是否打开个性化渲染(1:开启,0:关闭)
|
||
IsThousandFace *int64 `gorm:"" json:"is_thousand_face"` // 是否已经存在千人千面(1:存在,0:不存在)
|
||
IsLowRendering *int64 `gorm:"" json:"is_low_rendering"` // 是否开启低渲染模型渲染
|
||
IsRemoveBg *int64 `gorm:"" json:"is_remove_bg"` // 用户上传logo是否去除背景
|
||
}
|
||
type FsGuestModel struct{ db *gorm.DB }
|
||
|
||
func NewFsGuestModel(db *gorm.DB) *FsGuestModel { return &FsGuestModel{db} }
|
||
|
||
func (m *FsGuestModel) GenerateGuestID(ctx context.Context, AccessSecret *string) (authKey string, err error) {
|
||
|
||
err = m.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
|
||
now := time.Now().Unix()
|
||
var record = &FsGuest{}
|
||
tx.Create(record)
|
||
|
||
authKey, err = auth.GenerateJwtToken(AccessSecret, now, 31536000, 0, record.GuestId)
|
||
if err != nil {
|
||
logx.Error(err)
|
||
tx.Rollback()
|
||
return err
|
||
}
|
||
record.AuthKey = &authKey
|
||
record.CreatedAt = &now
|
||
tx.Updates(record)
|
||
return nil
|
||
})
|
||
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
|
||
return authKey, nil
|
||
}
|