From dd39909b3d8172856313ea7b2e19d1d7a039a582 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期二, 15 八月 2023 16:43:22 +0800
Subject: [PATCH] fix
---
api/v1/client.go | 24 ++++++++
service/client.go | 11 +++
model/client.go | 12 +++
model/request/client.go | 4 +
docs/swagger.yaml | 24 ++++++++
router/client.go | 5 +
docs/docs.go | 38 ++++++++++++
docs/swagger.json | 38 ++++++++++++
8 files changed, 153 insertions(+), 3 deletions(-)
diff --git a/api/v1/client.go b/api/v1/client.go
index 1162b78..c4da6b7 100644
--- a/api/v1/client.go
+++ b/api/v1/client.go
@@ -201,3 +201,27 @@
Count: int(total),
})
}
+
+// CheckName
+//
+// @Tags Client
+// @Summary 妫�鏌ュ鎴峰悕绉版槸鍚﹂噸澶�
+// @Produce application/json
+// @Param object body request.CheckClientName true "鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/client/checkName [post]
+func (cli *ClientApi) CheckName(c *gin.Context) {
+ var params request.CheckClientName
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+
+ errCode := clientService.CheckName(params.Name)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
diff --git a/docs/docs.go b/docs/docs.go
index 0236c2f..8d18427 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -664,6 +664,36 @@
}
}
},
+ "/api/client/checkName": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Client"
+ ],
+ "summary": "妫�鏌ュ鎴峰悕绉版槸鍚﹂噸澶�",
+ "parameters": [
+ {
+ "description": "鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.CheckClientName"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
"/api/client/delete": {
"delete": {
"produces": [
@@ -14515,6 +14545,14 @@
}
}
},
+ "request.CheckClientName": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ }
+ },
"request.Contact": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 1465934..f5753ae 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -652,6 +652,36 @@
}
}
},
+ "/api/client/checkName": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Client"
+ ],
+ "summary": "妫�鏌ュ鎴峰悕绉版槸鍚﹂噸澶�",
+ "parameters": [
+ {
+ "description": "鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.CheckClientName"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
"/api/client/delete": {
"delete": {
"produces": [
@@ -14503,6 +14533,14 @@
}
}
},
+ "request.CheckClientName": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ }
+ },
"request.Contact": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 6628e6d..24f3e2d 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -3103,6 +3103,11 @@
description: 鐢ㄦ埛宀椾綅
type: string
type: object
+ request.CheckClientName:
+ properties:
+ name:
+ type: string
+ type: object
request.Contact:
properties:
birthday:
@@ -6286,6 +6291,25 @@
summary: 娣诲姞瀹㈡埛
tags:
- Client
+ /api/client/checkName:
+ post:
+ parameters:
+ - description: 鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.CheckClientName'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 妫�鏌ュ鎴峰悕绉版槸鍚﹂噸澶�
+ tags:
+ - Client
/api/client/delete:
delete:
parameters:
diff --git a/model/client.go b/model/client.go
index f68f542..f7c2b5e 100644
--- a/model/client.go
+++ b/model/client.go
@@ -10,7 +10,8 @@
type (
Client struct {
Id int `json:"id" gorm:"column:id;primaryKey;autoIncrement;not null"`
- Name string `json:"name" gorm:"column:name;unique;type:varchar(255);comment:瀹㈡埛鍚嶇О"`
+ Name string `json:"name" gorm:"column:name;uniqueIndex:name_isDeleted_idx;type:varchar(255);comment:瀹㈡埛鍚嶇О"`
+ IsDeleted bool `json:"-" gorm:"column:is_deleted;uniqueIndex:name_isDeleted_idx;type:tinyint(1);comment:鏄惁鍒犻櫎"`
Number string `json:"number" gorm:"column:number;type:varchar(255);comment:瀹㈡埛缂栧彿"`
ClientStatusId int `json:"client_status_id" gorm:"column:client_status_id;type:int(11);comment:瀹㈡埛鐘舵�両D"`
ClientStatus ClientStatus `json:"client_status" gorm:"foreignKey:ClientStatusId"`
@@ -59,6 +60,15 @@
}
}
+func (c *Client) BeforeSave(tx *gorm.DB) (err error) {
+ if c.DeletedAt.Valid {
+ c.IsDeleted = true
+ } else {
+ c.IsDeleted = false
+ }
+ return
+}
+
func (slf *ClientSearch) build() *gorm.DB {
var db = slf.Orm.Model(&Client{})
if slf.Id != 0 {
diff --git a/model/request/client.go b/model/request/client.go
index fb41a58..29303bf 100644
--- a/model/request/client.go
+++ b/model/request/client.go
@@ -36,3 +36,7 @@
type DeleteClient struct {
Ids []int `json:"ids"`
}
+
+type CheckClientName struct {
+ Name string `json:"name"`
+}
diff --git a/router/client.go b/router/client.go
index 3563b8d..b63dfaa 100644
--- a/router/client.go
+++ b/router/client.go
@@ -14,6 +14,7 @@
clientRouter.POST("add", clientApi.Add) // 娣诲姞瀹㈡埛
clientRouter.DELETE("delete", clientApi.Delete) // 鍒犻櫎瀹㈡埛
clientRouter.PUT("update", clientApi.Update) // 鏇存柊瀹㈡埛
- clientRouter.POST("list", clientApi.List) // 鑾峰彇瀹㈡埛鍒楄〃
+ clientRouter.POST("list", clientApi.List) // 鑾峰彇瀹㈡埛鍒楄〃
+ clientRouter.POST("checkName", clientApi.CheckName) // 妫�鏌ュ鎴峰悕绉版槸鍚﹂噸澶�
}
-}
\ No newline at end of file
+}
diff --git a/service/client.go b/service/client.go
index 523e368..e889606 100644
--- a/service/client.go
+++ b/service/client.go
@@ -4,6 +4,7 @@
"aps_crm/model"
"aps_crm/pkg/ecode"
"aps_crm/pkg/mysqlx"
+ "gorm.io/gorm"
)
type ClientService struct{}
@@ -121,3 +122,13 @@
}
return ecode.OK
}
+
+func (ClientService) CheckName(name string) int {
+ // check client exist
+ _, err := model.NewClientSearch(nil).SetName(name).First()
+ if err != gorm.ErrRecordNotFound {
+ return ecode.ClientExist
+ }
+
+ return ecode.OK
+}
--
Gitblit v1.8.0