ljw 1 год назад
Родитель
Сommit
b3edc9d112
1 измененных файлов с 30 добавлено и 11 удалено
  1. 30 11
      service/user.go

+ 30 - 11
service/user.go

@@ -151,15 +151,34 @@ func (us *UserService) Logout(u *model.User, token string) error {
151 151
 
152 152
 // Delete 删除用户和oauth信息
153 153
 func (us *UserService) Delete(u *model.User) error {
154
-    // 删除用户
155
-    if err := global.DB.Delete(u).Error; err != nil {
156
-        return err
157
-    }
158
-    // 删除关联的 OAuth 信息
159
-    if err := AllService.OauthService.DeleteUserByUserId(u.Id); err != nil {
160
-        return err
161
-    }
162
-    return nil
154
+	tx := global.DB.Begin()
155
+	// 删除用户
156
+	if err := tx.Delete(u).Error; err != nil {
157
+		tx.Rollback()
158
+		return err
159
+	}
160
+	// 删除关联的 OAuth 信息
161
+	if err := tx.Where("user_id = ?", u.Id).Delete(&model.UserThird{}).Error; err != nil {
162
+		tx.Rollback()
163
+		return err
164
+	}
165
+	//  删除关联的ab
166
+	if err := tx.Where("user_id = ?", u.Id).Delete(&model.AddressBook{}).Error; err != nil {
167
+		tx.Rollback()
168
+		return err
169
+	}
170
+	//  删除关联的abc
171
+	if err := tx.Where("user_id = ?", u.Id).Delete(&model.AddressBookCollection{}).Error; err != nil {
172
+		tx.Rollback()
173
+		return err
174
+	}
175
+	//  删除关联的abcr
176
+	if err := tx.Where("user_id = ?", u.Id).Delete(&model.AddressBookCollectionRule{}).Error; err != nil {
177
+		tx.Rollback()
178
+		return err
179
+	}
180
+	tx.Commit()
181
+	return nil
163 182
 }
164 183
 
165 184
 // Update 更新
@@ -262,14 +281,14 @@ func (us *UserService) RegisterByOauth(thirdType, thirdName, uid string) *model.
262 281
 		Username: username,
263 282
 		GroupId:  1,
264 283
 	}
265
-	global.DB.Create(u)
284
+	tx.Create(u)
266 285
 	if u.Id == 0 {
267 286
 		tx.Rollback()
268 287
 		return u
269 288
 	}
270 289
 
271 290
 	ut.UserId = u.Id
272
-	global.DB.Create(ut)
291
+	tx.Create(ut)
273 292
 
274 293
 	tx.Commit()
275 294
 	return u