scary horror logic with link need test with amo
This commit is contained in:
parent
2429ab34bf
commit
c12eac62a0
2
go.mod
2
go.mod
@ -12,7 +12,7 @@ require (
|
||||
github.com/twmb/franz-go v1.16.1
|
||||
go.uber.org/zap v1.27.0
|
||||
google.golang.org/protobuf v1.33.0
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621150128-4b70022ad675
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621172746-5cbeb2b88f0a
|
||||
)
|
||||
|
||||
require (
|
||||
|
2
go.sum
2
go.sum
@ -140,3 +140,5 @@ penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621103513-961
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621103513-9616b086fa4a/go.mod h1:n66zm88Dh12+idyfqh0vU5nd9BZYxM6Pv0XYnmy0398=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621150128-4b70022ad675 h1:w9I3PSvR3XsxL48fgyi65zLhbnpJXUknKz3ZqkCltzI=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621150128-4b70022ad675/go.mod h1:n66zm88Dh12+idyfqh0vU5nd9BZYxM6Pv0XYnmy0398=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621172746-5cbeb2b88f0a h1:all9W8RrLcr+47k6dAQgdyjVGuXbO3H29AkMGMTcJ28=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240621172746-5cbeb2b88f0a/go.mod h1:n66zm88Dh12+idyfqh0vU5nd9BZYxM6Pv0XYnmy0398=
|
||||
|
@ -35,8 +35,8 @@ type ContactResponse struct {
|
||||
}
|
||||
|
||||
type LinkedContactReq struct {
|
||||
EntityID int `json:"entity_id"` // ID главной сущности
|
||||
ToEntityID int `json:"to_entity_id"` // ID связанной сущности
|
||||
EntityID int32 `json:"entity_id"` // ID главной сущности
|
||||
ToEntityID int32 `json:"to_entity_id"` // ID связанной сущности
|
||||
ToEntityType string `json:"to_entity_type"` // Тип связанной сущности (leads, contacts, companies, customers, catalog_elements)
|
||||
Metadata struct {
|
||||
CatalogID int `json:"catalog_id"` // ID каталога
|
||||
|
@ -414,6 +414,50 @@ func (wc *PostDeals) chooseAndCreateContact(ctx context.Context, result model.Am
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var phoneContactID, emailContactID int32
|
||||
var phoneID int64 /*emailID*/
|
||||
for _, contactVariants := range existingContacts {
|
||||
for _, contact := range contactVariants {
|
||||
if contact.Field == resultInfo.Phone {
|
||||
phoneContactID = contact.AmoID
|
||||
phoneID = contact.ID
|
||||
}
|
||||
if contact.Field == resultInfo.Email {
|
||||
emailContactID = contact.AmoID
|
||||
//emailID = contact.ID
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if phoneContactID != 0 && emailContactID != 0 && phoneContactID != emailContactID {
|
||||
// делаем обновление телефона там где уже есть email
|
||||
var valuePhone []models.FieldsValues
|
||||
valuePhone = tools.AddContactFields(valuePhone, resultInfo.Phone, model.TypeContactPhone, contactRuleMap)
|
||||
|
||||
_, err := wc.amoClient.UpdateContact(models.CreateContactReq{
|
||||
CustomFieldsValues: valuePhone,
|
||||
}, result.SubDomain, result.AccessToken, emailContactID)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
err = wc.amoRepo.AmoRepo.UpdateAmoContact(ctx, phoneID, resultInfo.Phone, emailContactID)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
_, err = wc.amoClient.LinkedContactToContact(models.LinkedContactReq{
|
||||
EntityID: emailContactID,
|
||||
ToEntityID: phoneContactID,
|
||||
ToEntityType: string(model.ContactsType),
|
||||
}, result.SubDomain, result.AccessToken)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return emailContactID, nil
|
||||
}
|
||||
}
|
||||
|
||||
// 2 ищем контакт только по телефону
|
||||
@ -452,7 +496,6 @@ func (wc *PostDeals) chooseAndCreateContact(ctx context.Context, result model.Am
|
||||
return contact.AmoID, nil
|
||||
}
|
||||
if emailExists && resultInfo.Email != "" {
|
||||
|
||||
// email не пустой значит это новый контакт создаем если наш email тоже не пустой
|
||||
name := resultInfo.Name
|
||||
if name == "" {
|
||||
|
Loading…
Reference in New Issue
Block a user