67 lines
1.4 KiB
Go
67 lines
1.4 KiB
Go
package seed
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"management/internal/erpserver/model/system"
|
|
)
|
|
|
|
type Seed struct {
|
|
configRepository system.ConfigRepository
|
|
departmentRepository system.DepartmentRepository
|
|
roleRepository system.RoleRepository
|
|
userRepository system.UserRepository
|
|
menuRepository system.MenuRepository
|
|
}
|
|
|
|
func NewSeed(
|
|
configRepository system.ConfigRepository,
|
|
departmentRepository system.DepartmentRepository,
|
|
roleRepository system.RoleRepository,
|
|
userRepository system.UserRepository,
|
|
menuRepository system.MenuRepository,
|
|
) *Seed {
|
|
return &Seed{
|
|
configRepository: configRepository,
|
|
departmentRepository: departmentRepository,
|
|
roleRepository: roleRepository,
|
|
userRepository: userRepository,
|
|
menuRepository: menuRepository,
|
|
}
|
|
}
|
|
|
|
func (s *Seed) Run() error {
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
// 后台pear配置
|
|
if err := s.configRepository.Initialize(ctx); err != nil {
|
|
return err
|
|
}
|
|
|
|
// 部门
|
|
depart, err := s.departmentRepository.Initialize(ctx)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// 角色
|
|
role, err := s.roleRepository.Initialize(ctx)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// 用户
|
|
if err := s.userRepository.Initialize(ctx, depart.ID, role.ID); err != nil {
|
|
return err
|
|
}
|
|
|
|
// 菜单
|
|
if err = s.menuRepository.Initialize(ctx); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|