From 6acff3ce321e59b03e95fe7143ba45b0c48cd926 Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期一, 14 八月 2023 18:00:13 +0800 Subject: [PATCH] fix --- service/client.go | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 52 insertions(+), 7 deletions(-) diff --git a/service/client.go b/service/client.go index 5243a3c..523e368 100644 --- a/service/client.go +++ b/service/client.go @@ -3,15 +3,33 @@ import ( "aps_crm/model" "aps_crm/pkg/ecode" + "aps_crm/pkg/mysqlx" ) type ClientService struct{} -func (ClientService) AddClient(client *model.Client) int { - err := model.NewClientSearch(nil).Create(client) - if err != nil { - return ecode.ClientExist +func (ClientService) AddClient(client *model.Client, sId int) int { + if sId == 0 { + err := model.NewClientSearch(nil).Create(client) + if err != nil { + return ecode.ClientExist + } + } else { + tx := mysqlx.GetDB().Begin() + err := model.NewClientSearch(tx).Create(client) + if err != nil { + tx.Rollback() + return ecode.ClientExist + } + + err = model.NewSalesLeadsSearch(tx).SetId(sId).Delete() + if err != nil { + tx.Rollback() + return ecode.ClientExist + } + tx.Commit() } + return ecode.OK } @@ -33,9 +51,36 @@ } // update client - err := model.NewClientSearch(nil).SetId(client.Id).Update(client) - if err != nil { - return ecode.ClientUpdateErr + if len(client.Contacts) == 0 { + err := model.NewClientSearch(nil).SetId(client.Id).Update(client) + if err != nil { + return ecode.ClientUpdateErr + } + } else { + tx := mysqlx.GetDB().Begin() + err := model.NewClientSearch(tx).SetId(client.Id).Update(client) + if err != nil { + tx.Rollback() + return ecode.ClientUpdateErr + } + + for _, contact := range client.Contacts { + contact.ClientId = client.Id + if contact.Id == 0 { + err := model.NewContactSearch(tx).Create(&contact) + if err != nil { + tx.Rollback() + return ecode.ClientUpdateErr + } + } else { + err = model.NewContactSearch(tx).SetId(contact.Id).Update(&contact) + if err != nil { + tx.Rollback() + return ecode.ClientUpdateErr + } + } + } + tx.Commit() } return ecode.OK -- Gitblit v1.8.0