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
 | |
| 	}
 | |
| 
 | |
| 	// 部门
 | |
| 	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, 0, role.ID); err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	// 菜单
 | |
| 	if err = s.menuRepository.Initialize(ctx); err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | 
