wangpengfei
2023-08-10 f2c7c7aa3218cd5ef688975ea9b5a0f3a6e5e74f
model/index.go
@@ -1,108 +1,108 @@
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"
   "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())
         }
      }
   }
}