From 3369456ac6de01e8703a9b38537406ec7c550bc5 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期五, 25 八月 2023 11:05:45 +0800
Subject: [PATCH] fix
---
model/index.go | 248 ++++++++++++++++++++++++++++---------------------
1 files changed, 140 insertions(+), 108 deletions(-)
diff --git a/model/index.go b/model/index.go
index 04856fa..68f03bf 100644
--- a/model/index.go
+++ b/model/index.go
@@ -1,108 +1,140 @@
-package model
-
-import (
- "aps_crm/conf"
- "aps_crm/pkg/logx"
- "aps_crm/pkg/mysqlx"
- "aps_crm/pkg/safe"
- "gorm.io/gorm/schema"
-)
-
-func Init() error {
- if err := mysqlx.Init(&conf.Conf.Mysql, logx.GetLogger()); err != nil {
- return err
- }
-
- if err := RegisterTables(); err != nil {
- return err
- }
- safe.Go(func() {
- InsertDefaultData()
- })
- return nil
-}
-
-func RegisterTables() error {
- db := mysqlx.GetDB()
- err := db.AutoMigrate(
- User{},
- Menu{},
- JwtBlacklist{},
- Country{},
- Province{},
- City{},
- Client{},
- ClientLevel{},
- ClientOrigin{},
- ClientStatus{},
- ClientType{},
- Contact{},
- EnterpriseNature{},
- EnterpriseScale{},
- FollowRecord{},
- Industry{},
- RegisteredCapital{},
- SaleChance{},
- SalesLeads{},
- SalesSources{},
- SaleStage{},
- SaleType{},
- RegularCustomers{},
- Possibility{},
- Status{},
- Quotation{},
- MasterOrder{},
- SubOrder{},
- Product{},
- SalesDetails{},
- SalesReturn{},
- SalesRefund{},
- Contract{},
- Plan{},
- ServiceContract{},
- OrderManage{},
- ServiceFollowup{},
- CustomerServiceSheet{},
- ServiceFeeManage{},
- Authority{},
- Api{},
- Department{},
- Satisfaction{},
- TimelyRate{},
- SolveRate{},
- IsVisit{},
- IsVisit{},
- ReportSource{},
- OrderType{},
- ServiceContractStatus{},
- ServiceContractType{},
- RefundMethod{},
- IsInvoice{},
- AccountId{},
- SalesReturnStatus{},
- Repository{},
- QuotationStatus{},
- Currency{},
- )
- return err
-}
-
-type InitDefaultData interface {
- InitDefaultData() error
-}
-
-func InsertDefaultData() {
- models := []interface{}{
- NewServiceTypeSearch(),
- NewPriorityLevelSearch(),
- NewSeveritySearch(),
- NewTimeSpentSearch(),
- }
- 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())
- }
- }
- }
-}
+package model
+
+import (
+ "aps_crm/conf"
+ "aps_crm/pkg/logx"
+ "aps_crm/pkg/mysqlx"
+ "aps_crm/pkg/safe"
+ "sync"
+)
+
+func Init() error {
+ if err := mysqlx.Init(&conf.Conf.Mysql, logx.GetLogger()); err != nil {
+ return err
+ }
+
+ if err := RegisterTables(); err != nil {
+ return err
+ }
+ safe.Go(func() {
+ InsertDefaultData()
+ })
+ return nil
+}
+
+func RegisterTables() error {
+ db := mysqlx.GetDB()
+ err := db.AutoMigrate(
+ User{},
+ Menu{},
+ JwtBlacklist{},
+ Country{},
+ Province{},
+ City{},
+ Client{},
+ ClientLevel{},
+ ClientOrigin{},
+ ClientStatus{},
+ ClientType{},
+ Contact{},
+ EnterpriseNature{},
+ EnterpriseScale{},
+ FollowRecord{},
+ Industry{},
+ RegisteredCapital{},
+ SaleChance{},
+ SalesLeads{},
+ SalesSources{},
+ SaleStage{},
+ SaleType{},
+ RegularCustomers{},
+ Possibility{},
+ Status{},
+ Quotation{},
+ MasterOrder{},
+ SubOrder{},
+ Product{},
+ SalesDetails{},
+ SalesReturn{},
+ SalesRefund{},
+ Contract{},
+ Plan{},
+ ServiceContract{},
+ OrderManage{},
+ ServiceFollowup{},
+ CustomerServiceSheet{},
+ ServiceFeeManage{},
+ Authority{},
+ Api{},
+ Department{},
+ Satisfaction{},
+ TimelyRate{},
+ SolveRate{},
+ IsVisit{},
+ IsVisit{},
+ ReportSource{},
+ OrderType{},
+ ServiceContractStatus{},
+ ServiceContractType{},
+ RefundMethod{},
+ IsInvoice{},
+ AccountId{},
+ SalesReturnStatus{},
+ Repository{},
+ QuotationStatus{},
+ Currency{},
+ CollectionProjection{},
+ ContactInformation{},
+ SalesReturn{},
+ SalesRefund{},
+ ServiceCollectionPlan{},
+ Receipt{},
+ )
+ 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{}{
+ NewServiceTypeSearch(),
+ NewPriorityLevelSearch(),
+ NewSeveritySearch(),
+ NewTimeSpentSearch(),
+ NewInvoiceTypeSearch(),
+ NewInvoiceStatusSearch(),
+ NewCourierCompanySearch(),
+ NewServiceContractStatusSearch(),
+ NewServiceContractTypeSearch(),
+ NewServiceOrderStatusSearch(),
+ NewSatisfactionSearch(),
+ NewSolveRateSearch(),
+ NewIsVisitSearch(),
+ NewTimelyRateSearch(),
+ NewFaultTypeSearch(),
+ NewRepositorySearch(),
+ }
+
+ for _, model := range models {
+ if id, ok := model.(InitDefaultData); ok {
+ 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())
+ }
+ }
+}
--
Gitblit v1.8.0