fix
wangpengfei
2023-08-18 8546acdc2a1f06253f30e0543fc202ebf5219bd0
model/index.go
@@ -5,7 +5,7 @@
   "aps_crm/pkg/logx"
   "aps_crm/pkg/mysqlx"
   "aps_crm/pkg/safe"
   "gorm.io/gorm/schema"
   "sync"
)
func Init() error {
@@ -94,10 +94,13 @@
}
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(),
@@ -115,11 +118,22 @@
      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())
      }
   }
}