BatchDeleteTokens 删除指定用户的一组令牌,返回成功删除数量
(ids []int, userId int)
| 355 | |
| 356 | // BatchDeleteTokens 删除指定用户的一组令牌,返回成功删除数量 |
| 357 | func BatchDeleteTokens(ids []int, userId int) (int, error) { |
| 358 | if len(ids) == 0 { |
| 359 | return 0, errors.New("ids 不能为空!") |
| 360 | } |
| 361 | |
| 362 | tx := DB.Begin() |
| 363 | |
| 364 | var tokens []Token |
| 365 | if err := tx.Where("user_id = ? AND id IN (?)", userId, ids).Find(&tokens).Error; err != nil { |
| 366 | tx.Rollback() |
| 367 | return 0, err |
| 368 | } |
| 369 | |
| 370 | if err := tx.Where("user_id = ? AND id IN (?)", userId, ids).Delete(&Token{}).Error; err != nil { |
| 371 | tx.Rollback() |
| 372 | return 0, err |
| 373 | } |
| 374 | |
| 375 | if err := tx.Commit().Error; err != nil { |
| 376 | return 0, err |
| 377 | } |
| 378 | |
| 379 | if common.RedisEnabled { |
| 380 | gopool.Go(func() { |
| 381 | for _, t := range tokens { |
| 382 | _ = cacheDeleteToken(t.Key) |
| 383 | } |
| 384 | }) |
| 385 | } |
| 386 | |
| 387 | return len(tokens), nil |
| 388 | } |
| 389 | |
| 390 | // IncreaseTokenUsageCount 增加Token的使用次数 |
| 391 | func IncreaseTokenUsageCount(key string) error { |
no test coverage detected