system_init.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. package engine
  2. import (
  3. "fmt"
  4. "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  6. "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
  7. "github.com/xormplus/xorm"
  8. "regexp"
  9. "time"
  10. )
  11. func createDatabase(orm *xorm.Engine) {
  12. if orm.DriverName() == "mysql" {
  13. dbname := orm.DataSourceName()
  14. reg := regexp.MustCompile("(.*)/(.*)(\\?.*)")
  15. //strings := reg.FindAllStringSubmatch(s, -1)
  16. strings := reg.FindStringSubmatch(dbname)
  17. fmt.Println(strings)
  18. if len(strings) > 3 {
  19. dbname = strings[2]
  20. db, _ := xorm.NewEngine(orm.DriverName(), strings[1]+"/")
  21. db.ShowSQL(true)
  22. _, err := db.Sql("CREATE DATABASE IF NOT EXISTS `" + dbname + "` default charset utf8 COLLATE utf8_general_ci").Execute()
  23. if err != nil {
  24. fmt.Println("create database error", err)
  25. } else {
  26. fmt.Println("create database success:", dbname)
  27. }
  28. }
  29. }
  30. }
  31. func initPlatformDbData(db *xorm.Engine) {
  32. domains := []models.SysDomain{
  33. {
  34. Id: "287c50a4-caad-4557-80c8-aca81af9f370",
  35. Name: "智慧蜂云",
  36. Domain: "ccbeetech.com",
  37. DataSource: "root:qian@123@tcp(localhost:3306)/ssm-ccbeetech?charset=utf8&loc=Local",
  38. CreateTime:time.Now(),
  39. LastUpdateDate: time.Now(),
  40. },
  41. }
  42. orgs := []models.SysOrg{
  43. {
  44. Id: "287c50a4-caad-4557-80c8-aca81af9f370",
  45. Name: "千秋软件",
  46. CreateTime:time.Now(),
  47. LastUpdateDate: time.Now(),
  48. },
  49. }
  50. users := []models.SysUser{
  51. {
  52. Id: "187c50a4-caad-4557-80c8-aca81af9f370",
  53. Name: "管理员",
  54. LoginId: "admin",
  55. Domain: "qianqiusoft.com",
  56. OrgId: "287c50a4-caad-4557-80c8-aca81af9f370",
  57. Password: utils.HashPassword("123456", ""),
  58. CreateTime:time.Now(),
  59. LastUpdateDate: time.Now(),
  60. },
  61. }
  62. roles := []models.SysRole{
  63. {
  64. Id: "487c50a4-caad-4557-80c8-aca81af9f370",
  65. Name: "超级管理员",
  66. CreateTime:time.Now(),
  67. LastUpdateDate: time.Now(),
  68. },
  69. }
  70. userRoles := []models.SysUserRole{
  71. {
  72. Id: "587c50a4-caad-4557-80c8-aca81af9f370",
  73. RoleId: "387c50a4-caad-4557-80c8-aca81af9f370",
  74. UserId: "187c50a4-caad-4557-80c8-aca81af9f370",
  75. CreateTime:time.Now(),
  76. LastUpdateDate: time.Now(),
  77. },
  78. }
  79. menus := []models.SysMenu{
  80. {
  81. Id: "387c50a4-caad-4557-80c8-aca81af9f370",
  82. Name: "系统管理",
  83. CreateTime:time.Now(),
  84. LastUpdateDate: time.Now(),
  85. },
  86. {
  87. Id: "387c50a4-caad-4557-80c8-aca81af9f371",
  88. Name: "用户管理",
  89. Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
  90. Url: "/sys/user",
  91. Component:"system/user",
  92. CreateTime:time.Now(),
  93. LastUpdateDate: time.Now(),
  94. },
  95. {
  96. Id: "387c50a4-caad-4557-80c8-aca81af9f372",
  97. Name: "组织架构",
  98. Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
  99. Url: "/sys/org",
  100. Component:"system/org",
  101. CreateTime:time.Now(),
  102. LastUpdateDate: time.Now(),
  103. },
  104. {
  105. Id: "387c50a4-caad-4557-80c8-aca81af9f373",
  106. Name: "角色管理",
  107. Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
  108. Url: "/sys/role",
  109. Component: "system/role",
  110. CreateTime:time.Now(),
  111. LastUpdateDate: time.Now(),
  112. },
  113. {
  114. Id: "387c50a4-caad-4557-80c8-aca81af9f374",
  115. Name: "菜单管理",
  116. Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
  117. Url: "/sys/menu",
  118. Component: "system/menu",
  119. CreateTime:time.Now(),
  120. LastUpdateDate: time.Now(),
  121. },
  122. {
  123. Id: "387c50a4-caad-4557-80c8-aca81af9f375",
  124. Name: "字典管理",
  125. Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
  126. Url: "/sys/dict",
  127. Component: "system/dic",
  128. CreateTime:time.Now(),
  129. LastUpdateDate: time.Now(),
  130. },
  131. {
  132. Id: "387c50a4-caad-4557-80c8-aca81af9f376",
  133. Name: "日志管理",
  134. Parent: "387c50a4-caad-4557-80c8-aca81af9f370",
  135. Url: "/sys/log",
  136. Component: "system/log",
  137. CreateTime:time.Now(),
  138. LastUpdateDate: time.Now(),
  139. },
  140. }
  141. models.SyncDb(db)
  142. _, err := db.Insert(domains)
  143. printError(err)
  144. _, err = db.Insert(orgs)
  145. printError(err)
  146. _, err = db.Insert(users)
  147. printError(err)
  148. _, err = db.Insert(roles)
  149. printError(err)
  150. _, err = db.Insert(userRoles)
  151. printError(err)
  152. _, err = db.Insert(menus)
  153. printError(err)
  154. }
  155. func initOrmEngine(orm *xorm.Engine, driverName string) {
  156. path, _ := utils.GetCurrentPath()
  157. sqldir := path + "/sqlconfig"
  158. //注册SqlMap配置,xml格式
  159. err := orm.RegisterSqlMap(xorm.Xml(sqldir, ".xml"))
  160. printError(err)
  161. //注册SqlTemplate配置,使用Pongo2模板引擎
  162. err = orm.RegisterSqlTemplate(xorm.Pongo2(sqldir, ".stpl"))
  163. printError(err)
  164. //注册SqlTemplate配置,使用Jet模板引擎
  165. err = orm.RegisterSqlTemplate(xorm.Jet(sqldir, ".jet"))
  166. printError(err)
  167. //注册SqlTemplate配置,使用html/template模板引擎
  168. err = orm.RegisterSqlTemplate(xorm.Default(sqldir, ".tpl"))
  169. printError(err)
  170. //设置时区
  171. orm.DatabaseTZ = time.Local // 必须
  172. orm.TZLocation = time.Local // 必须
  173. time.LoadLocation("Asia/Shanghai")
  174. orm.StartFSWatcher()
  175. orm.ShowSQL(true)
  176. /*for k,_:=range orm.SqlMap.Sql{
  177. fmt.Println(k)
  178. }*/
  179. //orm.ShowExecTime(true)
  180. createDatabase(orm)
  181. }
  182. func printError(err error) {
  183. if err != nil {
  184. logs.Error(err.Error())
  185. }
  186. }