This commit is contained in:
eson 2023-08-29 14:54:53 +08:00
parent 122c850d2e
commit b9447dae4d

View File

@ -147,83 +147,63 @@ func (u *FsUserModel) RegisterByFusen(ctx context.Context, token *auth.RegisterT
err := u.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error { err := u.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
var err error var err error
defer func() {
if err == gorm.ErrRecordNotFound {
err = nil
}
}()
UserTx := tx.Model(user) UserTx := tx.Model(user)
err = UserTx.Where("email = ?", token.Email).Take(user).Error err = UserTx.Where("email = ?", token.Email).Take(user).Error
if err != nil { if err == gorm.ErrRecordNotFound {
// 没有找到在数据库就创建注册
if err == gorm.ErrRecordNotFound {
FirstName := token.Extend["first_name"].(string) FirstName := token.Extend["first_name"].(string)
LastName := token.Extend["last_name"].(string) LastName := token.Extend["last_name"].(string)
Resetaurant := token.Extend["resetaurant"].(string) Resetaurant := token.Extend["resetaurant"].(string)
createAt := time.Now().UTC().Unix() createAt := time.Now().UTC().Unix()
user.Email = &token.Email user.Email = &token.Email
user.CreatedAt = &createAt user.CreatedAt = &createAt
user.PasswordHash = &token.Password user.PasswordHash = &token.Password
user.FirstName = &FirstName user.FirstName = &FirstName
user.LastName = &LastName user.LastName = &LastName
err = UserTx.Create(user).Error err = UserTx.Create(user).Error
logcontent += "create."
if err != nil {
return err
}
if token.GuestId != 0 { if err != nil {
// 继承guest_id的资源表 logx.Error(err)
err = InheritGuestIdResource(tx, user.Id, token.GuestId, func(txResouce, txUserMaterial, txUserInfo *gorm.DB) error { return err
userProfile := &UserProfile{ }
FirstName: FirstName,
LastName: LastName, logcontent += "create."
Resetaurant: Resetaurant, if token.GuestId != 0 {
} // 继承guest_id的资源表
metadata, err := json.Marshal(userProfile) err = InheritGuestIdResource(tx, user.Id, token.GuestId, func(txResouce, txUserMaterial, txUserInfo *gorm.DB) error {
if err != nil { userProfile := &UserProfile{
return err FirstName: FirstName,
} LastName: LastName,
now := time.Now() Resetaurant: Resetaurant,
uinfo := &FsUserInfo{ }
Module: FsString("profile"), metadata, err := json.Marshal(userProfile)
UserId: &user.Id, if err != nil {
GuestId: &token.GuestId, return err
Metadata: &metadata, }
Ctime: &now, now := time.Now()
Utime: &now, uinfo := &FsUserInfo{
} Module: FsString("profile"),
logcontent += "profile." UserId: &user.Id,
return txUserInfo.Create(uinfo).Error GuestId: &token.GuestId,
}) Metadata: &metadata,
} Ctime: &now,
Utime: &now,
}
logcontent += "profile."
return txUserInfo.Create(uinfo).Error
})
if err == gorm.ErrRecordNotFound { if err == gorm.ErrRecordNotFound {
err = nil return nil
} }
return err return err
} }
if err == gorm.ErrRecordNotFound {
err = nil
}
return err
} }
if err == nil { return fmt.Errorf("the email had registered")
return fmt.Errorf("the email had registered")
}
if err == gorm.ErrRecordNotFound {
err = nil
}
return err
}) })
if err != nil && err != gorm.ErrRecordNotFound { if err != nil && err != gorm.ErrRecordNotFound {