zhangqian
2023-12-08 84fb8e390b83dc9482524c12d7af6c93405c3fc1
model/index.go
@@ -4,21 +4,67 @@
   "apsClient/conf"
   "apsClient/pkg/logx"
   "apsClient/pkg/sqlitex"
   "sync"
)
func Init() error {
   if err := sqlitex.Init(&conf.Conf.Sqlite, logx.GetLogger()); err != nil {
   if err := sqlitex.Init(&conf.Conf.Sqlite); err != nil {
      return err
   }
   if err := RegisterTables(); err != nil {
      return err
   }
   RegisterTables()
   InsertDefaultData()
   return nil
}
func RegisterTables() error {
func RegisterTables() {
   db := sqlitex.GetDB()
   err := db.AutoMigrate(ScheduleTask{})
   return err
   db.AutoMigrate(
      Order{},
      Procedures{},
      NetConfig{},
      PlcBrand{},
      DevicePlc{},
      ProcessModel{},
      Device{},
      TaskStatusSync{},
      SystemStatus{},
      ProcessModelPlcAddress{},
      ReportsToCloud{},
      ReportWork{},
      Dashboard{},
   )
}
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),
      NewPlcBrandSearch(),
      NewSystemStatusSearch(),
   }
   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())
      }
   }
}