From 7008089d9afcf41b28bb1d27d8923e9dfb031a19 Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期一, 14 八月 2023 10:39:40 +0800 Subject: [PATCH] fix --- model/request/masterOrder.go | 2 api/v1/masterOrder.go | 7 +- model/saleChance.go | 2 service/masterOrder.go | 4 model/quotation.go | 13 ++++ docs/swagger.yaml | 29 +++++---- docs/docs.go | 34 ++++++----- docs/swagger.json | 34 ++++++----- model/masterOrder.go | 47 +++++++++++---- model/request/quotation.go | 2 10 files changed, 108 insertions(+), 66 deletions(-) diff --git a/api/v1/masterOrder.go b/api/v1/masterOrder.go index 1e77b66..eedae04 100644 --- a/api/v1/masterOrder.go +++ b/api/v1/masterOrder.go @@ -98,7 +98,6 @@ ctx.Ok() } - // checkMasterOrderParams // 妫�鏌ヤ富璁㈠崟鍙傛暟 func checkMasterOrderParams(masterOrder request.MasterOrder) (errCode int, masterOrderModel model.MasterOrder) { @@ -145,14 +144,14 @@ return } - masterOrders, total, errCode := masterOrderService.GetMasterOrderList(params.Page, params.PageSize, params.Keyword) + masterOrders, total, errCode := masterOrderService.GetMasterOrderList(params.Page, params.PageSize, params.SearchMap) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.MasterOrderResponse{ - List: masterOrders, + List: masterOrders, Count: int(total), }) -} \ No newline at end of file +} diff --git a/docs/docs.go b/docs/docs.go index 3927227..4490f03 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -12345,6 +12345,10 @@ "serviceOrderStatus": { "$ref": "#/definitions/model.ServiceOrderStatus" }, + "serviceOrderStatusId": { + "description": "澶勭悊鐘舵��", + "type": "integer" + }, "serviceType": { "$ref": "#/definitions/model.ServiceType" }, @@ -12362,10 +12366,6 @@ "solutionRemark": { "description": "鍐呴儴澶囨敞", "type": "string" - }, - "status": { - "description": "澶勭悊鐘舵��", - "type": "integer" }, "subject": { "description": "涓婚", @@ -13994,6 +13994,10 @@ "description": "鏈嶅姟鍗曠紪鍙�", "type": "string" }, + "serviceOrderStatusId": { + "description": "澶勭悊鐘舵��", + "type": "integer" + }, "serviceTypeId": { "description": "鏈嶅姟鏂瑰紡id", "type": "integer" @@ -14009,10 +14013,6 @@ "solutionRemark": { "description": "鍐呴儴澶囨敞", "type": "string" - }, - "status": { - "description": "澶勭悊鐘舵��", - "type": "integer" }, "subject": { "description": "涓婚", @@ -14576,9 +14576,6 @@ "request.GetMasterOrderList": { "type": "object", "properties": { - "keyword": { - "type": "string" - }, "page": { "description": "椤电爜", "type": "integer" @@ -14586,6 +14583,11 @@ "pageSize": { "description": "姣忛〉澶у皬", "type": "integer" + }, + "search_map": { + "description": "鎼滅储鏉′欢: map[string]interface{}{\"name\": \"xxx\"}; {\"number\": \"閿�鍞�诲崟鍙穃", \"client_name\": \"瀹㈡埛鍚嶇О\", \"member_name\": \"閿�鍞礋璐d汉\", \"start_time\": \"寮�濮嬫椂闂碶", \"end_time\": \"缁撴潫鏃堕棿\", \"money\": \"鎬婚噾棰漒", \"member_name\": \"璐熻矗浜篭"}", + "type": "object", + "additionalProperties": true } } }, @@ -14633,7 +14635,7 @@ "type": "integer" }, "searchMap": { - "description": "鎼滅储鏉′欢: map[string]interface{}{\"name\": \"xxx\"}; {\"sale_chance_id\": 閿�鍞嚎绱d}", + "description": "鎼滅储鏉′欢: map[string]interface{}{\"name\": \"xxx\"}; {\"sale_chance_id\": 閿�鍞嚎绱d, \"client_name\": \"瀹㈡埛鍚嶇О\", \"member_name\": \"閿�鍞礋璐d汉\", \"contact_name\": \"鑱旂郴浜篭", \"validity_date\": \"鏈夋晥鏈焅"}", "type": "object", "additionalProperties": true } @@ -17140,6 +17142,10 @@ "description": "鏈嶅姟鍗曠紪鍙�", "type": "string" }, + "serviceOrderStatusId": { + "description": "澶勭悊鐘舵��", + "type": "integer" + }, "serviceTypeId": { "description": "鏈嶅姟鏂瑰紡id", "type": "integer" @@ -17155,10 +17161,6 @@ "solutionRemark": { "description": "鍐呴儴澶囨敞", "type": "string" - }, - "status": { - "description": "澶勭悊鐘舵��", - "type": "integer" }, "subject": { "description": "涓婚", diff --git a/docs/swagger.json b/docs/swagger.json index f142c53..2ca9ff1 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -12333,6 +12333,10 @@ "serviceOrderStatus": { "$ref": "#/definitions/model.ServiceOrderStatus" }, + "serviceOrderStatusId": { + "description": "澶勭悊鐘舵��", + "type": "integer" + }, "serviceType": { "$ref": "#/definitions/model.ServiceType" }, @@ -12350,10 +12354,6 @@ "solutionRemark": { "description": "鍐呴儴澶囨敞", "type": "string" - }, - "status": { - "description": "澶勭悊鐘舵��", - "type": "integer" }, "subject": { "description": "涓婚", @@ -13982,6 +13982,10 @@ "description": "鏈嶅姟鍗曠紪鍙�", "type": "string" }, + "serviceOrderStatusId": { + "description": "澶勭悊鐘舵��", + "type": "integer" + }, "serviceTypeId": { "description": "鏈嶅姟鏂瑰紡id", "type": "integer" @@ -13997,10 +14001,6 @@ "solutionRemark": { "description": "鍐呴儴澶囨敞", "type": "string" - }, - "status": { - "description": "澶勭悊鐘舵��", - "type": "integer" }, "subject": { "description": "涓婚", @@ -14564,9 +14564,6 @@ "request.GetMasterOrderList": { "type": "object", "properties": { - "keyword": { - "type": "string" - }, "page": { "description": "椤电爜", "type": "integer" @@ -14574,6 +14571,11 @@ "pageSize": { "description": "姣忛〉澶у皬", "type": "integer" + }, + "search_map": { + "description": "鎼滅储鏉′欢: map[string]interface{}{\"name\": \"xxx\"}; {\"number\": \"閿�鍞�诲崟鍙穃", \"client_name\": \"瀹㈡埛鍚嶇О\", \"member_name\": \"閿�鍞礋璐d汉\", \"start_time\": \"寮�濮嬫椂闂碶", \"end_time\": \"缁撴潫鏃堕棿\", \"money\": \"鎬婚噾棰漒", \"member_name\": \"璐熻矗浜篭"}", + "type": "object", + "additionalProperties": true } } }, @@ -14621,7 +14623,7 @@ "type": "integer" }, "searchMap": { - "description": "鎼滅储鏉′欢: map[string]interface{}{\"name\": \"xxx\"}; {\"sale_chance_id\": 閿�鍞嚎绱d}", + "description": "鎼滅储鏉′欢: map[string]interface{}{\"name\": \"xxx\"}; {\"sale_chance_id\": 閿�鍞嚎绱d, \"client_name\": \"瀹㈡埛鍚嶇О\", \"member_name\": \"閿�鍞礋璐d汉\", \"contact_name\": \"鑱旂郴浜篭", \"validity_date\": \"鏈夋晥鏈焅"}", "type": "object", "additionalProperties": true } @@ -17128,6 +17130,10 @@ "description": "鏈嶅姟鍗曠紪鍙�", "type": "string" }, + "serviceOrderStatusId": { + "description": "澶勭悊鐘舵��", + "type": "integer" + }, "serviceTypeId": { "description": "鏈嶅姟鏂瑰紡id", "type": "integer" @@ -17143,10 +17149,6 @@ "solutionRemark": { "description": "鍐呴儴澶囨敞", "type": "string" - }, - "status": { - "description": "澶勭悊鐘舵��", - "type": "integer" }, "subject": { "description": "涓婚", diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 8934514..ce56d7b 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1623,6 +1623,9 @@ type: string serviceOrderStatus: $ref: '#/definitions/model.ServiceOrderStatus' + serviceOrderStatusId: + description: 澶勭悊鐘舵�� + type: integer serviceType: $ref: '#/definitions/model.ServiceType' serviceTypeId: @@ -1636,9 +1639,6 @@ solutionRemark: description: 鍐呴儴澶囨敞 type: string - status: - description: 澶勭悊鐘舵�� - type: integer subject: description: 涓婚 type: string @@ -2739,6 +2739,9 @@ serviceNumber: description: 鏈嶅姟鍗曠紪鍙� type: string + serviceOrderStatusId: + description: 澶勭悊鐘舵�� + type: integer serviceTypeId: description: 鏈嶅姟鏂瑰紡id type: integer @@ -2751,9 +2754,6 @@ solutionRemark: description: 鍐呴儴澶囨敞 type: string - status: - description: 澶勭悊鐘舵�� - type: integer subject: description: 涓婚 type: string @@ -3145,14 +3145,18 @@ type: object request.GetMasterOrderList: properties: - keyword: - type: string page: description: 椤电爜 type: integer pageSize: description: 姣忛〉澶у皬 type: integer + search_map: + additionalProperties: true + description: '鎼滅储鏉′欢: map[string]interface{}{"name": "xxx"}; {"number": "閿�鍞�诲崟鍙�", + "client_name": "瀹㈡埛鍚嶇О", "member_name": "閿�鍞礋璐d汉", "start_time": "寮�濮嬫椂闂�", "end_time": + "缁撴潫鏃堕棿", "money": "鎬婚噾棰�", "member_name": "璐熻矗浜�"}' + type: object type: object request.GetOrderManageList: properties: @@ -3187,7 +3191,8 @@ searchMap: additionalProperties: true description: '鎼滅储鏉′欢: map[string]interface{}{"name": "xxx"}; {"sale_chance_id": - 閿�鍞嚎绱d}' + 閿�鍞嚎绱d, "client_name": "瀹㈡埛鍚嶇О", "member_name": "閿�鍞礋璐d汉", "contact_name": "鑱旂郴浜�", + "validity_date": "鏈夋晥鏈�"}' type: object type: object request.GetSaleChanceList: @@ -4887,6 +4892,9 @@ serviceNumber: description: 鏈嶅姟鍗曠紪鍙� type: string + serviceOrderStatusId: + description: 澶勭悊鐘舵�� + type: integer serviceTypeId: description: 鏈嶅姟鏂瑰紡id type: integer @@ -4899,9 +4907,6 @@ solutionRemark: description: 鍐呴儴澶囨敞 type: string - status: - description: 澶勭悊鐘舵�� - type: integer subject: description: 涓婚 type: string diff --git a/model/masterOrder.go b/model/masterOrder.go index 56550f8..6231b0b 100644 --- a/model/masterOrder.go +++ b/model/masterOrder.go @@ -23,11 +23,11 @@ MasterOrderSearch struct { MasterOrder - Orm *gorm.DB - Keyword string - OrderBy string - PageNum int - PageSize int + Orm *gorm.DB + SearchMap map[string]interface{} + OrderBy string + PageNum int + PageSize int } ) @@ -43,11 +43,32 @@ func (slf *MasterOrderSearch) build() *gorm.DB { var db = slf.Orm.Model(&MasterOrder{}) - if slf.Keyword != "" { - db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") - } if slf.Id != 0 { db = db.Where("id = ?", slf.Id) + } + + if len(slf.SearchMap) > 0 { + for key, value := range slf.SearchMap { + switch v := value.(type) { + case string: + if key == "number" || key == "start_time" || key == "end_time" { + db = db.Where(key+" = ?", v) + } + + if key == "client_name" { + db = db.Joins("Client").Where("client.name = ?", v) + } + + if key == "member_name" { + db = db.Joins("User").Where("User.username = ?", v) + } + case int: + case float64: + if key == "client_id" || key == "member_id" || key == "money" { + db = db.Where(key+" = ?", v) + } + } + } } return db @@ -99,11 +120,6 @@ return slf } -func (slf *MasterOrderSearch) SetKeyword(keyword string) *MasterOrderSearch { - slf.Keyword = keyword - return slf -} - func (slf *MasterOrderSearch) SetPage(page, size int) *MasterOrderSearch { slf.PageNum, slf.PageSize = page, size return slf @@ -113,3 +129,8 @@ slf.OrderBy = order return slf } + +func (slf *MasterOrderSearch) SetSearchMap(searchMap map[string]interface{}) *MasterOrderSearch { + slf.SearchMap = searchMap + return slf +} diff --git a/model/quotation.go b/model/quotation.go index f6980ec..61061ae 100644 --- a/model/quotation.go +++ b/model/quotation.go @@ -57,9 +57,22 @@ for key, value := range slf.SearchMap { switch v := value.(type) { case string: + if key == "validity_date" || key == "number" { + db = db.Where(key+" = ?", v) + } + + if key == "client_name" { + db = db.Joins("Client").Where("client.name = ?", v) + } + + if key == "contact_name" { + db = db.Joins("Contact").Where("contact.name = ?", v) + } + if key == "validity_date" { db = db.Where(key+" = ?", v) } + case int: if key == "client_id" || key == "sale_chance_id" { db = db.Where(key+" = ?", v) diff --git a/model/request/masterOrder.go b/model/request/masterOrder.go index 8ad935e..c5df7c0 100644 --- a/model/request/masterOrder.go +++ b/model/request/masterOrder.go @@ -20,5 +20,5 @@ type GetMasterOrderList struct { PageInfo - Keyword string `json:"keyword"` + SearchMap map[string]interface{} `json:"search_map"` // 鎼滅储鏉′欢: map[string]interface{}{"name": "xxx"}; {"number": "閿�鍞�诲崟鍙�", "client_name": "瀹㈡埛鍚嶇О", "member_name": "閿�鍞礋璐d汉", "start_time": "寮�濮嬫椂闂�", "end_time": "缁撴潫鏃堕棿", "money": "鎬婚噾棰�", "member_name": "璐熻矗浜�"} } diff --git a/model/request/quotation.go b/model/request/quotation.go index 3e04989..1c42250 100644 --- a/model/request/quotation.go +++ b/model/request/quotation.go @@ -26,5 +26,5 @@ type GetQuotationList struct { PageInfo - SearchMap map[string]interface{} // 鎼滅储鏉′欢: map[string]interface{}{"name": "xxx"}; {"sale_chance_id": 閿�鍞嚎绱d} + SearchMap map[string]interface{} // 鎼滅储鏉′欢: map[string]interface{}{"name": "xxx"}; {"sale_chance_id": 閿�鍞嚎绱d, "client_name": "瀹㈡埛鍚嶇О", "member_name": "閿�鍞礋璐d汉", "contact_name": "鑱旂郴浜�", "validity_date": "鏈夋晥鏈�"} } diff --git a/model/saleChance.go b/model/saleChance.go index d5c444d..ce24563 100644 --- a/model/saleChance.go +++ b/model/saleChance.go @@ -90,7 +90,7 @@ } if key == "member_name" { - db = db.Joins("User").Where("User.name LIKE ?", "%"+v+"%") + db = db.Joins("User").Where("User.username LIKE ?", "%"+v+"%") } if key == "sale_stage" { diff --git a/service/masterOrder.go b/service/masterOrder.go index 6ce2a5f..1c36a33 100644 --- a/service/masterOrder.go +++ b/service/masterOrder.go @@ -44,9 +44,9 @@ return ecode.OK } -func (MasterOrderService) GetMasterOrderList(page, pageSize int, keyword string) ([]*model.MasterOrder, int64, int) { +func (MasterOrderService) GetMasterOrderList(page, pageSize int, data map[string]interface{}) ([]*model.MasterOrder, int64, int) { // get contact list - contacts, total, err := model.NewMasterOrderSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll() + contacts, total, err := model.NewMasterOrderSearch().SetPage(page, pageSize).SetSearchMap(data).FindAll() if err != nil { return nil, 0, ecode.MasterOrderListErr } -- Gitblit v1.8.0