12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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
- }
|