package system import ( "github.com/samber/lo" "gorm.io/gorm" "time" ) func (*Role) DataInit(db *gorm.DB) error { // 初始化用户等级 reqs := []Role{ { Name: "超级管理员", Desc: "管理所有权限", Apis: "*", Menus: "*", }, } for _, req := range reqs { find := Role{} if stat := db.Model(&Role{}).Where("name", req.Name). Find(&find).Statement; stat.RowsAffected == 0 { if err := db.Create(&req).Error; err != nil { return err } } } return nil } func (*Apis) DataInit(db *gorm.DB) error { // 初始化用户等级 reqs := []Apis{ { ParentId: 0, Name: "待定义接口", Group: "待分配组", Method: "All", Path: "/", }, } for _, req := range reqs { find := Apis{} if stat := db.Model(&Apis{}).Where("name = ?", req.Name).Find(&find).Statement; stat.RowsAffected == 0 { if err := db.Create(&req).Error; err != nil { return err } } } return nil } func (*Menus) DataInit(db *gorm.DB) error { // 初始化用户等级 reqs := []Menus{ { ParentId: 0, Name: "系统配置", Router: "/system", }, } for _, req := range reqs { find := Menus{} if stat := db.Model(&Menus{}).Where("router = ?", req.Router).Find(&find).Statement; stat.RowsAffected == 0 { if err := db.Create(&req).Error; err != nil { return err } } } return nil } const AdminId int64 = 1 func (r *Administrator) DataInit(db *gorm.DB) error { // 初始化用户等级 password, salt := r.EncodePassword("666666") reqs := []Administrator{ { ID: AdminId, Nickname: "超级管理员", Username: "superman", Password: password, Salt: salt, GoogleKey: "", Avatar: "", RoleId: 1, LastLoginTime: lo.ToPtr(time.Now()), }, } for _, req := range reqs { find := NewAdministrator() if stat := db.Model(&Administrator{}).Where("id", AdminId). Find(&find).Statement; stat.RowsAffected == 0 { if err := db.Create(&req).Error; err != nil { return err } } } return nil }