From 9c2489c0c360c8dda36d3cbe1dba79222096b2dd Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期一, 07 八月 2023 10:16:39 +0800
Subject: [PATCH] Merge branch 'master' into fly

---
 model/serviceFollowup.go |   41 +++++++++++++++++++++++++++++------------
 1 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/model/serviceFollowup.go b/model/serviceFollowup.go
index 118ae24..d2d4ada 100644
--- a/model/serviceFollowup.go
+++ b/model/serviceFollowup.go
@@ -1,6 +1,7 @@
 package model
 
 import (
+	"aps_crm/constvar"
 	"aps_crm/pkg/mysqlx"
 	"gorm.io/gorm"
 )
@@ -12,6 +13,7 @@
 		Number               string               `json:"number" gorm:"column:number;type:varchar(255);comment:鍚堝悓缂栧彿"`
 		ContactId            int                  `json:"contactId" gorm:"column:contact_id;type:int;comment:鑱旂郴浜篿d"`
 		ServiceId            int                  `json:"serviceId" gorm:"column:service_id;type:int;comment:瀹㈡埛鏈嶅姟鍗昳d"`
+		ServiceOrder         ServiceOrder         `gorm:"foreignKey:ServiceId"`
 		CustomerServiceSheet CustomerServiceSheet `json:"customerServiceSheet" gorm:"foreignKey:ServiceId"`
 		MemberId             int                  `json:"memberId" gorm:"column:member_id;type:int;comment:鏈嶅姟浜哄憳id"`
 		PlanId               int                  `json:"planId" gorm:"column:plan_id;type:int;comment:鏈嶅姟璁″垝id"`
@@ -28,13 +30,12 @@
 
 	ServiceFollowupSearch struct {
 		ServiceFollowup
-
-				Orm      *gorm.DB
-		Keyword  string
-		OrderBy  string
-		PageNum  int
-		PageSize int
-
+		Orm         *gorm.DB
+		KeywordType constvar.ServiceFollowupKeywordType
+		Keyword     interface{}
+		OrderBy     string
+		PageNum     int
+		PageSize    int
 	}
 )
 
@@ -50,11 +51,24 @@
 
 func (slf *ServiceFollowupSearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&ServiceFollowup{})
-	if slf.Keyword != "" {
-		db = db.Where("name LIKE ?", "%"+slf.Keyword+"%")
-	}
 	if slf.Id != 0 {
 		db = db.Where("id = ?", slf.Id)
+	}
+
+	switch slf.KeywordType {
+	case constvar.ServiceFollowupKeywordFollowupNo:
+		db = db.Where("number = ?", slf.Keyword)
+	case constvar.ServiceFollowupKeywordCustomerName:
+		db = db.Where("client_id = ?", slf.Keyword)
+	case constvar.ServiceFollowupKeywordContactName:
+		db = db.Where("contact_id = ?", slf.Keyword)
+	case constvar.ServiceFollowupKeywordCustomerServiceNo:
+		db = db.Where("service_id = ?", slf.Keyword)
+	case constvar.ServiceFollowupKeywordVisitor:
+		db = db.Where("member_id = ?", slf.Keyword)
+	case constvar.ServiceFollowupKeywordSatisfactionDegree:
+		db = db.Where("satisfaction_id = ?", slf.Keyword)
+
 	}
 
 	return db
@@ -97,7 +111,7 @@
 		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
 	}
 
-	err := db.Preload("CustomerServiceSheet").Find(&records).Error
+	err := db.Preload("CustomerServiceSheet").Preload("ServiceOrder").Find(&records).Error
 	return records, total, err
 }
 
@@ -106,7 +120,10 @@
 	return slf
 }
 
-// 鍙兘鎬� 甯佺 褰撳墠鐘舵�侊紙閿�鍞満浼氾級
+func (slf *ServiceFollowupSearch) SetKeywordType(keyword constvar.ServiceFollowupKeywordType) *ServiceFollowupSearch {
+	slf.KeywordType = keyword
+	return slf
+}
 
 func (slf *ServiceFollowupSearch) SetKeyword(keyword string) *ServiceFollowupSearch {
 	slf.Keyword = keyword

--
Gitblit v1.8.0