package routers import ( "git.qianqiusoft.com/qianqiusoft/light-apiengine/engine" "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys" "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" "github.com/gin-gonic/gin" "sync" ) var ( _registerHandlers []func(e *engine.ApiEngine) = nil _registerHandlerMutex sync.Mutex _router map[string][]gin.HandlerFunc ) func addRegisterHandler(handler func(e *engine.ApiEngine)) { _registerHandlerMutex.Lock() defer _registerHandlerMutex.Unlock() if _registerHandlers == nil { _registerHandlers = make([]func(e *engine.ApiEngine), 0) } _registerHandlers = append(_registerHandlers, handler) } func UseMiddleware(name string, middle ...gin.HandlerFunc) { if _router == nil { _router = make(map[string][]gin.HandlerFunc) } _router[name] = append(_router[name], middle...) } func Register(e *engine.ApiEngine) { e.AddAppMoudleInitFunc("light-apiengine", DbInitFunc) _registerHandlerMutex.Lock() defer _registerHandlerMutex.Unlock() for i := range _registerHandlers { _registerHandlers[i](e) } } func DbInitFunc(domain string, e entitys.ApiEngineInterface) { if domain == "" { for _, db := range e.GetAllBusinessDb() { models.SyncDb(db) } } else { db := e.GetBusinessDb(domain) models.SyncDb(db) } }