system_init.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package engine
  2. import (
  3. "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  4. "regexp"
  5. "fmt"
  6. "github.com/xormplus/xorm"
  7. )
  8. func InitSystemDb(engine *ApiEngine) {
  9. menus:= []models.SysMenu{
  10. {
  11. Id:"387c50a4-caad-4557-80c8-aca81af9f370",
  12. Name:"系统管理",
  13. },
  14. {
  15. Id:"387c50a4-caad-4557-80c8-aca81af9f371",
  16. Name:"用户管理",
  17. Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
  18. },
  19. {
  20. Id:"387c50a4-caad-4557-80c8-aca81af9f372",
  21. Name:"组织架构",
  22. Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
  23. },
  24. {
  25. Id:"387c50a4-caad-4557-80c8-aca81af9f373",
  26. Name:"角色管理",
  27. Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
  28. },
  29. {
  30. Id:"387c50a4-caad-4557-80c8-aca81af9f374",
  31. Name:"菜单管理",
  32. Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
  33. },
  34. {
  35. Id:"387c50a4-caad-4557-80c8-aca81af9f375",
  36. Name:"字典管理",
  37. Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
  38. },
  39. {
  40. Id:"387c50a4-caad-4557-80c8-aca81af9f376",
  41. Name:"日志管理",
  42. Parent:"387c50a4-caad-4557-80c8-aca81af9f370",
  43. },
  44. }
  45. if engine.OrmEngine.DriverName() == "mysql"{
  46. dbname :=engine.OrmEngine.DataSourceName()
  47. reg:= regexp.MustCompile("(.*)/(.*)(\\?.*)")
  48. //strings := reg.FindAllStringSubmatch(s, -1)
  49. strings := reg.FindStringSubmatch(dbname)
  50. fmt.Println(strings)
  51. if len(strings) >3{
  52. dbname= strings[2]
  53. db,_:= xorm.NewEngine(engine.OrmEngine.DriverName(), strings[1]+"/")
  54. db.ShowSQL(true)
  55. _,err:=db.Sql("CREATE DATABASE IF NOT EXISTS `"+dbname+"` default charset utf8 COLLATE utf8_general_ci").Execute()
  56. if err!=nil{
  57. fmt.Println("create database error",err)
  58. }else {
  59. fmt.Println("create database success:",dbname)
  60. }
  61. }
  62. }
  63. err:=engine.OrmEngine.Sync2(
  64. new(models.SysMenu),
  65. new(models.SysOrg),
  66. new(models.SysUser),
  67. new(models.SysUserRole),
  68. new(models.SysRoleMenu),
  69. )
  70. printError(err)
  71. _,err = engine.OrmEngine.Insert(menus)
  72. printError(err)
  73. }