package script import ( "website-nav/global/client" "website-nav/model" "website-nav/service" "website-nav/utils" ) type script struct{} func New() script { return script{} } func (s script) Do() error { if err := s.migrate(); err != nil { return err } if err := s.createSuperAdmin(); err != nil { return err } return nil } // migrate // @description: 生成数据库 // @receiver s // @return error func (s script) migrate() error { var ent = []any{ new(model.User), new(model.NavigationType), new(model.Navigation), } return client.DB.AutoMigrate(ent...) } // createSuperAdmin // @description: 创建超级管理员 // @receiver s // @return error func (s script) createSuperAdmin() error { var count int64 if err := client.DB.Model(&model.User{}). Where("account = ?", "admin").Count(&count).Error; err != nil { return err } // 没有超管就创建一个 if count > 0 { return nil } avatar, err := utils.Avatar().GenerateAvatar(true) if err != nil { return err } return service.User().CreateUser(&model.User{ Avatar: avatar, Nickname: "超级管理员", Account: "admin", Contact: "", Password: "admin123", }) }