zhangqian
2023-08-19 066a30751bdc20f9e83b34539de71ae392783e1b
model/index.go
@@ -4,6 +4,7 @@
   "apsClient/conf"
   "apsClient/pkg/logx"
   "apsClient/pkg/sqlitex"
   "sync"
)
func Init() error {
@@ -14,11 +15,48 @@
   if err := RegisterTables(); err != nil {
      return err
   }
   InsertDefaultData()
   return nil
}
func RegisterTables() error {
   db := sqlitex.GetDB()
   err := db.AutoMigrate(Order{}, Procedures{})
   err := db.AutoMigrate(
      Order{},
      Procedures{},
      NetConfig{},
      PlcBrand{},
   )
   return err
}
type InitDefaultData interface {
   InitDefaultData(errCh chan<- error, wg *sync.WaitGroup)
}
func InsertDefaultData() {
   errCh := make(chan error, 2)
   var wg sync.WaitGroup
   models := []interface{}{
      NewNetConfigSearch(nil),
   }
   for _, model := range models {
      if id, ok := model.(InitDefaultData); ok {
         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())
      }
   }
}