website-nav/script/script.go
2024-10-18 17:19:19 +08:00

70 lines
1.2 KiB
Go

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",
})
}