MCPcopy Create free account
hub / github.com/aiprodcoder/MIXAPI / BatchDeleteTokens

Function BatchDeleteTokens

model/token.go:357–388  ·  view source on GitHub ↗

BatchDeleteTokens 删除指定用户的一组令牌,返回成功删除数量

(ids []int, userId int)

Source from the content-addressed store, hash-verified

355
356// BatchDeleteTokens 删除指定用户的一组令牌,返回成功删除数量
357func 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的使用次数
391func IncreaseTokenUsageCount(key string) error {

Callers 1

DeleteTokenBatchFunction · 0.92

Calls 2

cacheDeleteTokenFunction · 0.85
DeleteMethod · 0.45

Tested by

no test coverage detected