|
@@ -7,10 +7,9 @@ import (
|
|
|
//"github.com/gin-contrib/sessions/cookie"
|
|
//"github.com/gin-contrib/sessions/cookie"
|
|
|
|
|
|
|
|
"os"
|
|
"os"
|
|
|
- "time"
|
|
|
|
|
|
|
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
|
|
|
- "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
|
|
|
|
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
"github.com/gin-contrib/cors"
|
|
"github.com/gin-contrib/cors"
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gin-gonic/gin"
|
|
|
"github.com/xormplus/xorm"
|
|
"github.com/xormplus/xorm"
|
|
@@ -32,10 +31,12 @@ func NewApiEngine(driverName, dataSourceName string, addr string) *ApiEngine {
|
|
|
engine := &ApiEngine{}
|
|
engine := &ApiEngine{}
|
|
|
var err error
|
|
var err error
|
|
|
engine.PlatformOrmEngine, err = xorm.NewEngine(driverName, dataSourceName)
|
|
engine.PlatformOrmEngine, err = xorm.NewEngine(driverName, dataSourceName)
|
|
|
- if err != nil {
|
|
|
|
|
- fmt.Println(err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ printError(err)
|
|
|
|
|
+
|
|
|
initOrmEngine(engine.PlatformOrmEngine, driverName)
|
|
initOrmEngine(engine.PlatformOrmEngine, driverName)
|
|
|
|
|
+
|
|
|
|
|
+ engine.LoadBusinessOrm()
|
|
|
|
|
+
|
|
|
engine.GinEngine = gin.Default()
|
|
engine.GinEngine = gin.Default()
|
|
|
|
|
|
|
|
//启动session
|
|
//启动session
|
|
@@ -48,8 +49,6 @@ func NewApiEngine(driverName, dataSourceName string, addr string) *ApiEngine {
|
|
|
engine.GinEngine.LoadHTMLGlob("doc/*")
|
|
engine.GinEngine.LoadHTMLGlob("doc/*")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- CreateDatabase(engine)
|
|
|
|
|
-
|
|
|
|
|
//cross domain
|
|
//cross domain
|
|
|
config := cors.DefaultConfig()
|
|
config := cors.DefaultConfig()
|
|
|
config.AllowAllOrigins = true
|
|
config.AllowAllOrigins = true
|
|
@@ -60,48 +59,25 @@ func NewApiEngine(driverName, dataSourceName string, addr string) *ApiEngine {
|
|
|
engine.listen_addr = addr
|
|
engine.listen_addr = addr
|
|
|
|
|
|
|
|
//设置登陆过滤
|
|
//设置登陆过滤
|
|
|
-
|
|
|
|
|
return engine
|
|
return engine
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func initOrmEngine(orm *xorm.Engine, driverName string) {
|
|
|
|
|
- path, _ := utils.GetCurrentPath()
|
|
|
|
|
- sqldir := path + "/sqlconfig"
|
|
|
|
|
- //注册SqlMap配置,xml格式
|
|
|
|
|
- err := orm.RegisterSqlMap(xorm.Xml(sqldir, ".xml"))
|
|
|
|
|
- printError(err)
|
|
|
|
|
- //注册SqlTemplate配置,使用Pongo2模板引擎
|
|
|
|
|
- err = orm.RegisterSqlTemplate(xorm.Pongo2(sqldir, "_"+driverName+".stpl"))
|
|
|
|
|
- printError(err)
|
|
|
|
|
- //注册SqlTemplate配置,使用Jet模板引擎
|
|
|
|
|
- err = orm.RegisterSqlTemplate(xorm.Jet(sqldir, "_"+driverName+".jet"))
|
|
|
|
|
- printError(err)
|
|
|
|
|
- //注册SqlTemplate配置,使用html/template模板引擎
|
|
|
|
|
- err = orm.RegisterSqlTemplate(xorm.Default(sqldir, "_"+driverName+".tpl"))
|
|
|
|
|
- printError(err)
|
|
|
|
|
-
|
|
|
|
|
- //设置时区
|
|
|
|
|
- orm.DatabaseTZ = time.Local // 必须
|
|
|
|
|
- orm.TZLocation = time.Local // 必须
|
|
|
|
|
- time.LoadLocation("Asia/Shanghai")
|
|
|
|
|
-
|
|
|
|
|
- orm.StartFSWatcher()
|
|
|
|
|
-
|
|
|
|
|
- orm.ShowSQL(true)
|
|
|
|
|
- /*for k,_:=range orm.SqlMap.Sql{
|
|
|
|
|
- fmt.Println(k)
|
|
|
|
|
- }*/
|
|
|
|
|
- //orm.ShowExecTime(true)
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-func printError(err error) {
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- fmt.Println(err.Error())
|
|
|
|
|
|
|
+func (g *ApiEngine)LoadBusinessOrm() {
|
|
|
|
|
+ var domain []models.SysDomain
|
|
|
|
|
+ g.PlatformOrmEngine.SQL("select * from sys_domain where del_flag = 0").Find(&domain)
|
|
|
|
|
+ g.BusinessOrmEngine = make(map[string]*xorm.Engine)
|
|
|
|
|
+ for _,v := range domain {
|
|
|
|
|
+ db,err := xorm.NewEngine("mysql", v.DataSource)
|
|
|
|
|
+ if err == nil {
|
|
|
|
|
+ initOrmEngine(db, "mysql")
|
|
|
|
|
+ g.BusinessOrmEngine[v.Domain] = db
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
func (g *ApiEngine) Run() {
|
|
func (g *ApiEngine) Run() {
|
|
|
- InitPlatformDbData(g)
|
|
|
|
|
|
|
+ initPlatformDbData(g.PlatformOrmEngine)
|
|
|
g.GinEngine.StaticFile("/", "web/index.html")
|
|
g.GinEngine.StaticFile("/", "web/index.html")
|
|
|
g.GinEngine.Static("/static", "web/static")
|
|
g.GinEngine.Static("/static", "web/static")
|
|
|
g.GinEngine.Run(g.listen_addr)
|
|
g.GinEngine.Run(g.listen_addr)
|