github.com/wfusion/gofusion@v1.1.14/db/ctx.go (about) 1 package db 2 3 import ( 4 "context" 5 6 "github.com/wfusion/gofusion/common/utils" 7 8 fusCtx "github.com/wfusion/gofusion/context" 9 ) 10 11 func GetCtxGormDB(ctx context.Context) *DB { 12 return utils.GetCtxAny(ctx, fusCtx.KeyGormDB, (*DB)(nil)) 13 } 14 15 func GetCtxGormDBByName(ctx context.Context, name string) (db *DB) { 16 utils.TravelCtx(ctx, func(ctx context.Context) bool { 17 db = utils.GetCtxAny(ctx, fusCtx.KeyGormDB, (*DB)(nil)) 18 return db != nil && db.Name == name 19 }) 20 return 21 } 22 23 func GetCtxGormDBByNameList(ctx context.Context, nameList []string) (db *DB) { 24 names := utils.NewSet(nameList...) 25 utils.TravelCtx(ctx, func(ctx context.Context) bool { 26 db = utils.GetCtxAny(ctx, fusCtx.KeyGormDB, (*DB)(nil)) 27 return db != nil && names.Contains(db.Name) 28 }) 29 return 30 } 31 32 func SetCtxGormDB(ctx context.Context, db *DB) context.Context { 33 return utils.SetCtxAny(ctx, fusCtx.KeyGormDB, db) 34 }