package routers import ( "git.qianqiusoft.com/qianqiusoft/light-apiengine/engine" "github.com/gin-gonic/gin" "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" "sync" ) var ( _registerHandlers []func(e *engine.ApiEngine) = nil _registerHandlerMutex sync.Mutex _router map[string]*gin.RouterGroup ) func addRegisterHandler(handler func(e *engine.ApiEngine)){ _registerHandlerMutex.Lock() defer _registerHandlerMutex.Unlock() if _registerHandlers == nil{ _registerHandlers = make([]func(e *engine.ApiEngine), 0) } if _router == nil { _router = make(map[string]*gin.RouterGroup) } _registerHandlers = append(_registerHandlers, handler) } func GetRouter(name string) *gin.RouterGroup { if _router == nil { return nil } return _router[name] } func Register(e *engine.ApiEngine){ //models.SyncDb(e.OrmEngine) for _,db := range e.BusinessOrmEngine { models.SyncDb(db) } _registerHandlerMutex.Lock() defer _registerHandlerMutex.Unlock() for i := range _registerHandlers{ _registerHandlers[i](e) } }