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