fix
This commit is contained in:
parent
b9447dae4d
commit
2789fad2f1
|
@ -52,9 +52,11 @@ func (u *FsUserModel) Transaction(ctx context.Context, fc func(tx *gorm.DB) erro
|
|||
// 继承guest_id的资源表
|
||||
func InheritGuestIdResource(tx *gorm.DB, userId, guestId int64, afterDo func(txResouce *gorm.DB, txUserMaterial *gorm.DB, txUserInfo *gorm.DB) error) error {
|
||||
var err error
|
||||
txRes := tx.Model(&FsResource{})
|
||||
txUserMaterial := tx.Model(&FsUserMaterial{})
|
||||
txUserInfo := tx.Model(&FsUserInfo{})
|
||||
if guestId != 0 {
|
||||
// 继承guest_id的资源表
|
||||
txRes := tx.Model(&FsResource{})
|
||||
err = txRes.
|
||||
Where("guest_id = ?", guestId).
|
||||
UpdateColumn("user_id", userId).Error
|
||||
|
@ -62,7 +64,7 @@ func InheritGuestIdResource(tx *gorm.DB, userId, guestId int64, afterDo func(txR
|
|||
if err != nil && err != gorm.ErrRecordNotFound {
|
||||
return err
|
||||
}
|
||||
txUserMaterial := tx.Model(&FsUserMaterial{})
|
||||
|
||||
err = txUserMaterial.
|
||||
Where("guest_id = ?", guestId).
|
||||
UpdateColumn("user_id", userId).Error
|
||||
|
@ -71,17 +73,16 @@ func InheritGuestIdResource(tx *gorm.DB, userId, guestId int64, afterDo func(txR
|
|||
return err
|
||||
}
|
||||
|
||||
txUserInfo := tx.Model(&FsUserInfo{})
|
||||
err = txUserInfo.
|
||||
Where("guest_id = ?", guestId).
|
||||
UpdateColumn("user_id", userId).Error
|
||||
if err != nil && err != gorm.ErrRecordNotFound {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if afterDo != nil {
|
||||
return afterDo(txRes, txUserMaterial, txUserInfo)
|
||||
}
|
||||
if afterDo != nil {
|
||||
return afterDo(txRes, txUserMaterial, txUserInfo)
|
||||
}
|
||||
return fmt.Errorf("guest_id must not be 0")
|
||||
}
|
||||
|
@ -108,11 +109,8 @@ func (u *FsUserModel) RegisterByGoogleOAuth(ctx context.Context, token *auth.Reg
|
|||
return err
|
||||
}
|
||||
|
||||
if token.GuestId != 0 {
|
||||
// 继承guest_id的资源表
|
||||
return InheritGuestIdResource(tx, user.Id, token.GuestId, nil)
|
||||
}
|
||||
return err
|
||||
// 继承guest_id的资源表
|
||||
return InheritGuestIdResource(tx, user.Id, token.GuestId, nil)
|
||||
}
|
||||
|
||||
return err
|
||||
|
@ -170,37 +168,37 @@ func (u *FsUserModel) RegisterByFusen(ctx context.Context, token *auth.RegisterT
|
|||
}
|
||||
|
||||
logcontent += "create."
|
||||
if token.GuestId != 0 {
|
||||
// 继承guest_id的资源表
|
||||
err = InheritGuestIdResource(tx, user.Id, token.GuestId, func(txResouce, txUserMaterial, txUserInfo *gorm.DB) error {
|
||||
userProfile := &UserProfile{
|
||||
FirstName: FirstName,
|
||||
LastName: LastName,
|
||||
Resetaurant: Resetaurant,
|
||||
}
|
||||
metadata, err := json.Marshal(userProfile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
now := time.Now()
|
||||
uinfo := &FsUserInfo{
|
||||
Module: FsString("profile"),
|
||||
UserId: &user.Id,
|
||||
GuestId: &token.GuestId,
|
||||
Metadata: &metadata,
|
||||
Ctime: &now,
|
||||
Utime: &now,
|
||||
}
|
||||
logcontent += "profile."
|
||||
return txUserInfo.Create(uinfo).Error
|
||||
})
|
||||
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return nil
|
||||
// 继承guest_id的资源表
|
||||
err = InheritGuestIdResource(tx, user.Id, token.GuestId, func(txResouce, txUserMaterial, txUserInfo *gorm.DB) error {
|
||||
userProfile := &UserProfile{
|
||||
FirstName: FirstName,
|
||||
LastName: LastName,
|
||||
Resetaurant: Resetaurant,
|
||||
}
|
||||
metadata, err := json.Marshal(userProfile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
now := time.Now()
|
||||
uinfo := &FsUserInfo{
|
||||
Module: FsString("profile"),
|
||||
UserId: &user.Id,
|
||||
GuestId: &token.GuestId,
|
||||
Metadata: &metadata,
|
||||
Ctime: &now,
|
||||
Utime: &now,
|
||||
}
|
||||
logcontent += "profile."
|
||||
return txUserInfo.Create(uinfo).Error
|
||||
})
|
||||
|
||||
return err
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return nil
|
||||
}
|
||||
|
||||
return err
|
||||
|
||||
}
|
||||
|
||||
return fmt.Errorf("the email had registered")
|
||||
|
|
Loading…
Reference in New Issue
Block a user