package crm import "server/global" type Customer struct { global.GVA_MODEL Name string `json:"name" form:"name" gorm:"comment:客户名称"` Phone string `json:"phone" form:"phone" gorm:"comment:客户电话"` Email string `json:"email" form:"email" gorm:"comment:客户邮箱"` Company string `json:"company" form:"company" gorm:"comment:公司"` Posts string `json:"posts" form:"posts" gorm:"comment:职位"` Genre int `json:"genre" form:"genre" gorm:"comment:;客户类型"` CustomerGenre CustomerGenre `json:"customerGenre" form:"customerGenre" gorm:"foreignKey:Genre;references:id;"` Progress []Progress `json:"progress" form:"progress" gorm:"foreignKey:CustomerId"` SupervisorId *uint `json:"supervisorId" form:"supervisorId" gorm:"comment:直系上司id"` Supervisor *Customer `json:"supervisor" form:"supervisor" gorm:"foreignKey:SupervisorId;references:ID"` Subordinates []Customer `json:"subordinates" form:"subordinates" gorm:"foreignKey:SupervisorId"` } func (Customer) TableName() string { return "customer" } func QueryAllCustomers() (customers []Customer, err error) { err = global.GVA_DB.Model(&Customer{}).Preload("Progress").Preload("Supervisor").Preload("CustomerGenre").Preload("Subordinates").Find(&customers).Error return customers, err } func QueryCustomerList(limit, offset, genre int, name string) (customers []Customer, total int64, err error) { db := global.GVA_DB.Model(&Customer{}) if name != "" { db = db.Where("name LIKE ?", "%"+name+"%") } if genre != 0 { db = db.Where("genre = ?", genre) } err = db.Count(&total).Error if err != nil { return } err = db.Limit(limit).Offset(offset).Preload("Progress").Preload("Supervisor").Preload("CustomerGenre").Preload("Subordinates").Find(&customers).Error return } func (c Customer) CreateCustomer() error { return global.GVA_DB.Create(&c).Error } func (c Customer) UpdateCustomer() error { return global.GVA_DB.Model(&Customer{}).Where("id = ?", c.ID).Updates(&c).Error } func DeleteCustomer(id int) error { return global.GVA_DB.Unscoped().Delete(&Customer{}, id).Error }