| | |
| | | "aps_crm/pkg/logx" |
| | | "aps_crm/pkg/mysqlx" |
| | | "aps_crm/pkg/safe" |
| | | "gorm.io/gorm/schema" |
| | | "sync" |
| | | ) |
| | | |
| | | func Init() error { |
| | |
| | | } |
| | | |
| | | type InitDefaultData interface { |
| | | InitDefaultData() error |
| | | InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) |
| | | } |
| | | |
| | | func InsertDefaultData() { |
| | | errCh := make(chan error, 2) |
| | | var wg sync.WaitGroup |
| | | |
| | | models := []interface{}{ |
| | | NewServiceTypeSearch(), |
| | | NewPriorityLevelSearch(), |
| | |
| | | NewTimelyRateSearch(), |
| | | NewFaultTypeSearch(), |
| | | } |
| | | |
| | | for _, model := range models { |
| | | if id, ok := model.(InitDefaultData); ok { |
| | | if err := id.InitDefaultData(); err != nil { |
| | | logx.Errorf("InitDefaultData for table: %v, err :%v", model.(schema.Tabler).TableName(), err.Error()) |
| | | } |
| | | wg.Add(1) |
| | | go id.InitDefaultData(errCh, &wg) |
| | | } |
| | | } |
| | | |
| | | go func() { |
| | | wg.Wait() // 等待所有goroutine完成 |
| | | close(errCh) // 关闭错误通道 |
| | | }() |
| | | |
| | | for err := range errCh { |
| | | if err != nil { |
| | | logx.Errorf("InitDefaultData err: %v", err.Error()) |
| | | } |
| | | } |
| | | } |