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 }