package system import ( "context" "kra/internal/biz/system" "kra/internal/data/model" "kra/internal/data/query" "gorm.io/gorm" ) type jwtBlacklistRepo struct { db *gorm.DB } // NewJwtBlacklistRepo 创建JWT黑名单仓储 func NewJwtBlacklistRepo(db *gorm.DB) system.JwtBlacklistRepo { query.SetDefault(db) return &jwtBlacklistRepo{db: db} } func (r *jwtBlacklistRepo) Create(ctx context.Context, jwt string) error { m := &model.JwtBlacklist{Jwt: jwt} return query.JwtBlacklist.WithContext(ctx).Create(m) } func (r *jwtBlacklistRepo) IsInBlacklist(ctx context.Context, jwt string) bool { count, _ := query.JwtBlacklist.WithContext(ctx).Where(query.JwtBlacklist.Jwt.Eq(jwt)).Count() return count > 0 } func (r *jwtBlacklistRepo) LoadAll(ctx context.Context) ([]string, error) { var jwts []string err := r.db.WithContext(ctx).Model(&model.JwtBlacklist{}).Pluck("jwt", &jwts).Error return jwts, err }