From 5f815df137f6edaaaddf869097b7e2718324acc6 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 13 十月 2023 13:53:22 +0800
Subject: [PATCH] 跟进记录简单数据权限

---
 service/contact.go |   76 ++++++++++++++++++++++----------------
 1 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/service/contact.go b/service/contact.go
index 5aeb451..daab40e 100644
--- a/service/contact.go
+++ b/service/contact.go
@@ -3,6 +3,7 @@
 import (
 	"aps_crm/model"
 	"aps_crm/pkg/ecode"
+	"aps_crm/pkg/mysqlx"
 	"gorm.io/gorm"
 )
 
@@ -15,15 +16,14 @@
 		return code
 	}
 
-	tx := model.NewContactSearch().Orm.Begin()
-
+	tx := mysqlx.GetDB().Begin()
 	// check isFirst
 	errCode := setFirstContact(tx, contact)
 	if errCode != ecode.OK {
 		return errCode
 	}
 
-	err := model.NewContactSearch().Create(contact)
+	err := model.NewContactSearch(tx).Create(contact)
 	if err != nil {
 		tx.Rollback()
 		return ecode.ContactExist
@@ -33,33 +33,9 @@
 	return ecode.OK
 }
 
-func (ContactService) DeleteContact(id int) int {
-	// check contact exist
-	_, err := model.NewContactSearch().SetId(id).First()
-	if err != nil {
-		return ecode.ContactNotExist
-	}
-
-	// delete contact
-	err = model.NewContactSearch().SetId(id).Delete()
-	if err != nil {
-		return ecode.ContactDeleteErr
-	}
-	return ecode.OK
-}
-
-func (ContactService) GetContactList() ([]*model.Contact, int) {
-	// get contact list
-	contacts, err := model.NewContactSearch().FindAll()
-	if err != nil {
-		return nil, ecode.ContactListErr
-	}
-	return contacts, ecode.OK
-}
-
 func (ContactService) UpdateContact(contact *model.Contact) int {
 	// check contact exist
-	_, err := model.NewContactSearch().SetId(contact.Id).First()
+	_, err := model.NewContactSearch(nil).SetId(contact.Id).First()
 	if err != nil {
 		return ecode.ContactNotExist
 	}
@@ -69,14 +45,14 @@
 		return code
 	}
 
-	tx := model.NewContactSearch().Orm.Begin()
+	tx := mysqlx.GetDB().Begin()
 	code = setFirstContact(tx, contact)
 	if code != ecode.OK {
 		return code
 	}
 
 	// update contact
-	err = model.NewContactSearch().SetId(contact.Id).Update(contact)
+	err = model.NewContactSearch(tx).SetId(contact.Id).Update(contact)
 	if err != nil {
 		tx.Rollback()
 		return ecode.ContactUpdateErr
@@ -100,7 +76,7 @@
 
 func setFirstContact(tx *gorm.DB, contact *model.Contact) int {
 	if contact.IsFirst && contact.ClientId != 0 {
-		err := model.NewContactSearch().SetClientId(contact.ClientId).UpdateByMap(map[string]interface{}{
+		err := model.NewContactSearch(tx).SetClientId(contact.ClientId).UpdateByMap(map[string]interface{}{
 			"is_first": false,
 		})
 		if err != nil {
@@ -114,7 +90,7 @@
 
 // CheckContactExist check contact exist
 func CheckContactExist(id int) int {
-	tmp, err := model.NewContactSearch().SetId(id).First()
+	tmp, err := model.NewContactSearch(nil).SetId(id).First()
 	if err != nil {
 		return ecode.ContactNotExist
 	}
@@ -125,3 +101,39 @@
 
 	return ecode.OK
 }
+
+func (ContactService) GetContactList(page, pageSize int, data map[string]interface{}) ([]*model.ContactDetail, int64, int) {
+	// get contact list
+	contacts, total, err := model.NewContactSearch(nil).SetPage(page, pageSize).SetSearchMap(data).FindAll()
+	if err != nil {
+		return nil, 0, ecode.ContactListErr
+	}
+	return contacts, total, ecode.OK
+}
+
+func (ContactService) DeleteContact(ids []int) int {
+	// delete client
+	err := model.NewContactSearch(nil).SetIds(ids).Delete()
+	if err != nil {
+		return ecode.ContactDeleteErr
+	}
+	return ecode.OK
+}
+
+func (ContactService) Assign(ids []int, memberId int) int {
+	// check contact exist
+	//errCode := CheckContactExist(id)
+	//if errCode != ecode.OK {
+	//	return errCode
+	//}
+
+	// assign contact
+	err := model.NewContactSearch(nil).SetIds(ids).UpdateByMap(map[string]interface{}{
+		"member_id": memberId,
+	})
+	if err != nil {
+		return ecode.ContactAssignErr
+	}
+
+	return ecode.OK
+}

--
Gitblit v1.8.0