From 012da13206f2e4d6a3871b050c71a3b237878424 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期四, 10 八月 2023 16:39:32 +0800
Subject: [PATCH] Merge branch 'master' into fly
---
model/wechatOrderStatus.go | 140 +++++
service/salesDetails.go | 8
model/request/salesDetails.go | 40
model/request/wechatOrderStatus.go | 22
constvar/wechatOrderStatus.go | 12
service/wechatOrderStatus.go | 55 ++
router/wechatOrderStatus.go | 17
docs/swagger.yaml | 210 ++++++++
docs/docs.go | 319 +++++++++++++
pkg/contextx/contextx.go | 2
docs/swagger.json | 319 +++++++++++++
model/serviceContract.go | 6
api/v1/wechatOrderStatus.go | 112 ++++
constvar/salesDetails.go | 11
model/salesDetails.go | 103 ++-
model/request/serviceContract.go | 6
api/v1/salesDetails.go | 39 -
17 files changed, 1,317 insertions(+), 104 deletions(-)
diff --git a/api/v1/salesDetails.go b/api/v1/salesDetails.go
index 113673f..7a7ab52 100644
--- a/api/v1/salesDetails.go
+++ b/api/v1/salesDetails.go
@@ -97,42 +97,15 @@
ctx.Ok()
}
-
func checkSalesDetailsParams(salesDetails request.SalesDetails) (errCode int, salesDetailsModel model.SalesDetails) {
- //if salesDetails.ClientId == 0 {
- // return ecode.InvalidParams, salesDetailsModel
- //}
- //
- //if salesDetails.Number == "" {
- // return ecode.InvalidParams, salesDetailsModel
- //}
- //
- //if salesDetails.MemberId == 0 {
- // return ecode.InvalidParams, salesDetailsModel
- //}
- //
- //if salesDetails.SignTime == "" {
- // return ecode.InvalidParams, salesDetailsModel
- //}
-
- t, err := checkTimeFormat(salesDetails.SignTime)
- if err != nil {
- return ecode.InvalidParams, salesDetailsModel
- }
-
- t, err = checkTimeFormat(salesDetails.DeliveryDate)
- if err != nil {
- return ecode.InvalidParams, salesDetailsModel
- }
-
salesDetailsModel.ClientId = salesDetails.ClientId
salesDetailsModel.Number = salesDetails.Number
salesDetailsModel.SaleChanceId = salesDetails.SaleChanceId
salesDetailsModel.SaleType = salesDetails.SaleType
- salesDetailsModel.SignTime = t
+ salesDetailsModel.SignTime = salesDetails.SignTime
salesDetailsModel.MemberId = salesDetails.MemberId
- salesDetailsModel.DeliveryDate = t
- salesDetailsModel.WechatOrderStatus = salesDetails.WechatOrderStatus
+ salesDetailsModel.DeliveryDate = salesDetails.DeliveryDate
+ salesDetailsModel.WechatOrderStatusId = salesDetails.WechatOrderStatusId
salesDetailsModel.Address = salesDetails.Address
salesDetailsModel.Phone = salesDetails.Phone
salesDetailsModel.Remark = salesDetails.Remark
@@ -161,14 +134,14 @@
return
}
- salesDetailss, total, errCode := salesDetailsService.GetSalesDetailsList(params.Page, params.PageSize, params.Keyword)
+ salesDetailss, total, errCode := salesDetailsService.GetSalesDetailsList(params.Page, params.PageSize, params.KeywordType, params.Keyword)
if errCode != ecode.OK {
ctx.Fail(errCode)
return
}
ctx.OkWithDetailed(response.SalesDetailsResponse{
- List: salesDetailss,
+ List: salesDetailss,
Count: int(total),
})
-}
\ No newline at end of file
+}
diff --git a/api/v1/wechatOrderStatus.go b/api/v1/wechatOrderStatus.go
new file mode 100644
index 0000000..151e662
--- /dev/null
+++ b/api/v1/wechatOrderStatus.go
@@ -0,0 +1,112 @@
+package v1
+
+import (
+ "aps_crm/model/request"
+ "aps_crm/model/response"
+ "aps_crm/pkg/contextx"
+ "aps_crm/pkg/ecode"
+ "aps_crm/service"
+ "github.com/gin-gonic/gin"
+ "strconv"
+)
+
+type WechatOrderStatusApi struct{}
+
+// Add
+// @Tags 寰俊璁㈠崟鐘舵��
+// @Summary 娣诲姞寰俊璁㈠崟鐘舵��
+// @Produce application/json
+// @Param object body request.AddWechatOrderStatus true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/wechatOrderStatus/add [post]
+func (s *WechatOrderStatusApi) Add(c *gin.Context) {
+ var params request.AddWechatOrderStatus
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+
+ errCode := service.NewWechatOrderStatusService().AddWechatOrderStatus(¶ms.WechatOrderStatus)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// Delete
+// @Tags 寰俊璁㈠崟鐘舵��
+// @Summary 鍒犻櫎寰俊璁㈠崟鐘舵��
+// @Produce application/json
+// @Param id path int true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/wechatOrderStatus/delete/{id} [delete]
+func (s *WechatOrderStatusApi) Delete(c *gin.Context) {
+ ctx, ok := contextx.NewContext(c, nil)
+ if !ok {
+ return
+ }
+
+ id, _ := strconv.Atoi(c.Param("id"))
+ errCode := service.NewWechatOrderStatusService().DeleteWechatOrderStatus(id)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// Update
+// @Tags 寰俊璁㈠崟鐘舵��
+// @Summary 鏇存柊寰俊璁㈠崟鐘舵��
+// @Produce application/json
+// @Param object body request.UpdateWechatOrderStatus true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/wechatOrderStatus/update [put]
+func (s *WechatOrderStatusApi) Update(c *gin.Context) {
+ var params request.UpdateWechatOrderStatus
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+ if params.Id == 0 {
+ ctx.Fail(ecode.ParamsErr)
+ }
+ params.WechatOrderStatus.Id = params.Id
+
+ errCode := service.NewWechatOrderStatusService().UpdateWechatOrderStatus(¶ms.WechatOrderStatus)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// List
+// @Tags 寰俊璁㈠崟鐘舵��
+// @Summary 鑾峰彇寰俊璁㈠崟鐘舵�佸垪琛�
+// @Produce application/json
+// @Param object query request.GetWechatOrderStatusList true "鍙傛暟"
+// @Success 200 {object} response.ListResponse{data=[]model.WechatOrderStatus}
+// @Router /api/wechatOrderStatus/list [get]
+func (s *WechatOrderStatusApi) List(c *gin.Context) {
+ var params request.GetWechatOrderStatusList
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+
+ wechatOrderStatus, total, errCode := service.NewWechatOrderStatusService().GetWechatOrderStatusList()
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.OkWithDetailed(response.ListResponse{
+ Data: wechatOrderStatus,
+ Count: total,
+ })
+}
diff --git a/constvar/salesDetails.go b/constvar/salesDetails.go
new file mode 100644
index 0000000..cd3321a
--- /dev/null
+++ b/constvar/salesDetails.go
@@ -0,0 +1,11 @@
+package constvar
+
+type SalesDetailsKeywordType string
+
+const (
+ SalesDetailsKeywordTypeCustomerName SalesDetailsKeywordType = "瀹㈡埛鍚嶇О"
+ SalesDetailsKeywordTypeOrderNumber SalesDetailsKeywordType = "璁㈠崟缂栧彿"
+ SalesDetailsKeywordTypeSignTime SalesDetailsKeywordType = "绛剧害鏃ユ湡"
+ SalesDetailsKeywordTypePrincipal SalesDetailsKeywordType = "閿�鍞礋璐d汉"
+ SalesDetailsKeywordTypeProductName SalesDetailsKeywordType = "浜у搧鍚嶇О"
+)
diff --git a/constvar/wechatOrderStatus.go b/constvar/wechatOrderStatus.go
new file mode 100644
index 0000000..dc15cab
--- /dev/null
+++ b/constvar/wechatOrderStatus.go
@@ -0,0 +1,12 @@
+package constvar
+type WechatOrderStatusQueryClass string
+
+const (
+ WechatOrderStatusQueryClassExpireLessThen60Days WechatOrderStatusQueryClass = ""
+)
+
+type WechatOrderStatusKeywordType string
+
+const (
+ WechatOrderStatusKeywordCustomerName WechatOrderStatusKeywordType = ""
+)
diff --git a/docs/docs.go b/docs/docs.go
index aa46c54..c23e327 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -9513,6 +9513,169 @@
}
}
}
+ },
+ "/api/wechatOrderStatus/add": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "娣诲姞寰俊璁㈠崟鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.AddWechatOrderStatus"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/wechatOrderStatus/delete/{id}": {
+ "delete": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "鍒犻櫎寰俊璁㈠崟鐘舵��",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "鏌ヨ鍙傛暟",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/wechatOrderStatus/list": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "鑾峰彇寰俊璁㈠崟鐘舵�佸垪琛�",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "keyword",
+ "in": "query"
+ },
+ {
+ "enum": [
+ ""
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "WechatOrderStatusKeywordCustomerName"
+ ],
+ "name": "keywordType",
+ "in": "query"
+ },
+ {
+ "type": "integer",
+ "description": "椤电爜",
+ "name": "page",
+ "in": "query"
+ },
+ {
+ "type": "integer",
+ "description": "姣忛〉澶у皬",
+ "name": "pageSize",
+ "in": "query"
+ },
+ {
+ "enum": [
+ ""
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "WechatOrderStatusQueryClassExpireLessThen60Days"
+ ],
+ "name": "queryClass",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.ListResponse"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.WechatOrderStatus"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/api/wechatOrderStatus/update": {
+ "put": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "鏇存柊寰俊璁㈠崟鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.UpdateWechatOrderStatus"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
}
},
"definitions": {
@@ -9686,6 +9849,23 @@
"ReceiptQueryClassExpireLessThen60Days"
]
},
+ "constvar.SalesDetailsKeywordType": {
+ "type": "string",
+ "enum": [
+ "瀹㈡埛鍚嶇О",
+ "璁㈠崟缂栧彿",
+ "绛剧害鏃ユ湡",
+ "閿�鍞礋璐d汉",
+ "浜у搧鍚嶇О"
+ ],
+ "x-enum-varnames": [
+ "SalesDetailsKeywordTypeCustomerName",
+ "SalesDetailsKeywordTypeOrderNumber",
+ "SalesDetailsKeywordTypeSignTime",
+ "SalesDetailsKeywordTypePrincipal",
+ "SalesDetailsKeywordTypeProductName"
+ ]
+ },
"constvar.SalesStatus": {
"type": "integer",
"enum": [
@@ -9831,6 +10011,24 @@
"UserTypeSuper",
"UserTypePrimary",
"UserTypeSub"
+ ]
+ },
+ "constvar.WechatOrderStatusKeywordType": {
+ "type": "string",
+ "enum": [
+ ""
+ ],
+ "x-enum-varnames": [
+ "WechatOrderStatusKeywordCustomerName"
+ ]
+ },
+ "constvar.WechatOrderStatusQueryClass": {
+ "type": "string",
+ "enum": [
+ ""
+ ],
+ "x-enum-varnames": [
+ "WechatOrderStatusQueryClassExpireLessThen60Days"
]
},
"contextx.Response": {
@@ -11109,6 +11307,22 @@
"addressee": {
"type": "string"
},
+ "amountInvoiced": {
+ "description": "宸插紑绁ㄩ噾棰�",
+ "type": "number"
+ },
+ "amountReceivable": {
+ "description": "搴旀敹閲戦",
+ "type": "number"
+ },
+ "amountReceived": {
+ "description": "宸叉敹閲戦",
+ "type": "number"
+ },
+ "amountUnInvoiced": {
+ "description": "鏈紑绁ㄩ噾棰�",
+ "type": "number"
+ },
"client": {
"$ref": "#/definitions/model.Client"
},
@@ -11151,6 +11365,9 @@
"remark": {
"type": "string"
},
+ "saleChance": {
+ "$ref": "#/definitions/model.SaleChance"
+ },
"saleChanceId": {
"type": "integer"
},
@@ -11161,6 +11378,9 @@
"type": "string"
},
"wechatOrderStatus": {
+ "$ref": "#/definitions/model.WechatOrderStatus"
+ },
+ "wechatOrderStatusId": {
"type": "integer"
}
}
@@ -11880,6 +12100,17 @@
"type": "string"
},
"uuid": {
+ "type": "string"
+ }
+ }
+ },
+ "model.WechatOrderStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
"type": "string"
}
}
@@ -12845,8 +13076,59 @@
"request.AddSalesDetails": {
"type": "object",
"properties": {
- "salesDetails": {
- "$ref": "#/definitions/request.SalesDetails"
+ "address": {
+ "type": "string"
+ },
+ "addressee": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "integer"
+ },
+ "conditions": {
+ "type": "string"
+ },
+ "deliveryDate": {
+ "type": "string"
+ },
+ "logisticCompany": {
+ "type": "string"
+ },
+ "logisticCost": {
+ "type": "number"
+ },
+ "logisticNumber": {
+ "type": "string"
+ },
+ "memberId": {
+ "type": "integer"
+ },
+ "number": {
+ "type": "string"
+ },
+ "phone": {
+ "type": "string"
+ },
+ "products": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.Product"
+ }
+ },
+ "remark": {
+ "type": "string"
+ },
+ "saleChanceId": {
+ "type": "integer"
+ },
+ "saleType": {
+ "type": "integer"
+ },
+ "signTime": {
+ "type": "string"
+ },
+ "wechatOrderStatusId": {
+ "type": "integer"
}
}
},
@@ -12964,6 +13246,9 @@
},
"request.AddServiceContract": {
"type": "object",
+ "required": [
+ "memberId"
+ ],
"properties": {
"clientId": {
"type": "integer"
@@ -13412,6 +13697,17 @@
},
"vettingType": {
"type": "integer"
+ }
+ }
+ },
+ "request.AddWechatOrderStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
}
}
},
@@ -13912,6 +14208,9 @@
"keyword": {
"type": "string"
},
+ "keywordType": {
+ "$ref": "#/definitions/constvar.SalesDetailsKeywordType"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -14240,7 +14539,7 @@
"signTime": {
"type": "string"
},
- "wechatOrderStatus": {
+ "wechatOrderStatusId": {
"type": "integer"
}
}
@@ -15973,6 +16272,9 @@
},
"request.UpdateServiceContract": {
"type": "object",
+ "required": [
+ "memberId"
+ ],
"properties": {
"clientId": {
"type": "integer"
@@ -16515,6 +16817,17 @@
}
}
},
+ "request.UpdateWechatOrderStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ }
+ },
"response.AccountIdResponse": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index a976d71..56da808 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -9501,6 +9501,169 @@
}
}
}
+ },
+ "/api/wechatOrderStatus/add": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "娣诲姞寰俊璁㈠崟鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.AddWechatOrderStatus"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/wechatOrderStatus/delete/{id}": {
+ "delete": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "鍒犻櫎寰俊璁㈠崟鐘舵��",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "鏌ヨ鍙傛暟",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/wechatOrderStatus/list": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "鑾峰彇寰俊璁㈠崟鐘舵�佸垪琛�",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "keyword",
+ "in": "query"
+ },
+ {
+ "enum": [
+ ""
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "WechatOrderStatusKeywordCustomerName"
+ ],
+ "name": "keywordType",
+ "in": "query"
+ },
+ {
+ "type": "integer",
+ "description": "椤电爜",
+ "name": "page",
+ "in": "query"
+ },
+ {
+ "type": "integer",
+ "description": "姣忛〉澶у皬",
+ "name": "pageSize",
+ "in": "query"
+ },
+ {
+ "enum": [
+ ""
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "WechatOrderStatusQueryClassExpireLessThen60Days"
+ ],
+ "name": "queryClass",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.ListResponse"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.WechatOrderStatus"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/api/wechatOrderStatus/update": {
+ "put": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "寰俊璁㈠崟鐘舵��"
+ ],
+ "summary": "鏇存柊寰俊璁㈠崟鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.UpdateWechatOrderStatus"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
}
},
"definitions": {
@@ -9674,6 +9837,23 @@
"ReceiptQueryClassExpireLessThen60Days"
]
},
+ "constvar.SalesDetailsKeywordType": {
+ "type": "string",
+ "enum": [
+ "瀹㈡埛鍚嶇О",
+ "璁㈠崟缂栧彿",
+ "绛剧害鏃ユ湡",
+ "閿�鍞礋璐d汉",
+ "浜у搧鍚嶇О"
+ ],
+ "x-enum-varnames": [
+ "SalesDetailsKeywordTypeCustomerName",
+ "SalesDetailsKeywordTypeOrderNumber",
+ "SalesDetailsKeywordTypeSignTime",
+ "SalesDetailsKeywordTypePrincipal",
+ "SalesDetailsKeywordTypeProductName"
+ ]
+ },
"constvar.SalesStatus": {
"type": "integer",
"enum": [
@@ -9819,6 +9999,24 @@
"UserTypeSuper",
"UserTypePrimary",
"UserTypeSub"
+ ]
+ },
+ "constvar.WechatOrderStatusKeywordType": {
+ "type": "string",
+ "enum": [
+ ""
+ ],
+ "x-enum-varnames": [
+ "WechatOrderStatusKeywordCustomerName"
+ ]
+ },
+ "constvar.WechatOrderStatusQueryClass": {
+ "type": "string",
+ "enum": [
+ ""
+ ],
+ "x-enum-varnames": [
+ "WechatOrderStatusQueryClassExpireLessThen60Days"
]
},
"contextx.Response": {
@@ -11097,6 +11295,22 @@
"addressee": {
"type": "string"
},
+ "amountInvoiced": {
+ "description": "宸插紑绁ㄩ噾棰�",
+ "type": "number"
+ },
+ "amountReceivable": {
+ "description": "搴旀敹閲戦",
+ "type": "number"
+ },
+ "amountReceived": {
+ "description": "宸叉敹閲戦",
+ "type": "number"
+ },
+ "amountUnInvoiced": {
+ "description": "鏈紑绁ㄩ噾棰�",
+ "type": "number"
+ },
"client": {
"$ref": "#/definitions/model.Client"
},
@@ -11139,6 +11353,9 @@
"remark": {
"type": "string"
},
+ "saleChance": {
+ "$ref": "#/definitions/model.SaleChance"
+ },
"saleChanceId": {
"type": "integer"
},
@@ -11149,6 +11366,9 @@
"type": "string"
},
"wechatOrderStatus": {
+ "$ref": "#/definitions/model.WechatOrderStatus"
+ },
+ "wechatOrderStatusId": {
"type": "integer"
}
}
@@ -11868,6 +12088,17 @@
"type": "string"
},
"uuid": {
+ "type": "string"
+ }
+ }
+ },
+ "model.WechatOrderStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
"type": "string"
}
}
@@ -12833,8 +13064,59 @@
"request.AddSalesDetails": {
"type": "object",
"properties": {
- "salesDetails": {
- "$ref": "#/definitions/request.SalesDetails"
+ "address": {
+ "type": "string"
+ },
+ "addressee": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "integer"
+ },
+ "conditions": {
+ "type": "string"
+ },
+ "deliveryDate": {
+ "type": "string"
+ },
+ "logisticCompany": {
+ "type": "string"
+ },
+ "logisticCost": {
+ "type": "number"
+ },
+ "logisticNumber": {
+ "type": "string"
+ },
+ "memberId": {
+ "type": "integer"
+ },
+ "number": {
+ "type": "string"
+ },
+ "phone": {
+ "type": "string"
+ },
+ "products": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.Product"
+ }
+ },
+ "remark": {
+ "type": "string"
+ },
+ "saleChanceId": {
+ "type": "integer"
+ },
+ "saleType": {
+ "type": "integer"
+ },
+ "signTime": {
+ "type": "string"
+ },
+ "wechatOrderStatusId": {
+ "type": "integer"
}
}
},
@@ -12952,6 +13234,9 @@
},
"request.AddServiceContract": {
"type": "object",
+ "required": [
+ "memberId"
+ ],
"properties": {
"clientId": {
"type": "integer"
@@ -13400,6 +13685,17 @@
},
"vettingType": {
"type": "integer"
+ }
+ }
+ },
+ "request.AddWechatOrderStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
}
}
},
@@ -13900,6 +14196,9 @@
"keyword": {
"type": "string"
},
+ "keywordType": {
+ "$ref": "#/definitions/constvar.SalesDetailsKeywordType"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -14228,7 +14527,7 @@
"signTime": {
"type": "string"
},
- "wechatOrderStatus": {
+ "wechatOrderStatusId": {
"type": "integer"
}
}
@@ -15961,6 +16260,9 @@
},
"request.UpdateServiceContract": {
"type": "object",
+ "required": [
+ "memberId"
+ ],
"properties": {
"clientId": {
"type": "integer"
@@ -16503,6 +16805,17 @@
}
}
},
+ "request.UpdateWechatOrderStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ }
+ },
"response.AccountIdResponse": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index fb0cc54..f9f1d1f 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -114,6 +114,20 @@
type: string
x-enum-varnames:
- ReceiptQueryClassExpireLessThen60Days
+ constvar.SalesDetailsKeywordType:
+ enum:
+ - 瀹㈡埛鍚嶇О
+ - 璁㈠崟缂栧彿
+ - 绛剧害鏃ユ湡
+ - 閿�鍞礋璐d汉
+ - 浜у搧鍚嶇О
+ type: string
+ x-enum-varnames:
+ - SalesDetailsKeywordTypeCustomerName
+ - SalesDetailsKeywordTypeOrderNumber
+ - SalesDetailsKeywordTypeSignTime
+ - SalesDetailsKeywordTypePrincipal
+ - SalesDetailsKeywordTypeProductName
constvar.SalesStatus:
enum:
- 0
@@ -238,6 +252,18 @@
- UserTypeSuper
- UserTypePrimary
- UserTypeSub
+ constvar.WechatOrderStatusKeywordType:
+ enum:
+ - ""
+ type: string
+ x-enum-varnames:
+ - WechatOrderStatusKeywordCustomerName
+ constvar.WechatOrderStatusQueryClass:
+ enum:
+ - ""
+ type: string
+ x-enum-varnames:
+ - WechatOrderStatusQueryClassExpireLessThen60Days
contextx.Response:
properties:
code:
@@ -1079,6 +1105,18 @@
type: string
addressee:
type: string
+ amountInvoiced:
+ description: 宸插紑绁ㄩ噾棰�
+ type: number
+ amountReceivable:
+ description: 搴旀敹閲戦
+ type: number
+ amountReceived:
+ description: 宸叉敹閲戦
+ type: number
+ amountUnInvoiced:
+ description: 鏈紑绁ㄩ噾棰�
+ type: number
client:
$ref: '#/definitions/model.Client'
clientId:
@@ -1107,6 +1145,8 @@
type: array
remark:
type: string
+ saleChance:
+ $ref: '#/definitions/model.SaleChance'
saleChanceId:
type: integer
saleType:
@@ -1114,6 +1154,8 @@
signTime:
type: string
wechatOrderStatus:
+ $ref: '#/definitions/model.WechatOrderStatus'
+ wechatOrderStatusId:
type: integer
type: object
model.SalesLeads:
@@ -1599,6 +1641,13 @@
username:
type: string
uuid:
+ type: string
+ type: object
+ model.WechatOrderStatus:
+ properties:
+ id:
+ type: integer
+ name:
type: string
type: object
product.Product:
@@ -2248,8 +2297,42 @@
type: object
request.AddSalesDetails:
properties:
- salesDetails:
- $ref: '#/definitions/request.SalesDetails'
+ address:
+ type: string
+ addressee:
+ type: string
+ clientId:
+ type: integer
+ conditions:
+ type: string
+ deliveryDate:
+ type: string
+ logisticCompany:
+ type: string
+ logisticCost:
+ type: number
+ logisticNumber:
+ type: string
+ memberId:
+ type: integer
+ number:
+ type: string
+ phone:
+ type: string
+ products:
+ items:
+ $ref: '#/definitions/model.Product'
+ type: array
+ remark:
+ type: string
+ saleChanceId:
+ type: integer
+ saleType:
+ type: integer
+ signTime:
+ type: string
+ wechatOrderStatusId:
+ type: integer
type: object
request.AddSalesLeads:
properties:
@@ -2362,6 +2445,8 @@
type: string
typeId:
type: integer
+ required:
+ - memberId
type: object
request.AddServiceContractStatus:
properties:
@@ -2639,6 +2724,13 @@
- userId
- vettingId
- vettingType
+ type: object
+ request.AddWechatOrderStatus:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
type: object
request.Assign:
properties:
@@ -2991,6 +3083,8 @@
properties:
keyword:
type: string
+ keywordType:
+ $ref: '#/definitions/constvar.SalesDetailsKeywordType'
page:
description: 椤电爜
type: integer
@@ -3215,7 +3309,7 @@
type: integer
signTime:
type: string
- wechatOrderStatus:
+ wechatOrderStatusId:
type: integer
type: object
request.SalesRefund:
@@ -4416,6 +4510,8 @@
type: string
typeId:
type: integer
+ required:
+ - memberId
type: object
request.UpdateServiceContractStatus:
properties:
@@ -4750,6 +4846,13 @@
required:
- id
- status
+ type: object
+ request.UpdateWechatOrderStatus:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
type: object
response.AccountIdResponse:
properties:
@@ -11191,4 +11294,105 @@
summary: 鏇存柊瀹℃壒
tags:
- Vetting
+ /api/wechatOrderStatus/add:
+ post:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.AddWechatOrderStatus'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 娣诲姞寰俊璁㈠崟鐘舵��
+ tags:
+ - 寰俊璁㈠崟鐘舵��
+ /api/wechatOrderStatus/delete/{id}:
+ delete:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: path
+ name: id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 鍒犻櫎寰俊璁㈠崟鐘舵��
+ tags:
+ - 寰俊璁㈠崟鐘舵��
+ /api/wechatOrderStatus/list:
+ get:
+ parameters:
+ - in: query
+ name: keyword
+ type: string
+ - enum:
+ - ""
+ in: query
+ name: keywordType
+ type: string
+ x-enum-varnames:
+ - WechatOrderStatusKeywordCustomerName
+ - description: 椤电爜
+ in: query
+ name: page
+ type: integer
+ - description: 姣忛〉澶у皬
+ in: query
+ name: pageSize
+ type: integer
+ - enum:
+ - ""
+ in: query
+ name: queryClass
+ type: string
+ x-enum-varnames:
+ - WechatOrderStatusQueryClassExpireLessThen60Days
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ allOf:
+ - $ref: '#/definitions/response.ListResponse'
+ - properties:
+ data:
+ items:
+ $ref: '#/definitions/model.WechatOrderStatus'
+ type: array
+ type: object
+ summary: 鑾峰彇寰俊璁㈠崟鐘舵�佸垪琛�
+ tags:
+ - 寰俊璁㈠崟鐘舵��
+ /api/wechatOrderStatus/update:
+ put:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.UpdateWechatOrderStatus'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 鏇存柊寰俊璁㈠崟鐘舵��
+ tags:
+ - 寰俊璁㈠崟鐘舵��
swagger: "2.0"
diff --git a/model/request/salesDetails.go b/model/request/salesDetails.go
index f5b1975..1d12f61 100644
--- a/model/request/salesDetails.go
+++ b/model/request/salesDetails.go
@@ -1,31 +1,32 @@
package request
import (
+ "aps_crm/constvar"
"aps_crm/model"
)
type AddSalesDetails struct {
- SalesDetails SalesDetails `json:"salesDetails"`
+ SalesDetails
}
type SalesDetails struct {
- ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
- Number string `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"`
- SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
- SaleType int `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"`
- SignTime string `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛惧崟鏃堕棿"`
- MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"`
- DeliveryDate string `json:"deliveryDate" gorm:"column:delivery_date;type:datetime;comment:浜よ揣鏃ユ湡"`
- WechatOrderStatus int `json:"wechatOrderStatus" gorm:"column:wechat_order_status;type:int;comment:寰俊璁㈠崟鐘舵��"`
- Address string `json:"address" gorm:"column:address;type:varchar(255);comment:鍦板潃"`
- Phone string `json:"phone" gorm:"column:phone;type:varchar(255);comment:鐢佃瘽"`
- Addressee string `json:"addressee" gorm:"column:addressee;type:varchar(255);comment:鏀朵欢浜�"`
- Conditions string `json:"conditions" gorm:"column:conditions;type:text;comment:鏉′欢"`
- Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"`
- Products []model.Product `json:"products" gorm:"many2many:salesDetails_product;"`
- LogisticCompany string `json:"logisticCompany" gorm:"column:logistic_company;type:varchar(255);comment:鐗╂祦鍏徃"`
- LogisticNumber string `json:"logisticNumber" gorm:"column:logistic_number;type:varchar(255);comment:鐗╂祦鍗曞彿"`
- LogisticCost float64 `json:"logisticCost" gorm:"column:logistic_cost;type:decimal(10,2);comment:鐗╂祦璐圭敤"`
+ ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
+ Number string `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"`
+ SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
+ SaleType int `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"`
+ SignTime string `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛惧崟鏃堕棿"`
+ MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"`
+ DeliveryDate string `json:"deliveryDate" gorm:"column:delivery_date;type:datetime;comment:浜よ揣鏃ユ湡"`
+ WechatOrderStatusId int `json:"wechatOrderStatusId" gorm:"column:wechat_order_status_id;type:int;comment:寰俊璁㈠崟鐘舵�乮d"`
+ Address string `json:"address" gorm:"column:address;type:varchar(255);comment:鍦板潃"`
+ Phone string `json:"phone" gorm:"column:phone;type:varchar(255);comment:鐢佃瘽"`
+ Addressee string `json:"addressee" gorm:"column:addressee;type:varchar(255);comment:鏀朵欢浜�"`
+ Conditions string `json:"conditions" gorm:"column:conditions;type:text;comment:鏉′欢"`
+ Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"`
+ Products []model.Product `json:"products" gorm:"many2many:sales_details_product;"`
+ LogisticCompany string `json:"logisticCompany" gorm:"column:logistic_company;type:varchar(255);comment:鐗╂祦鍏徃"`
+ LogisticNumber string `json:"logisticNumber" gorm:"column:logistic_number;type:varchar(255);comment:鐗╂祦鍗曞彿"`
+ LogisticCost float64 `json:"logisticCost" gorm:"column:logistic_cost;type:decimal(10,2);comment:鐗╂祦璐圭敤"`
}
type UpdateSalesDetails struct {
@@ -35,5 +36,6 @@
type GetSalesDetailsList struct {
PageInfo
- Keyword string `json:"keyword"`
+ KeywordType constvar.SalesDetailsKeywordType `json:"keywordType"`
+ Keyword string `json:"keyword"`
}
diff --git a/model/request/serviceContract.go b/model/request/serviceContract.go
index 65068e4..5e179a5 100644
--- a/model/request/serviceContract.go
+++ b/model/request/serviceContract.go
@@ -12,15 +12,15 @@
type ServiceContract struct {
ClientId int `json:"clientId"`
Number string `json:"number"`
- MemberId int `json:"memberId"`
+ MemberId int `json:"memberId" binding:"required"`
ContactId int `json:"contactId"`
SaleChanceId int `json:"saleChanceId"`
SalesDetailsId int `json:"salesDetailsId"`
QuotationId int `json:"quotationId"`
TypeId int `json:"typeId"`
SignTime string `json:"signTime" binding:"datetime=2006-01-02"`
- StartTime string `json:"startTime" binding:"datetime=2006-01-02"`
- EndTime string `json:"endTime" binding:"datetime=2006-01-02"`
+ StartTime string `json:"startTime"`
+ EndTime string `json:"endTime"`
StatusId int `json:"statusId"`
ServiceTimes int `json:"serviceTimes"`
Terms string `json:"terms"`
diff --git a/model/request/wechatOrderStatus.go b/model/request/wechatOrderStatus.go
new file mode 100644
index 0000000..499824a
--- /dev/null
+++ b/model/request/wechatOrderStatus.go
@@ -0,0 +1,22 @@
+package request
+
+import (
+ "aps_crm/constvar"
+ "aps_crm/model"
+)
+
+type AddWechatOrderStatus struct {
+ model.WechatOrderStatus
+}
+
+type UpdateWechatOrderStatus struct {
+ Id int `json:"id"`
+ model.WechatOrderStatus
+}
+
+type GetWechatOrderStatusList struct {
+ PageInfo
+ QueryClass constvar.WechatOrderStatusQueryClass `json:"queryClass" form:"queryClass"`
+ KeywordType constvar.WechatOrderStatusKeywordType `json:"keywordType" form:"keywordType"`
+ Keyword string `json:"keyword" form:"keyword"`
+}
diff --git a/model/salesDetails.go b/model/salesDetails.go
index dbcaa26..8deea7f 100644
--- a/model/salesDetails.go
+++ b/model/salesDetails.go
@@ -1,44 +1,53 @@
package model
import (
+ "aps_crm/constvar"
"aps_crm/pkg/mysqlx"
+ "fmt"
+ "github.com/shopspring/decimal"
"gorm.io/gorm"
- "time"
+ "gorm.io/gorm/clause"
)
type (
SalesDetails struct {
- Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
- ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
- Client Client `json:"client" gorm:"foreignKey:ClientId"`
- Number string `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"`
- SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
- SaleType int `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"`
- SignTime time.Time `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛惧崟鏃堕棿"`
- MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"`
- DeliveryDate time.Time `json:"deliveryDate" gorm:"column:delivery_date;type:datetime;comment:浜よ揣鏃ユ湡"`
- WechatOrderStatus int `json:"wechatOrderStatus" gorm:"column:wechat_order_status;type:int;comment:寰俊璁㈠崟鐘舵��"`
- Address string `json:"address" gorm:"column:address;type:varchar(255);comment:鍦板潃"`
- Phone string `json:"phone" gorm:"column:phone;type:varchar(255);comment:鐢佃瘽"`
- Addressee string `json:"addressee" gorm:"column:addressee;type:varchar(255);comment:鏀朵欢浜�"`
- Conditions string `json:"conditions" gorm:"column:conditions;type:text;comment:鏉′欢"`
- Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"`
- Products []Product `json:"products" gorm:"many2many:salesDetails_product;"`
- LogisticCompany string `json:"logisticCompany" gorm:"column:logistic_company;type:varchar(255);comment:鐗╂祦鍏徃"`
- LogisticNumber string `json:"logisticNumber" gorm:"column:logistic_number;type:varchar(255);comment:鐗╂祦鍗曞彿"`
- LogisticCost float64 `json:"logisticCost" gorm:"column:logistic_cost;type:decimal(10,2);comment:鐗╂祦璐圭敤"`
- gorm.Model `json:"-"`
+ Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+ ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
+ Client Client `json:"client" gorm:"foreignKey:ClientId"`
+ Number string `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"`
+ SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
+ SaleChance SaleChance `json:"saleChance" gorm:"foreignKey:SaleChanceId"`
+ SaleType int `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"`
+ SignTime string `json:"signTime" gorm:"column:sign_time;type:varchar(255);comment:绛惧崟鏃堕棿"`
+ MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"`
+ DeliveryDate string `json:"deliveryDate" gorm:"column:delivery_date;type:varchar(255);comment:浜よ揣鏃ユ湡"`
+ WechatOrderStatusId int `json:"wechatOrderStatusId" gorm:"column:wechat_order_status;type:int;comment:寰俊璁㈠崟鐘舵��"`
+ WechatOrderStatus WechatOrderStatus `json:"wechatOrderStatus" gorm:"foreignKey:WechatOrderStatusId"`
+ Address string `json:"address" gorm:"column:address;type:varchar(255);comment:鍦板潃"`
+ Phone string `json:"phone" gorm:"column:phone;type:varchar(255);comment:鐢佃瘽"`
+ Addressee string `json:"addressee" gorm:"column:addressee;type:varchar(255);comment:鏀朵欢浜�"`
+ Conditions string `json:"conditions" gorm:"column:conditions;type:text;comment:鏉′欢"`
+ Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"`
+ Products []Product `json:"products" gorm:"many2many:sales_details_product;"`
+ LogisticCompany string `json:"logisticCompany" gorm:"column:logistic_company;type:varchar(255);comment:鐗╂祦鍏徃"`
+ LogisticNumber string `json:"logisticNumber" gorm:"column:logistic_number;type:varchar(255);comment:鐗╂祦鍗曞彿"`
+ LogisticCost float64 `json:"logisticCost" gorm:"column:logistic_cost;type:decimal(10,2);comment:鐗╂祦璐圭敤"`
+ AmountReceivable decimal.Decimal `gorm:"amount_receivable" json:"amountReceivable"` // 搴旀敹閲戦
+ AmountReceived decimal.Decimal `gorm:"amount_received" json:"amountReceived"` // 宸叉敹閲戦
+ AmountInvoiced decimal.Decimal `gorm:"amount_invoiced" json:"amountInvoiced"` // 宸插紑绁ㄩ噾棰�
+ AmountUnInvoiced decimal.Decimal `gorm:"-" json:"amountUnInvoiced"` // 鏈紑绁ㄩ噾棰�
+ gorm.Model `json:"-"`
}
SalesDetailsSearch struct {
SalesDetails
-
- Orm *gorm.DB
- Keyword string
- OrderBy string
- PageNum int
- PageSize int
-
+ KeywordType constvar.SalesDetailsKeywordType
+ Orm *gorm.DB
+ Keyword string
+ OrderBy string
+ PageNum int
+ PageSize int
+ Preload bool
}
)
@@ -54,11 +63,29 @@
func (slf *SalesDetailsSearch) build() *gorm.DB {
var db = slf.Orm.Model(&SalesDetails{})
- 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.SalesDetailsKeywordTypeCustomerName:
+ db = db.Joins("Client", clause.LeftJoin).Where("Client.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
+ case constvar.SalesDetailsKeywordTypeOrderNumber:
+ db = db.Where("number like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
+ case constvar.SalesDetailsKeywordTypeSignTime:
+ db = db.Where("sign_time like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
+ case constvar.SalesDetailsKeywordTypePrincipal:
+ db = db.Joins("left join user on user.id = sales_details.member_id").Where("user.username like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
+ case constvar.SalesDetailsKeywordTypeProductName:
+ //db = db.Joins("left join sales_details_product sdp on sdp.sales_details_id = sales_details.id left join product").Where("user.username like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
+
+ }
+ if slf.Preload {
+ db = db.Preload("Products").
+ Preload("Client").
+ Preload("SaleChance").
+ Preload("WechatOrderStatus").
+ Preload("Client")
}
return db
@@ -106,12 +133,22 @@
db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
}
- err := db.Preload("Products").Preload("Client").Find(&records).Error
+ err := db.Find(&records).Error
return records, total, err
}
func (slf *SalesDetailsSearch) SetKeyword(keyword string) *SalesDetailsSearch {
slf.Keyword = keyword
+ return slf
+}
+
+func (slf *SalesDetailsSearch) SetKeywordType(keywordType constvar.SalesDetailsKeywordType) *SalesDetailsSearch {
+ slf.KeywordType = keywordType
+ return slf
+}
+
+func (slf *SalesDetailsSearch) SetPreload(preload bool) *SalesDetailsSearch {
+ slf.Preload = preload
return slf
}
@@ -123,4 +160,4 @@
func (slf *SalesDetailsSearch) SetOrder(order string) *SalesDetailsSearch {
slf.OrderBy = order
return slf
-}
\ No newline at end of file
+}
diff --git a/model/serviceContract.go b/model/serviceContract.go
index 1b6b901..14a5e7a 100644
--- a/model/serviceContract.go
+++ b/model/serviceContract.go
@@ -44,7 +44,6 @@
ServiceContractSearch struct {
ServiceContract
-
Orm *gorm.DB
QueryClass constvar.ServiceContractQueryClass
KeywordType constvar.ServiceContractKeywordType
@@ -95,10 +94,9 @@
db = db.Joins("left join service_contract_status on service_contract_status.id = service_contract.service_contract_status_id")
db = db.Where("service_contract_status.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
case constvar.ServiceContractKeywordPrincipal:
- db = db.Joins("left join user on user.id = service_contract.member_id")
- db = db.Where("user.username like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
+ db = db.Joins("left join user on user.id = service_contract.member_id").Where("user.username like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
case constvar.ServiceContractKeywordProductName:
- //db = db.Joins("ServiceContractProduct", clause.LeftJoin).Joins("Product", clause.LeftJoin).Where("Product.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword)) todo
+ db = db.Joins("Products", clause.LeftJoin).Where("Products.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
case constvar.ServiceContractKeywordServiceBeginDate:
db = db.Where("start_time = ?", slf.Keyword)
case constvar.ServiceContractKeywordServiceEndDate:
diff --git a/model/wechatOrderStatus.go b/model/wechatOrderStatus.go
new file mode 100644
index 0000000..e458a99
--- /dev/null
+++ b/model/wechatOrderStatus.go
@@ -0,0 +1,140 @@
+package model
+
+import (
+ "aps_crm/constvar"
+ "aps_crm/pkg/mysqlx"
+ "errors"
+ "fmt"
+ "gorm.io/gorm"
+)
+
+type (
+ // WechatOrderStatus 寰俊璁㈠崟鐘舵��
+ WechatOrderStatus struct {
+ Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+ Name string `json:"name" gorm:"column:name"`
+ }
+
+ // WechatOrderStatusSearch 寰俊璁㈠崟鐘舵�佹悳绱㈡潯浠�
+ WechatOrderStatusSearch struct {
+ WechatOrderStatus
+ Orm *gorm.DB
+ QueryClass constvar.WechatOrderStatusQueryClass
+ KeywordType constvar.WechatOrderStatusKeywordType
+ Keyword string
+ PageNum int
+ PageSize int
+ }
+)
+
+func (WechatOrderStatus) TableName() string {
+ return "wechat_order_status"
+}
+
+func NewWechatOrderStatusSearch() *WechatOrderStatusSearch {
+ return &WechatOrderStatusSearch{
+ Orm: mysqlx.GetDB(),
+ }
+}
+
+func (slf *WechatOrderStatusSearch) build() *gorm.DB {
+ var db = slf.Orm.Model(&WechatOrderStatus{})
+ if slf.Id != 0 {
+ db = db.Where("id = ?", slf.Id)
+ }
+
+ return db
+}
+
+func (slf *WechatOrderStatusSearch) Create(record *WechatOrderStatus) error {
+ var db = slf.build()
+ return db.Create(record).Error
+}
+
+func (slf *WechatOrderStatusSearch) CreateBatch(records []*WechatOrderStatus) error {
+ var db = slf.build()
+ return db.Create(records).Error
+}
+
+func (slf *WechatOrderStatusSearch) Delete() error {
+ var db = slf.build()
+ return db.Delete(&WechatOrderStatus{}).Error
+}
+
+func (slf *WechatOrderStatusSearch) Update(record *WechatOrderStatus) error {
+ var db = slf.build()
+ return db.Updates(record).Error
+}
+
+func (slf *WechatOrderStatusSearch) FindAll() ([]*WechatOrderStatus, error) {
+ var db = slf.build()
+ var record = make([]*WechatOrderStatus, 0)
+ err := db.Find(&record).Error
+ return record, err
+}
+
+func (slf *WechatOrderStatusSearch) SetId(id int) *WechatOrderStatusSearch {
+ slf.Id = id
+ return slf
+}
+
+func (slf *WechatOrderStatusSearch) SetOrm(tx *gorm.DB) *WechatOrderStatusSearch {
+ slf.Orm = tx
+ return slf
+}
+
+func (slf *WechatOrderStatusSearch) First() (*WechatOrderStatus, error) {
+ var db = slf.build()
+ var record = new(WechatOrderStatus)
+ err := db.First(record).Error
+ return record, err
+}
+
+func (slf *WechatOrderStatusSearch) Updates(values interface{}) error {
+ var db = slf.build()
+ return db.Updates(values).Error
+}
+
+func (slf *WechatOrderStatusSearch) Save(record *WechatOrderStatus) error {
+ if record.Id == 0 {
+ return errors.New("id涓虹┖")
+ }
+ var db = slf.build()
+
+ if err := db.Save(record).Error; err != nil {
+ return fmt.Errorf("save err: %v, record: %+v", err, record)
+ }
+
+ return nil
+}
+
+func (slf *WechatOrderStatusSearch) Find() ([]*WechatOrderStatus, int64, error) {
+ var db = slf.build()
+ var records = make([]*WechatOrderStatus, 0)
+ var total int64
+ if err := db.Count(&total).Error; err != nil {
+ return records, total, err
+ }
+ if slf.PageNum > 0 && slf.PageSize > 0 {
+ db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+ }
+
+ err := db.Find(&records).Error
+ return records, total, err
+}
+
+// InitDefaultData 鍒濆鍖栨暟鎹�
+func (slf *WechatOrderStatusSearch) InitDefaultData() error {
+ var (
+ db = slf.Orm.Table(slf.TableName())
+ total int64 = 0
+ )
+ if err := db.Count(&total).Error; err != nil {
+ return err
+ }
+ if total != 0 {
+ return nil
+ }
+ records := []*WechatOrderStatus{}
+ return slf.CreateBatch(records)
+}
diff --git a/pkg/contextx/contextx.go b/pkg/contextx/contextx.go
index 77a9b64..94fce95 100644
--- a/pkg/contextx/contextx.go
+++ b/pkg/contextx/contextx.go
@@ -42,7 +42,7 @@
if params != nil {
if err := r.ctx.ShouldBind(params); err != nil {
logx.Errorf("bind param error: %v", err.Error())
- r.Fail(ecode.ParamsErr)
+ r.FailWithMsg(ecode.ParamsErr, err.Error())
return
}
}
diff --git a/router/wechatOrderStatus.go b/router/wechatOrderStatus.go
new file mode 100644
index 0000000..732179c
--- /dev/null
+++ b/router/wechatOrderStatus.go
@@ -0,0 +1,17 @@
+package router
+
+import (
+ v1 "aps_crm/api/v1"
+ "github.com/gin-gonic/gin"
+)
+
+func InitWechatOrderStatusRouter(router *gin.RouterGroup) {
+ WechatOrderStatusRouter := router.Group("wechatOrderStatus")
+ WechatOrderStatusApi := v1.WechatOrderStatusApi{}
+ {
+ WechatOrderStatusRouter.POST("add", WechatOrderStatusApi.Add) // 娣诲姞寰俊璁㈠崟鐘舵��
+ WechatOrderStatusRouter.DELETE("delete/:id", WechatOrderStatusApi.Delete) // 鍒犻櫎寰俊璁㈠崟鐘舵��
+ WechatOrderStatusRouter.PUT("update", WechatOrderStatusApi.Update) // 鏇存柊寰俊璁㈠崟鐘舵��
+ WechatOrderStatusRouter.GET("list", WechatOrderStatusApi.List) // 鑾峰彇寰俊璁㈠崟鐘舵�佸垪琛�
+ }
+}
diff --git a/service/salesDetails.go b/service/salesDetails.go
index 8c0b0a2..d504748 100644
--- a/service/salesDetails.go
+++ b/service/salesDetails.go
@@ -1,6 +1,7 @@
package service
import (
+ "aps_crm/constvar"
"aps_crm/model"
"aps_crm/pkg/ecode"
)
@@ -44,9 +45,12 @@
return ecode.OK
}
-func (SalesDetailsService) GetSalesDetailsList(page, pageSize int, keyword string) ([]*model.SalesDetails, int64, int) {
+func (SalesDetailsService) GetSalesDetailsList(page, pageSize int, keywordType constvar.SalesDetailsKeywordType, keyword string) ([]*model.SalesDetails, int64, int) {
// get contact list
- contacts, total, err := model.NewSalesDetailsSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll()
+ contacts, total, err := model.NewSalesDetailsSearch().
+ SetPreload(true).
+ SetKeywordType(keywordType).
+ SetKeyword(keyword).SetPage(page, pageSize).FindAll()
if err != nil {
return nil, 0, ecode.SalesDetailsListErr
}
diff --git a/service/wechatOrderStatus.go b/service/wechatOrderStatus.go
new file mode 100644
index 0000000..bc7b442
--- /dev/null
+++ b/service/wechatOrderStatus.go
@@ -0,0 +1,55 @@
+package service
+
+import (
+ "aps_crm/model"
+ "aps_crm/pkg/ecode"
+)
+
+type WechatOrderStatusService struct{}
+
+func NewWechatOrderStatusService() WechatOrderStatusService {
+ return WechatOrderStatusService{}
+}
+
+func (WechatOrderStatusService) AddWechatOrderStatus(wechatOrderStatus *model.WechatOrderStatus) int {
+ err := model.NewWechatOrderStatusSearch().Create(wechatOrderStatus)
+ if err != nil {
+ return ecode.DBErr
+ }
+
+ return ecode.OK
+}
+
+func (WechatOrderStatusService) GetWechatOrderStatus(id int) (*model.WechatOrderStatus, int) {
+ wechatOrderStatus, err := model.NewWechatOrderStatusSearch().SetId(id).First()
+ if err != nil {
+ return nil, ecode.DBErr
+ }
+
+ return wechatOrderStatus, ecode.OK
+}
+
+func (WechatOrderStatusService) DeleteWechatOrderStatus(id int) int {
+ err := model.NewWechatOrderStatusSearch().SetId(id).Delete()
+ if err != nil {
+ return ecode.DBErr
+ }
+ return ecode.OK
+}
+
+func (WechatOrderStatusService) GetWechatOrderStatusList() ([]*model.WechatOrderStatus, int64, int) {
+ list, total, err := model.NewWechatOrderStatusSearch().Find()
+ if err != nil {
+ return nil, 0, ecode.DBErr
+ }
+
+ return list, total, ecode.OK
+}
+
+func (WechatOrderStatusService) UpdateWechatOrderStatus(wechatOrderStatus *model.WechatOrderStatus) int {
+ err := model.NewWechatOrderStatusSearch().SetId(wechatOrderStatus.Id).Save(wechatOrderStatus)
+ if err != nil {
+ return ecode.DBErr
+ }
+ return ecode.OK
+}
--
Gitblit v1.8.0