|
|
@@ -148,8 +148,24 @@ func (us *UserService) Create(u *model.User) error {
|
|
148
|
148
|
func (us *UserService) Logout(u *model.User, token string) error {
|
|
149
|
149
|
return global.DB.Where("user_id = ? and token = ?", u.Id, token).Delete(&model.UserToken{}).Error
|
|
150
|
150
|
}
|
|
|
151
|
+
|
|
|
152
|
+// Delete 删除用户和oauth信息
|
|
151
|
153
|
func (us *UserService) Delete(u *model.User) error {
|
|
152
|
|
- return global.DB.Delete(u).Error
|
|
|
154
|
+ // 使用锁进行保护,确保用户删除和 OAuth 删除的原子性
|
|
|
155
|
+ global.Lock.Lock("DeleteUserByUserId")
|
|
|
156
|
+ defer global.Lock.UnLock("DeleteUserByUserId")
|
|
|
157
|
+
|
|
|
158
|
+ // 删除用户
|
|
|
159
|
+ if err := global.DB.Delete(u).Error; err != nil {
|
|
|
160
|
+ return err
|
|
|
161
|
+ }
|
|
|
162
|
+
|
|
|
163
|
+ // 删除关联的 OAuth 信息
|
|
|
164
|
+ if err := AllService.OauthService.DeleteUserByUserId(u.Id); err != nil {
|
|
|
165
|
+ return err
|
|
|
166
|
+ }
|
|
|
167
|
+
|
|
|
168
|
+ return nil
|
|
153
|
169
|
}
|
|
154
|
170
|
|
|
155
|
171
|
// Update 更新
|