sys_data_init.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package system
  2. import (
  3. "github.com/samber/lo"
  4. "gorm.io/gorm"
  5. "time"
  6. )
  7. func (*Role) DataInit(db *gorm.DB) error {
  8. // 初始化用户等级
  9. reqs := []Role{
  10. {
  11. Name: "超级管理员",
  12. Desc: "管理所有权限",
  13. Apis: "*",
  14. Menus: "*",
  15. },
  16. }
  17. for _, req := range reqs {
  18. find := Role{}
  19. if stat := db.Model(&Role{}).Where("name", req.Name).
  20. Find(&find).Statement; stat.RowsAffected == 0 {
  21. if err := db.Create(&req).Error; err != nil {
  22. return err
  23. }
  24. }
  25. }
  26. return nil
  27. }
  28. func (*Apis) DataInit(db *gorm.DB) error {
  29. // 初始化用户等级
  30. reqs := []Apis{
  31. {
  32. ParentId: 0,
  33. Name: "待定义接口",
  34. Group: "待分配组",
  35. Method: "All",
  36. Path: "/",
  37. },
  38. }
  39. for _, req := range reqs {
  40. find := Apis{}
  41. if stat := db.Model(&Apis{}).Where("name = ?", req.Name).Find(&find).Statement; stat.RowsAffected == 0 {
  42. if err := db.Create(&req).Error; err != nil {
  43. return err
  44. }
  45. }
  46. }
  47. return nil
  48. }
  49. func (*Menus) DataInit(db *gorm.DB) error {
  50. // 初始化用户等级
  51. reqs := []Menus{
  52. {
  53. ParentId: 0,
  54. Name: "系统配置",
  55. Router: "/system",
  56. },
  57. }
  58. for _, req := range reqs {
  59. find := Menus{}
  60. if stat := db.Model(&Menus{}).Where("router = ?", req.Router).Find(&find).Statement; stat.RowsAffected == 0 {
  61. if err := db.Create(&req).Error; err != nil {
  62. return err
  63. }
  64. }
  65. }
  66. return nil
  67. }
  68. const AdminId int64 = 1
  69. func (r *Administrator) DataInit(db *gorm.DB) error {
  70. // 初始化用户等级
  71. password, salt := r.EncodePassword("666666")
  72. reqs := []Administrator{
  73. {
  74. ID: AdminId,
  75. Nickname: "超级管理员",
  76. Username: "superman",
  77. Password: password,
  78. Salt: salt,
  79. GoogleKey: "",
  80. Avatar: "",
  81. RoleId: 1,
  82. LastLoginTime: lo.ToPtr(time.Now()),
  83. },
  84. }
  85. for _, req := range reqs {
  86. find := NewAdministrator()
  87. if stat := db.Model(&Administrator{}).Where("id", AdminId).
  88. Find(&find).Statement; stat.RowsAffected == 0 {
  89. if err := db.Create(&req).Error; err != nil {
  90. return err
  91. }
  92. }
  93. }
  94. return nil
  95. }