package services import ( "errors" "time" "server/models" "github.com/beego/beego/v2/client/orm" ) func ListContacts(tenantId string, relatedType int, relatedId string) ([]models.Contact, error) { o := orm.NewOrm() var list []models.Contact qs := o.QueryTable(new(models.Contact)).Filter("tenant_id", tenantId).Filter("related_type", relatedType).Filter("related_id", relatedId).Filter("delete_time__isnull", true) _, err := qs.All(&list) return list, err } func CreateContact(m *models.Contact) error { if m.TenantId == "" || m.RelatedType == 0 || m.RelatedId == "" || m.ContactName == "" { return errors.New("缺少必填参数") } o := orm.NewOrm() _, err := o.Insert(m) return err } func UpdateContact(m *models.Contact) error { if m.Id == 0 { return errors.New("id不能为空") } o := orm.NewOrm() existing := models.Contact{Id: m.Id} if err := o.Read(&existing); err != nil { return err } if existing.TenantId != m.TenantId { return errors.New("租户不匹配") } if existing.DeleteTime != nil { return errors.New("记录已删除") } _, err := o.Update(m, "contact_name", "gender", "phone1", "phone2", "phone3", "qq", "wechat", "email", "position", "department", "home_address", "remark", "is_primary") return err } func DeleteContact(id int64, tenantId string) error { if id == 0 { return errors.New("id不能为空") } o := orm.NewOrm() m := models.Contact{Id: id} if err := o.Read(&m); err != nil { return err } if m.TenantId != tenantId { return errors.New("租户不匹配") } if m.DeleteTime != nil { return errors.New("记录已删除") } now := time.Now() m.DeleteTime = &now _, err := o.Update(&m, "delete_time") return err }