| | |
| | | "aps_crm/router" |
| | | "aps_crm/service" |
| | | "fmt" |
| | | "github.com/robfig/cron/v3" |
| | | "net/http" |
| | | "os" |
| | | "os/signal" |
| | |
| | | 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()) |
| | | } |
| | |
| | | v1.CloseProductServiceConn() |
| | | service.CloseUserConn() |
| | | |
| | | logx.Infof("aps-admin exited...") |
| | | logx.Infof("aps-crm exited...") |
| | | os.Exit(0) |
| | | } |
| | |
| | | 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 |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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 |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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, "设备安装"}, |
| | |
| | | {5, "设备故障"}, |
| | | {6, "设备良品率低"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | "aps_crm/pkg/logx" |
| | | "aps_crm/pkg/mysqlx" |
| | | "aps_crm/pkg/safe" |
| | | "gorm.io/gorm/schema" |
| | | "sync" |
| | | ) |
| | | |
| | | func Init() error { |
| | |
| | | } |
| | | |
| | | 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(), |
| | |
| | | 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() // 等待所有goroutine完成 |
| | | close(errCh) // 关闭错误通道 |
| | | }() |
| | | |
| | | for err := range errCh { |
| | | if err != nil { |
| | | logx.Errorf("InitDefaultData err: %v", err.Error()) |
| | | } |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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 |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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 |
| | | |
| | | } |
| | | } |
| | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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 |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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, "低"}, |
| | |
| | | {3, "高"}, |
| | | {4, "紧急"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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%"}, |
| | |
| | | {9, "20%"}, |
| | | {10, "10%"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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 |
| | | } |
| | | } |
| | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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, "按年"}, |
| | |
| | | {3, "其他"}, |
| | | {4, "虚拟合同"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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, "未处理"}, |
| | |
| | | {3, "等待回应"}, |
| | | {4, "成功关闭"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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, "电话"}, |
| | |
| | | {4, "上门"}, |
| | | {5, "其他"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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, "轻"}, |
| | |
| | | {3, "较严重"}, |
| | | {4, "特严重"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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%"}, |
| | |
| | | {9, "20%"}, |
| | | {10, "10%"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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小时"}, |
| | |
| | | {5, "2个工作日"}, |
| | | {6, "2个工作日以上"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |
| | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "sync" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | } |
| | | |
| | | // 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%"}, |
| | |
| | | {9, "20%"}, |
| | | {10, "10%"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | |
| | | err := slf.CreateBatch(records) |
| | | if err != nil { |
| | | errCh <- err |
| | | return |
| | | } |
| | | } |