From 8546acdc2a1f06253f30e0543fc202ebf5219bd0 Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期五, 18 八月 2023 16:31:40 +0800 Subject: [PATCH] fix --- model/severity.go | 16 ++ model/invoiceType.go | 16 ++ model/timeSpent.go | 16 ++ model/city.go | 21 ++++ model/timelyRate.go | 16 ++ model/satisfaction.go | 15 ++ model/serviceContractStatus.go | 16 ++ model/solveRate.go | 16 ++ model/priorityLevel.go | 16 ++ model/serviceType.go | 15 ++ model/courierCompany.go | 16 ++ model/invoiceStatus.go | 16 ++ model/faultType.go | 16 ++ model/index.go | 24 +++- model/isVisit.go | 15 ++ model/serviceOrderStatus.go | 16 ++ model/serviceContractType.go | 16 ++ main.go | 9 - 18 files changed, 221 insertions(+), 70 deletions(-) diff --git a/main.go b/main.go index 0c78964..4fc671d 100644 --- a/main.go +++ b/main.go @@ -9,7 +9,6 @@ "aps_crm/router" "aps_crm/service" "fmt" - "github.com/robfig/cron/v3" "net/http" "os" "os/signal" @@ -50,9 +49,9 @@ go v1.InitProductServiceConn() go service.InitUserConn() - c := cron.New() - c.AddFunc("@every 15s", service.SyncUserInfo) // 姣�15绉掑悓姝ヤ竴娆� - c.Start() + //c := cron.New() + //c.AddFunc("@every 15s", service.SyncUserInfo) // 姣�15绉掑悓姝ヤ竴娆� + //c.Start() logx.Error(server.ListenAndServe().Error()) } @@ -65,6 +64,6 @@ v1.CloseProductServiceConn() service.CloseUserConn() - logx.Infof("aps-admin exited...") + logx.Infof("aps-crm exited...") os.Exit(0) } diff --git a/model/city.go b/model/city.go index 4bfa0e7..ade9ca7 100644 --- a/model/city.go +++ b/model/city.go @@ -108,3 +108,24 @@ err := db.Find(&list).Error return list, err } + +// InitDefaultCity 鍒濆鍖栭粯璁ゅ煄甯� +func InitDefaultCity() error { + records := []*City{ + { + Name: "鍖椾含甯�", + }, + } + + var db = mysqlx.GetDB() + for _, record := range records { + var city City + if err := db.Where("name = ?", record.Name).First(&city).Error; err != nil { + if err := db.Create(record).Error; err != nil { + return err + } + } + } + + return nil +} diff --git a/model/courierCompany.go b/model/courierCompany.go index 2744a76..da1e65d 100644 --- a/model/courierCompany.go +++ b/model/courierCompany.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -124,21 +125,28 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *CourierCompanySearch) InitDefaultData() error { +func (slf *CourierCompanySearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*CourierCompany{ {1, "椤轰赴"}, {2, "寰烽偊"}, {3, "涓繙娴疯繍"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/faultType.go b/model/faultType.go index 82e9a65..248233e 100644 --- a/model/faultType.go +++ b/model/faultType.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -119,16 +120,18 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *FaultTypeSearch) InitDefaultData() error { +func (slf *FaultTypeSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*FaultType{ {1, "璁惧瀹夎"}, @@ -138,5 +141,10 @@ {5, "璁惧鏁呴殰"}, {6, "璁惧鑹搧鐜囦綆"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/index.go b/model/index.go index 7bd2e13..7a9f652 100644 --- a/model/index.go +++ b/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() // 绛夊緟鎵�鏈塯oroutine瀹屾垚 + close(errCh) // 鍏抽棴閿欒閫氶亾 + }() + + for err := range errCh { + if err != nil { + logx.Errorf("InitDefaultData err: %v", err.Error()) } } } diff --git a/model/invoiceStatus.go b/model/invoiceStatus.go index a4f7dac..19a4cde 100644 --- a/model/invoiceStatus.go +++ b/model/invoiceStatus.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -124,21 +125,28 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *InvoiceStatusSearch) InitDefaultData() error { +func (slf *InvoiceStatusSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*InvoiceStatus{ {1, "宸插垱寤�"}, {2, "宸插瘎閫�"}, {3, "鑷姩鍒涘缓"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/invoiceType.go b/model/invoiceType.go index 14e1d3a..8c2057b 100644 --- a/model/invoiceType.go +++ b/model/invoiceType.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -124,21 +125,28 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *InvoiceTypeSearch) InitDefaultData() error { +func (slf *InvoiceTypeSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*InvoiceType{ {1, "澧炵エ6%"}, {2, "澧炵エ16%"}, {3, "澧炵エ17%"}, } - return slf.CreateBatch(records) + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + + } } diff --git a/model/isVisit.go b/model/isVisit.go index ec04ee3..7398c7c 100644 --- a/model/isVisit.go +++ b/model/isVisit.go @@ -3,6 +3,7 @@ import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" + "sync" ) type ( @@ -90,20 +91,26 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *IsVisitSearch) InitDefaultData() error { +func (slf *IsVisitSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*IsVisit{ {1, "鏄�"}, {2, "鍚�"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/priorityLevel.go b/model/priorityLevel.go index ee2f3fe..b1902f4 100644 --- a/model/priorityLevel.go +++ b/model/priorityLevel.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -119,16 +120,19 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *PriorityLevelSearch) InitDefaultData() error { +func (slf *PriorityLevelSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() + if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*PriorityLevel{ {1, "浣�"}, @@ -136,5 +140,9 @@ {3, "楂�"}, {4, "绱ф��"}, } - return slf.CreateBatch(records) + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/satisfaction.go b/model/satisfaction.go index e8c3e14..5b77f9e 100644 --- a/model/satisfaction.go +++ b/model/satisfaction.go @@ -3,6 +3,7 @@ import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" + "sync" ) type ( @@ -84,16 +85,18 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *SatisfactionSearch) InitDefaultData() error { +func (slf *SatisfactionSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*Satisfaction{ {1, "100%"}, @@ -107,5 +110,9 @@ {9, "20%"}, {10, "10%"}, } - return slf.CreateBatch(records) + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/serviceContractStatus.go b/model/serviceContractStatus.go index 6b4d6e3..f7e271b 100644 --- a/model/serviceContractStatus.go +++ b/model/serviceContractStatus.go @@ -3,6 +3,7 @@ import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" + "sync" ) type ( @@ -90,21 +91,28 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *ServiceContractStatusSearch) InitDefaultData() error { +func (slf *ServiceContractStatusSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*ServiceContractStatus{ {1, "宸插垱寤�"}, {2, "宸插鎵�"}, {3, "宸蹭綔搴�"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/serviceContractType.go b/model/serviceContractType.go index 3524737..4b64b32 100644 --- a/model/serviceContractType.go +++ b/model/serviceContractType.go @@ -3,6 +3,7 @@ import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" + "sync" ) type ( @@ -90,16 +91,18 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *ServiceContractTypeSearch) InitDefaultData() error { +func (slf *ServiceContractTypeSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*ServiceContractType{ {1, "鎸夊勾"}, @@ -107,5 +110,10 @@ {3, "鍏朵粬"}, {4, "铏氭嫙鍚堝悓"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/serviceOrderStatus.go b/model/serviceOrderStatus.go index 44ff749..fdb01e9 100644 --- a/model/serviceOrderStatus.go +++ b/model/serviceOrderStatus.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -129,16 +130,19 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *ServiceOrderStatusSearch) InitDefaultData() error { +func (slf *ServiceOrderStatusSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() + if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*ServiceOrderStatus{ {1, "鏈鐞�"}, @@ -146,5 +150,9 @@ {3, "绛夊緟鍥炲簲"}, {4, "鎴愬姛鍏抽棴"}, } - return slf.CreateBatch(records) + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/serviceType.go b/model/serviceType.go index 9938c03..b3e6348 100644 --- a/model/serviceType.go +++ b/model/serviceType.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -119,16 +120,18 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *ServiceTypeSearch) InitDefaultData() error { +func (slf *ServiceTypeSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*ServiceType{ {1, "鐢佃瘽"}, @@ -137,5 +140,9 @@ {4, "涓婇棬"}, {5, "鍏朵粬"}, } - return slf.CreateBatch(records) + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/severity.go b/model/severity.go index 51c7f1b..bccf576 100644 --- a/model/severity.go +++ b/model/severity.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -119,16 +120,19 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *SeveritySearch) InitDefaultData() error { +func (slf *SeveritySearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() + if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*Severity{ {1, "杞�"}, @@ -136,5 +140,9 @@ {3, "杈冧弗閲�"}, {4, "鐗逛弗閲�"}, } - return slf.CreateBatch(records) + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/solveRate.go b/model/solveRate.go index 6f3e24e..5f7bb55 100644 --- a/model/solveRate.go +++ b/model/solveRate.go @@ -3,6 +3,7 @@ import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" + "sync" ) type ( @@ -90,16 +91,18 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *SolveRateSearch) InitDefaultData() error { +func (slf *SolveRateSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*SolveRate{ {1, "100%"}, @@ -113,5 +116,10 @@ {9, "20%"}, {10, "10%"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/timeSpent.go b/model/timeSpent.go index 3be7ac0..926d4de 100644 --- a/model/timeSpent.go +++ b/model/timeSpent.go @@ -6,6 +6,7 @@ "errors" "fmt" "gorm.io/gorm" + "sync" ) type ( @@ -119,16 +120,19 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *TimeSpentSearch) InitDefaultData() error { +func (slf *TimeSpentSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() + if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*TimeSpent{ {1, "1灏忔椂"}, @@ -138,5 +142,9 @@ {5, "2涓伐浣滄棩"}, {6, "2涓伐浣滄棩浠ヤ笂"}, } - return slf.CreateBatch(records) + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } diff --git a/model/timelyRate.go b/model/timelyRate.go index 143e456..4704fe8 100644 --- a/model/timelyRate.go +++ b/model/timelyRate.go @@ -3,6 +3,7 @@ import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" + "sync" ) type ( @@ -90,16 +91,18 @@ } // InitDefaultData 鍒濆鍖栨暟鎹� -func (slf *TimelyRateSearch) InitDefaultData() error { +func (slf *TimelyRateSearch) InitDefaultData(errCh chan<- error, wg *sync.WaitGroup) { var ( db = slf.Orm.Table(slf.TableName()) total int64 = 0 ) + defer wg.Done() if err := db.Count(&total).Error; err != nil { - return err + errCh <- err + return } if total != 0 { - return nil + return } records := []*TimelyRate{ {1, "100%"}, @@ -113,5 +116,10 @@ {9, "20%"}, {10, "10%"}, } - return slf.CreateBatch(records) + + err := slf.CreateBatch(records) + if err != nil { + errCh <- err + return + } } -- Gitblit v1.8.0