From d204c9732f7b406a1487d11c79f6c121eea75850 Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期三, 09 八月 2023 19:03:42 +0800 Subject: [PATCH] fix --- service/client.go | 219 ++++++++++++++++++++++++++++++------------------------ 1 files changed, 123 insertions(+), 96 deletions(-) diff --git a/service/client.go b/service/client.go index 48c7df9..523e368 100644 --- a/service/client.go +++ b/service/client.go @@ -1,96 +1,123 @@ -package service - -import ( - "aps_crm/model" - "aps_crm/pkg/ecode" - "aps_crm/pkg/mysqlx" -) - -type ClientService struct{} - -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 -} - -// CheckClientExist check client exist -func CheckClientExist(id int) int { - _, err := model.NewClientSearch(nil).SetId(id).First() - if err != nil { - return ecode.ClientNotExist - } - - return ecode.OK -} - -func (ClientService) UpdateClient(client *model.Client) int { - // check client exist - errCode := CheckClientExist(client.Id) - if errCode != ecode.OK { - return errCode - } - - // update client - err := model.NewClientSearch(nil).SetId(client.Id).Update(client) - if err != nil { - return ecode.ClientUpdateErr - } - - return ecode.OK -} - -func (ClientService) GetClientList(page, pageSize int, data map[string]interface{}) ([]*model.Client, int64, int) { - // get contact list - contacts, total, err := model.NewClientSearch(nil).SetPage(page, pageSize).SetSearchMap(data).Find() - if err != nil { - return nil, 0, ecode.ClientListErr - } - return contacts, total, ecode.OK -} - -func (ClientService) Assign(ids []int, memberId int) int { - // check client exist - //errCode := CheckClientExist(id) - //if errCode != ecode.OK { - // return errCode - //} - - // assign client - err := model.NewClientSearch(nil).SetIds(ids).UpdateByMap(map[string]interface{}{ - "member_id": memberId, - }) - if err != nil { - return ecode.AssignErr - } - - return ecode.OK -} - -func (ClientService) DeleteClient(ids []int) int { - // delete client - err := model.NewClientSearch(nil).SetIds(ids).Delete() - if err != nil { - return ecode.ClientDeleteErr - } - return ecode.OK -} +package service + +import ( + "aps_crm/model" + "aps_crm/pkg/ecode" + "aps_crm/pkg/mysqlx" +) + +type ClientService struct{} + +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 +} + +// CheckClientExist check client exist +func CheckClientExist(id int) int { + _, err := model.NewClientSearch(nil).SetId(id).First() + if err != nil { + return ecode.ClientNotExist + } + + return ecode.OK +} + +func (ClientService) UpdateClient(client *model.Client) int { + // check client exist + errCode := CheckClientExist(client.Id) + if errCode != ecode.OK { + return errCode + } + + // update client + 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 +} + +func (ClientService) GetClientList(page, pageSize int, data map[string]interface{}) ([]*model.Client, int64, int) { + // get contact list + contacts, total, err := model.NewClientSearch(nil).SetPage(page, pageSize).SetSearchMap(data).Find() + if err != nil { + return nil, 0, ecode.ClientListErr + } + return contacts, total, ecode.OK +} + +func (ClientService) Assign(ids []int, memberId int) int { + // check client exist + //errCode := CheckClientExist(id) + //if errCode != ecode.OK { + // return errCode + //} + + // assign client + err := model.NewClientSearch(nil).SetIds(ids).UpdateByMap(map[string]interface{}{ + "member_id": memberId, + }) + if err != nil { + return ecode.AssignErr + } + + return ecode.OK +} + +func (ClientService) DeleteClient(ids []int) int { + // delete client + err := model.NewClientSearch(nil).SetIds(ids).Delete() + if err != nil { + return ecode.ClientDeleteErr + } + return ecode.OK +} -- Gitblit v1.8.0