2025-10-27 15:24:08 +08:00

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
}