| | |
| | | "apsClient/conf" |
| | | "apsClient/pkg/logx" |
| | | "apsClient/pkg/sqlitex" |
| | | "sync" |
| | | ) |
| | | |
| | | func Init() error { |
| | |
| | | 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()) |
| | | } |
| | | } |
| | | } |