customer.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package crm
  2. import "server/global"
  3. type Customer struct {
  4. global.GVA_MODEL
  5. Name string `json:"name" form:"name" gorm:"comment:客户名称"`
  6. Phone string `json:"phone" form:"phone" gorm:"comment:客户电话"`
  7. Email string `json:"email" form:"email" gorm:"comment:客户邮箱"`
  8. Company string `json:"company" form:"company" gorm:"comment:公司"`
  9. Posts string `json:"posts" form:"posts" gorm:"comment:职位"`
  10. Genre int `json:"genre" form:"genre" gorm:"comment:;客户类型"`
  11. CustomerGenre CustomerGenre `json:"customerGenre" form:"customerGenre" gorm:"foreignKey:Genre;references:id;"`
  12. Progress []Progress `json:"progress" form:"progress" gorm:"foreignKey:CustomerId"`
  13. SupervisorId *uint `json:"supervisorId" form:"supervisorId" gorm:"comment:直系上司id"`
  14. Supervisor *Customer `json:"supervisor" form:"supervisor" gorm:"foreignKey:SupervisorId;references:ID"`
  15. Subordinates []Customer `json:"subordinates" form:"subordinates" gorm:"foreignKey:SupervisorId"`
  16. }
  17. func (Customer) TableName() string {
  18. return "customer"
  19. }
  20. func QueryAllCustomers() (customers []Customer, err error) {
  21. err = global.GVA_DB.Model(&Customer{}).Preload("Progress").Preload("Supervisor").Preload("CustomerGenre").Preload("Subordinates").Find(&customers).Error
  22. return customers, err
  23. }
  24. func QueryCustomerList(limit, offset, genre int, name string) (customers []Customer, total int64, err error) {
  25. db := global.GVA_DB.Model(&Customer{})
  26. if name != "" {
  27. db = db.Where("name LIKE ?", "%"+name+"%")
  28. }
  29. if genre != 0 {
  30. db = db.Where("genre = ?", genre)
  31. }
  32. err = db.Count(&total).Error
  33. if err != nil {
  34. return
  35. }
  36. err = db.Limit(limit).Offset(offset).Preload("Progress").Preload("Supervisor").Preload("CustomerGenre").Preload("Subordinates").Find(&customers).Error
  37. return
  38. }
  39. func (c Customer) CreateCustomer() error {
  40. return global.GVA_DB.Create(&c).Error
  41. }
  42. func (c Customer) UpdateCustomer() error {
  43. return global.GVA_DB.Model(&Customer{}).Where("id = ?", c.ID).Updates(&c).Error
  44. }
  45. func DeleteCustomer(id int) error {
  46. return global.GVA_DB.Unscoped().Delete(&Customer{}, id).Error
  47. }