From bd379cf89e0091f931cd1db569560dd4fe63ad3b Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期三, 03 一月 2024 15:00:28 +0800
Subject: [PATCH] 报价单统计
---
router/quotation.go | 9 +-
model/quotation.go | 11 +++
docs/swagger.yaml | 19 ++++++
api/v1/quotation.go | 27 +++++++++
docs/docs.go | 34 +++++++++++
docs/swagger.json | 34 +++++++++++
6 files changed, 129 insertions(+), 5 deletions(-)
diff --git a/api/v1/quotation.go b/api/v1/quotation.go
index e1cf09f..ecbe7da 100644
--- a/api/v1/quotation.go
+++ b/api/v1/quotation.go
@@ -209,3 +209,30 @@
Count: int(total),
})
}
+
+// Statistics
+//
+// @Tags Quotation
+// @Summary 鎶ヤ环鍗曠粺璁�
+// @Produce application/json
+// @Success 200 {object} contextx.Response{data=map[string]int64}
+// @Router /api/quotation/statistics [get]
+func (con *QuotationApi) Statistics(c *gin.Context) {
+ ctx, ok := contextx.NewContext(c, nil)
+ if !ok {
+ return
+ }
+ m := make(map[string]int64)
+ total, _ := model.NewQuotationSearch(nil).Count()
+ m["total"] = total
+ //宸插垱寤�
+ created, _ := model.NewQuotationSearch(nil).SetQuotationStatusId(1).Count()
+ m["created"] = created
+ //宸插鎵�
+ approved, _ := model.NewQuotationSearch(nil).SetQuotationStatusId(3).Count()
+ m["approved"] = approved
+ //宸叉帴鍙�
+ accepted, _ := model.NewQuotationSearch(nil).SetQuotationStatusId(5).Count()
+ m["accepted"] = accepted
+ ctx.OkWithDetailed(m)
+}
diff --git a/docs/docs.go b/docs/docs.go
index fd336df..1455302 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -5323,6 +5323,40 @@
}
}
},
+ "/api/quotation/statistics": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Quotation"
+ ],
+ "summary": "鎶ヤ环鍗曠粺璁�",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/contextx.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
"/api/quotation/update": {
"put": {
"produces": [
diff --git a/docs/swagger.json b/docs/swagger.json
index 1d49ed2..431fd5d 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -5311,6 +5311,40 @@
}
}
},
+ "/api/quotation/statistics": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Quotation"
+ ],
+ "summary": "鎶ヤ环鍗曠粺璁�",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/contextx.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
"/api/quotation/update": {
"put": {
"produces": [
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index c46537f..cd49b10 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -9687,6 +9687,25 @@
summary: 鎶ヤ环鍗曞垪琛�
tags:
- Quotation
+ /api/quotation/statistics:
+ get:
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ allOf:
+ - $ref: '#/definitions/contextx.Response'
+ - properties:
+ data:
+ additionalProperties:
+ type: integer
+ type: object
+ type: object
+ summary: 鎶ヤ环鍗曠粺璁�
+ tags:
+ - Quotation
/api/quotation/update:
put:
parameters:
diff --git a/model/quotation.go b/model/quotation.go
index 2ea3ad6..c4618ee 100644
--- a/model/quotation.go
+++ b/model/quotation.go
@@ -65,6 +65,9 @@
if slf.Number != "" {
db = db.Where("number = ?", slf.Number)
}
+ if slf.QuotationStatusId != 0 {
+ db = db.Where("quotation_status_id = ?", slf.QuotationStatusId)
+ }
if len(slf.SearchMap) > 0 {
for key, value := range slf.SearchMap {
@@ -134,7 +137,7 @@
db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
}
- err := db.Preload("Products").Preload("Member").Preload("QuotationStatus").Preload("Client").Preload("Contact").Order("id desc").Find(&records).Error
+ err := db.Preload("Products").Preload("Member").Preload("QuotationStatus").Preload("Client").Preload("Contact").Preload("SaleChance").Order("id desc").Find(&records).Error
return records, total, err
}
@@ -191,7 +194,13 @@
slf.Number = number
return slf
}
+
func (slf *QuotationSearch) SetIds(ids []int) *QuotationSearch {
slf.Orm = slf.Orm.Where("id in (?)", ids)
return slf
}
+
+func (slf *QuotationSearch) SetQuotationStatusId(id int) *QuotationSearch {
+ slf.QuotationStatusId = id
+ return slf
+}
diff --git a/router/quotation.go b/router/quotation.go
index 83068cd..06f98df 100644
--- a/router/quotation.go
+++ b/router/quotation.go
@@ -11,9 +11,10 @@
quotationRouter := router.Group("quotation")
quotationApi := v1.ApiGroup.QuotationApi
{
- quotationRouter.POST("add", quotationApi.Add) // 娣诲姞鎶ヤ环鍗�
- quotationRouter.DELETE("delete", quotationApi.Delete) // 鍒犻櫎鎶ヤ环鍗�
- quotationRouter.PUT("update", quotationApi.Update) // 鏇存柊鎶ヤ环鍗�
- quotationRouter.POST("list", quotationApi.List) // 鑾峰彇鎶ヤ环鍗曞垪琛�
+ quotationRouter.POST("add", quotationApi.Add) // 娣诲姞鎶ヤ环鍗�
+ quotationRouter.DELETE("delete", quotationApi.Delete) // 鍒犻櫎鎶ヤ环鍗�
+ quotationRouter.PUT("update", quotationApi.Update) // 鏇存柊鎶ヤ环鍗�
+ quotationRouter.POST("list", quotationApi.List) // 鑾峰彇鎶ヤ环鍗曞垪琛�
+ quotationRouter.GET("statistics", quotationApi.Statistics) // 鎶ヤ环鍗曠粺璁�
}
}
--
Gitblit v1.8.0