From 530fed8ec225453572d57b15c200ab062c335457 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 01 十一月 2023 19:20:21 +0800 Subject: [PATCH] 公海member_id使用0 --- model/serviceOrder.go | 189 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 138 insertions(+), 51 deletions(-) diff --git a/model/serviceOrder.go b/model/serviceOrder.go index 53fea15..7af464a 100644 --- a/model/serviceOrder.go +++ b/model/serviceOrder.go @@ -5,6 +5,7 @@ "aps_crm/pkg/mysqlx" "errors" "fmt" + "github.com/shopspring/decimal" "gorm.io/gorm" "gorm.io/gorm/clause" ) @@ -12,61 +13,67 @@ type ( // ServiceOrder 鏈嶅姟鍗� ServiceOrder struct { - Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` - ServiceNumber string `gorm:"column:service_number;type:varchar(255);not null;default:'';comment:'鏈嶅姟鍗曠紪鍙�'" json:"serviceNumber"` // 鏈嶅姟鍗曠紪鍙� - ClientId int `gorm:"column:client_id;type:int;not null;default:0;comment:'瀹㈡埛id'" json:"clientId"` // 瀹㈡埛id - Client Client `gorm:"foreignKey:ClientId"` - ContractId int `gorm:"column:contract_id;type:int;not null;default:0;comment:'鍚堝悓id'" json:"contractId"` // 鍚堝悓id - Contract Contract `gorm:"foreignKey:ContractId"` - OrderId int `gorm:"column:order_id;type:int;not null;default:0;comment:'閿�鍞鍗昳d'" json:"orderId"` // 閿�鍞鍗昳d - OrderManage OrderManage `gorm:"foreignKey:OrderId"` - Subject string `gorm:"column:subject;type:varchar(255);not null;default:'';comment:'涓婚'" json:"subject"` // 涓婚 - ProductId int `gorm:"column:product_id;type:int;not null;default:0;comment:'浜у搧id'" json:"productId"` // 浜у搧id - Product Product `gorm:"foreignKey:ProductId"` - ServiceTypeId int `gorm:"column:service_type_id;type:int;not null;default:0;comment:'鏈嶅姟鏂瑰紡id'" json:"serviceTypeId"` // 鏈嶅姟鏂瑰紡id - ServiceType ServiceType `gorm:"foreignKey:ServiceTypeId"` - ServiceManId int `gorm:"column:service_man_id;type:int;not null;default:0;comment:'鏈嶅姟浜哄憳'" json:"serviceManId"` // 鏈嶅姟浜哄憳 - ContactId int `gorm:"linkman_id" json:"contactId"` // 鑱旂郴浜篿d - Contact Contact `gorm:"foreignKey:ContactId"` - Address string `gorm:"column:address;type:varchar(255);not null;default:'';comment:'涓婇棬鍦板潃'" json:"address"` // 涓婇棬鍦板潃 - PriorityLevelId int `gorm:"column:priority_level_id;type:int;not null;default:0;comment:'浼樺厛绾у埆id'" json:"priorityLevelId"` // 浼樺厛绾у埆id - PriorityLevel PriorityLevel `gorm:"foreignKey:PriorityLevelId"` - AppointmentTime string `gorm:"appointment_time" json:"appointmentTime"` // 棰勭害涓婇棬鏃堕棿 - SaleChanceId int `gorm:"column:sale_chance_id;type:int;not null;default:0;comment:'閿�鍞満浼歩d'" json:"saleChanceId"` // 閿�鍞満浼歩d - SaleChance SaleChance `gorm:"foreignKey:SaleChanceId"` - FaultTypeId int `gorm:"column:severity_id;type:int;not null;default:0;comment:'鏁呴殰绫诲埆id'" json:"faultTypeId"` // 鏁呴殰绫诲埆id - FaultType FaultType `gorm:"foreignKey:FaultTypeId"` - SeverityId int `gorm:"column:severity_id;type:int;not null;default:0;comment:'涓ラ噸绋嬪害id'" json:"severity"` // 涓ラ噸绋嬪害id - Severity Severity `gorm:"foreignKey:SeverityId"` - Status int `gorm:"status" json:"status"` // 澶勭悊鐘舵�� - ExpectTime string `gorm:"column:expect_time;type:varchar(255);not null;default:'';comment:'甯屾湜澶勭悊鏃堕棿'" json:"expectTime"` // 甯屾湜澶勭悊鏃堕棿 - RealTime string `gorm:"column:real_time;type:varchar(255);not null;default:'';comment:'瀹為檯澶勭悊鏃堕棿'" json:"realTime"` // 瀹為檯澶勭悊鏃堕棿 - CarFare float64 `gorm:"car_fare" json:"carFare"` // 浜ら�氳垂 - ChargeAmount float64 `gorm:"charge_amount" json:"chargeAmount"` // 鏀惰垂閲戦 - TimeSpentId int `gorm:"column:time_spent_id;type:int;not null;default:0;comment:'鑺辫垂鏃堕棿'" json:"timeSpentId"` // 鑺辫垂鏃堕棿 - TimeSpent TimeSpent `gorm:"foreignKey:TimeSpentId"` - FaqId int `gorm:"column:problem_id;type:int;not null;default:0;comment:'甯歌闂id'" json:"faqId"` // 甯歌闂id - Faq Faq `gorm:"foreignKey:FaqId"` - ProblemDesc string `gorm:"column:subject;type:varchar(255);not null;default:'';comment:'涓婚'problem_desc" json:"problemDesc"` // 闂鎻忚堪 - Solution string `gorm:"column:solution;type:varchar(255);not null;default:'';comment:'瑙e喅鏂规硶'" json:"solution"` // 瑙e喅鏂规硶 - SolutionRemark string `gorm:"column:solution_remark;type:varchar(255);not null;default:'';comment:'鍐呴儴澶囨敞'" json:"solutionRemark"` // 鍐呴儴澶囨敞 - Remark string `gorm:"column:remark;type:varchar(255);not null;default:'';comment:'澶囨敞'" json:"remark"` // 澶囨敞 + Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` + ServiceNumber string `gorm:"column:service_number;type:varchar(255);not null;default:'';comment:鏈嶅姟鍗曠紪鍙�" json:"serviceNumber"` // 鏈嶅姟鍗曠紪鍙� + ClientId int `gorm:"column:client_id;type:int;not null;default:0;comment:瀹㈡埛id" json:"clientId"` // 瀹㈡埛id + Client Client `gorm:"foreignKey:ClientId"` + ServiceContractId int `gorm:"column:contract_id;type:int;not null;default:0;comment:鏈嶅姟鍚堝悓id" json:"serviceContractId"` // 鏈嶅姟鍚堝悓id + ServiceContract ServiceContract `gorm:"foreignKey:ServiceContractId"` + SalesDetailsId int `gorm:"column:order_id;type:int;not null;default:0;comment:閿�鍞鍗昳d" json:"salesDetailsId"` // 閿�鍞槑缁唅d + SalesDetails SalesDetails `gorm:"foreignKey:SalesDetailsId"` + Subject string `gorm:"column:subject;type:varchar(255);not null;default:'';comment:涓婚" json:"subject"` // 涓婚 + ProductTypeName string `gorm:"column:product_type_name;type:varchar(255);not null;default:'';comment:浜у搧鍒嗙被鍚嶇О" json:"productTypeName"` // 浜у搧鍒嗙被鍚嶇О + ProductName string `gorm:"column:product_name;type:varchar(255);not null;default:'';comment:浜у搧鍚嶇О" json:"productName"` // 浜у搧鍚嶇О + ServiceTypeId int `gorm:"column:service_type_id;type:int;not null;default:0;comment:鏈嶅姟鏂瑰紡id" json:"serviceTypeId"` // 鏈嶅姟鏂瑰紡id + ServiceType ServiceType `gorm:"foreignKey:ServiceTypeId"` + ServiceManId int `gorm:"column:service_man_id;type:int;not null;default:0;comment:鏈嶅姟浜哄憳" json:"serviceManId"` // 鏈嶅姟浜哄憳 + ServiceMan User `gorm:"foreignKey:ServiceManId" json:"serviceMan"` // 鏈嶅姟浜哄憳 + ContactId int `gorm:"linkman_id" json:"contactId"` // 鑱旂郴浜篿d + Contact Contact `gorm:"foreignKey:ContactId"` + Address string `gorm:"column:address;type:varchar(255);not null;default:'';comment:涓婇棬鍦板潃" json:"address"` // 涓婇棬鍦板潃 + PriorityLevelId int `gorm:"column:priority_level_id;type:int;not null;default:0;comment:浼樺厛绾у埆id" json:"priorityLevelId"` // 浼樺厛绾у埆id + PriorityLevel PriorityLevel `gorm:"foreignKey:PriorityLevelId"` + AppointmentTime string `gorm:"appointment_time" json:"appointmentTime"` // 棰勭害涓婇棬鏃堕棿 + SaleChanceId int `gorm:"column:sale_chance_id;type:int;not null;default:0;comment:閿�鍞満浼歩d" json:"saleChanceId"` // 閿�鍞満浼歩d + SaleChance SaleChance `gorm:"foreignKey:SaleChanceId"` + FaultTypeId int `gorm:"column:severity_id;type:int;not null;default:0;comment:鏁呴殰绫诲埆id" json:"faultTypeId"` // 鏁呴殰绫诲埆id + FaultType FaultType `gorm:"foreignKey:FaultTypeId"` + SeverityId int `gorm:"column:severity_order_id;type:int;not null;default:0;comment:涓ラ噸绋嬪害id" json:"severityId"` // 涓ラ噸绋嬪害id + Severity Severity `gorm:"foreignKey:SeverityId"` + ServiceOrderStatusId int `gorm:"column:service_order_status_id;type:int;not null;default:0;comment:鏈嶅姟鍗曠姸鎬乮d" json:"serviceOrderStatusId"` // 澶勭悊鐘舵�� + ServiceOrderStatus ServiceOrderStatus `gorm:"foreignKey:ServiceOrderStatusId"` + ExpectTime string `gorm:"column:expect_time;type:varchar(255);not null;default:'';comment:甯屾湜澶勭悊鏃堕棿" json:"expectTime"` // 甯屾湜澶勭悊鏃堕棿 + RealTime string `gorm:"column:real_time;type:varchar(255);not null;default:'';comment:瀹為檯澶勭悊鏃堕棿" json:"realTime"` // 瀹為檯澶勭悊鏃堕棿 + CarFare decimal.Decimal `gorm:"column:car_fare;type:decimal(10,2);not null;default:'0.00';comment:甯屾湜澶勭悊鏃堕棿" json:"carFare"` //浜ら�氳垂 // 浜ら�氳垂 + ChargeAmount decimal.Decimal `gorm:"column:charge_amount;type:decimal(10,2);not null;default:'0.00';comment:甯屾湜澶勭悊鏃堕棿" json:"chargeAmount"` //鏀惰垂閲戦 // 鏀惰垂閲戦 + TimeSpentId int `gorm:"column:time_spent_id;type:int;not null;default:0;comment:鑺辫垂鏃堕棿" json:"timeSpentId"` // 鑺辫垂鏃堕棿 + TimeSpent TimeSpent `gorm:"foreignKey:TimeSpentId"` + FaqId int `gorm:"column:faq_id;type:int;not null;default:0;comment:甯歌闂id" json:"faqId"` // 甯歌闂id + Faq Faq `gorm:"foreignKey:FaqId"` + ProblemDesc string `gorm:"column:problem_desc;type:varchar(255);not null;default:'';comment:涓婚" json:"problemDesc"` // 闂鎻忚堪 + Solution string `gorm:"column:solution;type:varchar(255);not null;default:'';comment:瑙e喅鏂规硶" json:"solution"` // 瑙e喅鏂规硶 + SolutionRemark string `gorm:"column:solution_remark;type:varchar(255);not null;default:'';comment:鍐呴儴澶囨敞" json:"solutionRemark"` // 鍐呴儴澶囨敞 + Remark string `gorm:"column:remark;type:varchar(255);not null;default:'';comment:澶囨敞" json:"remark"` // 澶囨敞 + CodeStandID string `json:"codeStandID" gorm:"column:code_stand_id;type:varchar(255);comment:缂栫爜id"` + CrmModel } // ServiceOrderSearch 鏈嶅姟鍗曟悳绱㈡潯浠� ServiceOrderSearch struct { ServiceOrder - Orm *gorm.DB - QueryClass constvar.ServiceOrderQueryClass - KeywordType constvar.ServiceOrderKeywordType - Keyword string - PageNum int - PageSize int - Preload bool + Orm *gorm.DB + QueryClass constvar.ServiceOrderQueryClass + KeywordType constvar.ServiceOrderKeywordType + Keyword string + PageNum int + PageSize int + Preload bool + ServiceManIds []int + Order string } ) -func (ServiceOrder) TableName() string { +func (slf *ServiceOrder) TableName() string { return "service_order" } @@ -81,18 +88,31 @@ if slf.Id != 0 { db = db.Where("id = ?", slf.Id) } + if slf.ServiceContractId != 0 { + db = db.Where("contract_id = ?", slf.ServiceContractId) + } + if slf.SalesDetailsId != 0 { + db = db.Where("order_id = ?", slf.SalesDetailsId) + } + if slf.Order != "" { + db = db.Order(slf.Order) + } if slf.Preload { db = db. Preload("Client"). - Preload("Contract"). - Preload("OrderManage"). - Preload("Product"). + Preload("ServiceContract"). + Preload("SalesDetails"). Preload("ServiceType"). Preload("Contact"). - Preload("SaleChance"). + Preload("ServiceMan"). Preload("PriorityLevel"). + Preload("SaleChance"). + Preload("FaultType"). Preload("Severity"). + Preload("ServiceOrderStatus"). + Preload("TimeSpent"). Preload("Faq") + } switch slf.KeywordType { case constvar.ServiceOrderKeywordClientName: @@ -111,6 +131,13 @@ db = db.Joins("FaultType", clause.LeftJoin).Where("FaultType.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword)) } + if len(slf.ServiceManIds) > 0 { + db = db.Where("service_order.service_man_id in ?", slf.ServiceManIds) + } + if slf.ServiceNumber != "" { + db = db.Where("service_number = ?", slf.ServiceNumber) + } + return db } @@ -121,6 +148,12 @@ func (slf *ServiceOrderSearch) Delete() error { var db = slf.build() + return db.Delete(&ServiceOrder{}).Error +} + +func (slf *ServiceOrderSearch) DeleteByIds(ids []int) error { + var db = slf.build() + db = db.Where("id in ?", ids) return db.Delete(&ServiceOrder{}).Error } @@ -138,6 +171,16 @@ func (slf *ServiceOrderSearch) SetId(id int) *ServiceOrderSearch { slf.Id = id + return slf +} + +func (slf *ServiceOrderSearch) SetServiceContractId(id int) *ServiceOrderSearch { + slf.ServiceContractId = id + return slf +} + +func (slf *ServiceOrderSearch) SetSalesDetailsId(id int) *ServiceOrderSearch { + slf.SalesDetailsId = id return slf } @@ -161,8 +204,23 @@ return slf } +func (slf *ServiceOrderSearch) SetMemberIds(memberIds []int) *ServiceOrderSearch { + slf.ServiceManIds = memberIds + return slf +} + func (slf *ServiceOrderSearch) SetPreload(preload bool) *ServiceOrderSearch { slf.Preload = preload + return slf +} + +func (slf *ServiceOrderSearch) SetOrder(order string) *ServiceOrderSearch { + slf.Order = order + return slf +} + +func (slf *ServiceOrderSearch) SetNumber(number string) *ServiceOrderSearch { + slf.ServiceNumber = number return slf } @@ -205,3 +263,32 @@ err := db.Find(&records).Error return records, total, err } + +func (slf *ServiceOrderSearch) UpdateByMap(data map[string]interface{}) error { + var db = slf.build() + return db.Updates(data).Error +} + +func (slf *ServiceOrderSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *ServiceOrderSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} -- Gitblit v1.8.0