From d8ac88cfb72e3aac3a89c3cfe77774be3024a24c Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 11 八月 2023 17:54:43 +0800
Subject: [PATCH] update
---
model/serviceFeeManage.go | 101 +++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 78 insertions(+), 23 deletions(-)
diff --git a/model/serviceFeeManage.go b/model/serviceFeeManage.go
index 16b6ab4..39f7e9a 100644
--- a/model/serviceFeeManage.go
+++ b/model/serviceFeeManage.go
@@ -1,6 +1,7 @@
package model
import (
+ "aps_crm/constvar"
"aps_crm/pkg/mysqlx"
"gorm.io/gorm"
"time"
@@ -8,25 +9,25 @@
type (
ServiceFeeManage struct {
- Id int `json:"id" gorm:"column:id;primaryKey;autoIncrement;not null"`
- ClientId int `json:"client_id" gorm:"column:client_id;type:int(11);comment:瀹㈡埛ID"`
- Client *Client `json:"client" gorm:"foreignKey:ClientId"`
- MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:鍛樺伐ID"`
- LatestDate time.Time `json:"latest_date" gorm:"column:latest_date;type:datetime;comment:鏈�鏅氭湇鍔℃椂闂�"`
- Remark string `json:"remark" gorm:"column:remark;type:varchar(255);comment:澶囨敞"`
- File string `json:"file" gorm:"column:file;type:varchar(255);comment:鏂囦欢"`
+ Id int `json:"id" gorm:"column:id;primaryKey;autoIncrement;not null"`
+ ClientId int `json:"client_id" gorm:"column:client_id;type:int(11);comment:瀹㈡埛ID"`
+ Client *Client `json:"client" gorm:"foreignKey:ClientId"`
+ MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:鍛樺伐ID"`
+ LatestDate *CustomTime `json:"latest_date" gorm:"column:latest_date;type:datetime;comment:鏈�鏅氭湇鍔℃椂闂�"`
+ Remark string `json:"remark" gorm:"column:remark;type:varchar(255);comment:澶囨敞"`
+ File string `json:"file" gorm:"column:file;type:varchar(255);comment:鏂囦欢"`
gorm.Model `json:"-"`
}
ServiceFeeManageSearch struct {
ServiceFeeManage
-
- Orm *gorm.DB
- Keyword string
- OrderBy string
- PageNum int
- PageSize int
-
+ Orm *gorm.DB
+ QueryClass constvar.ServiceFeeQueryClass
+ KeywordType constvar.ServiceFeeKeywordType
+ Keyword string
+ OrderBy string
+ PageNum int
+ PageSize int
}
)
@@ -46,14 +47,54 @@
func (slf *ServiceFeeManageSearch) build() *gorm.DB {
var db = slf.Orm.Model(&ServiceFeeManage{})
- if slf.Keyword != "" {
- db = db.Where("name LIKE ?", "%"+slf.Keyword+"%")
- }
if slf.Id != 0 {
db.Where("id = ?", slf.Id)
}
if slf.ClientId != 0 {
db.Where("client_id = ?", slf.ClientId)
+ }
+ switch slf.QueryClass {
+ case constvar.ServiceFeeQueryClassExpireLessThen60Days:
+ db = db.Where("latest_date > ? and latest_date < ?", time.Now(), time.Now().AddDate(0, 0, 60))
+ case constvar.ServiceFeeQueryClassExpireLessThen30Days:
+ db = db.Where("latest_date > ? and latest_date < ?", time.Now(), time.Now().AddDate(0, 0, 30))
+ case constvar.ServiceFeeQueryClassExpireAboutTo60Day:
+ db = db.Where("latest_date = ?", time.Now().AddDate(0, 0, -60))
+ case constvar.ServiceFeeQueryClassExpireAboutTo30Day:
+ db = db.Where("latest_date = ?", time.Now().AddDate(0, 0, -30))
+ case constvar.ServiceFeeQueryClassExpired:
+ db = db.Where("latest_date < ?", time.Now())
+ case constvar.ServiceFeeQueryClassNoService:
+ db = db.Where("latest_date < ?", time.Now().AddDate(0, 0, -60))
+
+ }
+
+ switch slf.KeywordType {
+ case constvar.ServiceFeeKeywordCustomerName:
+ db.Joins("left join clients on clients.id = service_fee_manage.client_id")
+ db = db.Where("clients.name = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordCustomerType:
+ db.Joins("left join clients on clients.id = service_fee_manage.client_id")
+ db = db.Where("clients.client_type_id = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordSalesPrincipal:
+ db.Joins("left join clients on clients.id = service_fee_manage.client_id")
+ db = db.Where("clients.member_id = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordCustomerScale:
+ db.Joins("left join clients on clients.id = service_fee_manage.client_id")
+ db = db.Where("clients.enterprise_scale_id = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordClientLevel:
+ db.Joins("left join clients on clients.id = service_fee_manage.client_id")
+ db = db.Where("clients.client_level_id = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordCustomerNo:
+ db.Joins("left join clients on clients.id = service_fee_manage.client_id")
+ db = db.Where("clients.number = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordCustomerStatus:
+ db.Joins("left join clients on clients.id = service_fee_manage.client_id")
+ db = db.Where("clients.client_status_id = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordServiceEndDate:
+ db = db.Where("latest_date = ?", slf.Keyword)
+ case constvar.ServiceFeeKeywordProductName:
+ //todo
}
return db
@@ -76,6 +117,21 @@
func (slf *ServiceFeeManageSearch) SetId(id int) *ServiceFeeManageSearch {
slf.Id = id
+ return slf
+}
+
+func (slf *ServiceFeeManageSearch) SetKeywordType(keyword constvar.ServiceFeeKeywordType) *ServiceFeeManageSearch {
+ slf.KeywordType = keyword
+ return slf
+}
+
+func (slf *ServiceFeeManageSearch) SetQueryClass(queryClass constvar.ServiceFeeQueryClass) *ServiceFeeManageSearch {
+ slf.QueryClass = queryClass
+ return slf
+}
+
+func (slf *ServiceFeeManageSearch) SetKeyword(keyword string) *ServiceFeeManageSearch {
+ slf.Keyword = keyword
return slf
}
@@ -105,11 +161,6 @@
return records, total, err
}
-func (slf *ServiceFeeManageSearch) SetKeyword(keyword string) *ServiceFeeManageSearch {
- slf.Keyword = keyword
- return slf
-}
-
func (slf *ServiceFeeManageSearch) SetPage(page, size int) *ServiceFeeManageSearch {
slf.PageNum, slf.PageSize = page, size
return slf
@@ -118,4 +169,8 @@
func (slf *ServiceFeeManageSearch) SetOrder(order string) *ServiceFeeManageSearch {
slf.OrderBy = order
return slf
-}
\ No newline at end of file
+}
+func (slf *ServiceFeeManageSearch) SetIds(ids []int) *ServiceFeeManageSearch {
+ slf.Orm = slf.Orm.Where("id in (?)", ids)
+ return slf
+}
--
Gitblit v1.8.0