| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- package engine
- import (
- "fmt"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
- "github.com/xormplus/xorm"
- "regexp"
- "time"
- )
- func createDatabase(orm *xorm.Engine) {
- if orm.DriverName() == "mysql" {
- dbname := orm.DataSourceName()
- reg := regexp.MustCompile("(.*)/(.*)(\\?.*)")
- //strings := reg.FindAllStringSubmatch(s, -1)
- strings := reg.FindStringSubmatch(dbname)
- fmt.Println(strings)
- if len(strings) > 3 {
- dbname = strings[2]
- db, _ := xorm.NewEngine(orm.DriverName(), strings[1]+"/")
- db.ShowSQL(true)
- _, err := db.Sql("CREATE DATABASE IF NOT EXISTS `" + dbname + "` default charset utf8 COLLATE utf8_general_ci").Execute()
- if err != nil {
- fmt.Println("create database error", err)
- } else {
- fmt.Println("create database success:", dbname)
- }
- }
- }
- }
- func initPlatformDbData(db *xorm.Engine) {
- domains := []models.SysDomain{
- {
- Id: "287c50a4-caad-4557-80c8-aca81af9f370",
- Name: "智慧蜂云",
- Domain: "ccbeetech.com",
- DataSource: "root:qian@123@tcp(localhost:3306)/ssm-ccbeetech?charset=utf8&loc=Local",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- }
- orgs := []models.SysOrg{
- {
- Id: "287c50a4-caad-4557-80c8-aca81af9f370",
- Name: "千秋软件",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- }
- users := []models.SysUser{
- {
- Id: "187c50a4-caad-4557-80c8-aca81af9f370",
- Name: "管理员",
- LoginId: "admin",
- Domain: "qianqiusoft.com",
- OrgId: "287c50a4-caad-4557-80c8-aca81af9f370",
- Password: utils.HashPassword("123456", ""),
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- }
- roles := []models.SysRole{
- {
- Id: "487c50a4-caad-4557-80c8-aca81af9f370",
- Name: "超级管理员",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- }
- userRoles := []models.SysUserRole{
- {
- Id: "587c50a4-caad-4557-80c8-aca81af9f370",
- RoleId: "387c50a4-caad-4557-80c8-aca81af9f370",
- UserId: "187c50a4-caad-4557-80c8-aca81af9f370",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- }
- menus := []models.SysMenu{
- {
- Id: "387c50a4-caad-4557-80c8-aca81af9f370",
- Name: "系统管理",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- {
- Id: "387c50a4-caad-4557-80c8-aca81af9f371",
- Name: "用户管理",
- Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
- Url: "/sys/user",
- Component: "system/user",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- {
- Id: "387c50a4-caad-4557-80c8-aca81af9f372",
- Name: "组织架构",
- Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
- Url: "/sys/org",
- Component: "system/org",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- {
- Id: "387c50a4-caad-4557-80c8-aca81af9f373",
- Name: "角色管理",
- Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
- Url: "/sys/role",
- Component: "system/role",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- {
- Id: "387c50a4-caad-4557-80c8-aca81af9f374",
- Name: "菜单管理",
- Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
- Url: "/sys/menu",
- Component: "system/menu",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- {
- Id: "387c50a4-caad-4557-80c8-aca81af9f375",
- Name: "字典管理",
- Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
- Url: "/sys/dict",
- Component: "system/dic",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- {
- Id: "387c50a4-caad-4557-80c8-aca81af9f376",
- Name: "日志管理",
- Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
- Url: "/sys/log",
- Component: "system/log",
- CreateTime: time.Now(),
- LastUpdateTime: time.Now().UnixNano(),
- },
- }
- models.SyncDb(db)
- _, err := db.Insert(domains)
- printError(err)
- _, err = db.Insert(orgs)
- printError(err)
- _, err = db.Insert(users)
- printError(err)
- _, err = db.Insert(roles)
- printError(err)
- _, err = db.Insert(userRoles)
- printError(err)
- _, err = db.Insert(menus)
- printError(err)
- }
- 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, ".stpl"))
- printError(err)
- //注册SqlTemplate配置,使用Jet模板引擎
- err = orm.RegisterSqlTemplate(xorm.Jet(sqldir, ".jet"))
- printError(err)
- //注册SqlTemplate配置,使用html/template模板引擎
- err = orm.RegisterSqlTemplate(xorm.Default(sqldir, ".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)
- createDatabase(orm)
- }
- func printError(err error) {
- if err != nil {
- logs.Error(err.Error())
- }
- }
|