sys_data_init.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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. {
  54. ParentId: 0,
  55. Name: "红包管理",
  56. Icon: "Wallet",
  57. Router: "/redpacket",
  58. Sort: 1,
  59. Enable: true,
  60. IsHide: false,
  61. IsFull: false,
  62. IsAffix: false,
  63. IsKeepAlive: true,
  64. },
  65. // 红包配置
  66. {
  67. ParentId: 1,
  68. Name: "红包配置",
  69. Icon: "Menu",
  70. Router: "/redpacket/config",
  71. Component: "@/views/redpacket/config/index.vue",
  72. Sort: 1,
  73. Enable: true,
  74. IsHide: false,
  75. IsFull: false,
  76. IsAffix: false,
  77. IsKeepAlive: true,
  78. },
  79. // 手动发送
  80. {
  81. ParentId: 1,
  82. Name: "手动发送",
  83. Icon: "Menu",
  84. Router: "/redpacket/send",
  85. Component: "@/views/redpacket/send/index.vue",
  86. Sort: 2,
  87. Enable: true,
  88. IsHide: false,
  89. IsFull: false,
  90. IsAffix: false,
  91. IsKeepAlive: true,
  92. },
  93. // 红包记录
  94. {
  95. ParentId: 1,
  96. Name: "红包记录",
  97. Icon: "Menu",
  98. Router: "/redpacket/record",
  99. Component: "@/views/redpacket/record/index.vue",
  100. Sort: 3,
  101. Enable: true,
  102. IsHide: false,
  103. IsFull: false,
  104. IsAffix: false,
  105. IsKeepAlive: true,
  106. },
  107. // 群组管理
  108. {
  109. ParentId: 1,
  110. Name: "群组管理",
  111. Icon: "Menu",
  112. Router: "/redpacket/group",
  113. Component: "@/views/redpacket/group/index.vue",
  114. Sort: 4,
  115. Enable: true,
  116. IsHide: false,
  117. IsFull: false,
  118. IsAffix: false,
  119. IsKeepAlive: true,
  120. },
  121. // 系统配置
  122. {
  123. ParentId: 0,
  124. Name: "系统配置",
  125. Icon: "Setting",
  126. Router: "/system",
  127. Sort: 100,
  128. Enable: true,
  129. IsHide: false,
  130. IsFull: false,
  131. IsAffix: false,
  132. IsKeepAlive: true,
  133. },
  134. }
  135. for _, req := range reqs {
  136. find := Menus{}
  137. if stat := db.Model(&Menus{}).Where("router = ?", req.Router).Find(&find).Statement; stat.RowsAffected == 0 {
  138. if err := db.Create(&req).Error; err != nil {
  139. return err
  140. }
  141. }
  142. }
  143. return nil
  144. }
  145. const AdminId int64 = 1
  146. func (r *Administrator) DataInit(db *gorm.DB) error {
  147. // 初始化用户等级
  148. password, salt := r.EncodePassword("666666")
  149. reqs := []Administrator{
  150. {
  151. ID: AdminId,
  152. Nickname: "超级管理员",
  153. Username: "superman",
  154. Password: password,
  155. Salt: salt,
  156. GoogleKey: "",
  157. Avatar: "",
  158. RoleId: 1,
  159. LastLoginTime: lo.ToPtr(time.Now()),
  160. },
  161. }
  162. for _, req := range reqs {
  163. find := NewAdministrator()
  164. if stat := db.Model(&Administrator{}).Where("id", AdminId).
  165. Find(&find).Statement; stat.RowsAffected == 0 {
  166. if err := db.Create(&req).Error; err != nil {
  167. return err
  168. }
  169. }
  170. }
  171. return nil
  172. }