From 6a8a20e02f0530284296d3373d44aa218fc85210 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期五, 21 七月 2023 10:33:32 +0800
Subject: [PATCH] add
---
api/v1/index.go | 2
service/dataServer.go | 7
model/solveRate.go | 85 +++++
service/solveRate.go | 69 ++++
pkg/ecode/code.go | 5
docs/swagger.yaml | 125 ++++++++
docs/docs.go | 197 +++++++++++++
docs/swagger.json | 197 +++++++++++++
model/response/response.go | 6
model/serviceFollowup.go | 2
model/request/solveRate.go | 15 +
service/index.go | 1
api/v1/solveRate.go | 112 +++++++
router/solveRate.go | 20 +
model/index.go | 1
router/index.go | 2
api/v1/serviceFollowup.go | 2
17 files changed, 842 insertions(+), 6 deletions(-)
diff --git a/api/v1/index.go b/api/v1/index.go
index 7142d2e..dc8b10b 100644
--- a/api/v1/index.go
+++ b/api/v1/index.go
@@ -5,6 +5,7 @@
)
type Group struct {
+ SolveRateApi
TimelyRateApi
BaseApi
JwtApi
@@ -102,4 +103,5 @@
vettingService = service.ServiceGroup.VettingService
satisfactionService = service.ServiceGroup.SatisfactionService
timelyRateService = service.ServiceGroup.TimelyRateService
+ solveRateService = service.ServiceGroup.SolveRateService
)
diff --git a/api/v1/serviceFollowup.go b/api/v1/serviceFollowup.go
index 2157325..e124cc7 100644
--- a/api/v1/serviceFollowup.go
+++ b/api/v1/serviceFollowup.go
@@ -141,7 +141,7 @@
PlanId: serviceFollowup.PlanId,
SatisfactionId: serviceFollowup.Satisfaction,
TimelyRateId: serviceFollowup.TimelyRate,
- SolveRate: serviceFollowup.SolveRate,
+ SolveRateId: serviceFollowup.SolveRate,
IsVisit: serviceFollowup.IsVisit,
OldMemberId: serviceFollowup.OldMemberId,
Remark: serviceFollowup.Remark,
diff --git a/api/v1/solveRate.go b/api/v1/solveRate.go
new file mode 100644
index 0000000..d7c931c
--- /dev/null
+++ b/api/v1/solveRate.go
@@ -0,0 +1,112 @@
+package v1
+
+import (
+ "aps_crm/model"
+ "aps_crm/model/request"
+ "aps_crm/model/response"
+ "aps_crm/pkg/contextx"
+ "aps_crm/pkg/ecode"
+ "github.com/gin-gonic/gin"
+ "strconv"
+)
+
+type SolveRateApi struct{}
+
+// Add
+//
+// @Tags SolveRate
+// @Summary 娣诲姞瑙e喅鐜�
+// @Produce application/json
+// @Param object body request.AddSolveRate true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/solveRate/add [post]
+func (s *SolveRateApi) Add(c *gin.Context) {
+ var params request.AddSolveRate
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+
+ solveRate := new(model.SolveRate)
+ solveRate.Name = params.Name
+
+ errCode := solveRateService.AddSolveRate(solveRate)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// Delete
+//
+// @Tags SolveRate
+// @Summary 鍒犻櫎瑙e喅鐜�
+// @Produce application/json
+// @Param id path int true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/solveRate/delete/{id} [delete]
+func (s *SolveRateApi) Delete(c *gin.Context) {
+ ctx, ok := contextx.NewContext(c, nil)
+ if !ok {
+ return
+ }
+
+ id, _ := strconv.Atoi(c.Param("id"))
+ errCode := solveRateService.DeleteSolveRate(id)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// Update
+//
+// @Tags SolveRate
+// @Summary 鏇存柊瑙e喅鐜�
+// @Produce application/json
+// @Param object body request.UpdateSolveRates true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/solveRate/update [put]
+func (s *SolveRateApi) Update(c *gin.Context) {
+ var params request.UpdateSolveRates
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+
+ errCode := solveRateService.UpdateSolveRate(params.SolveRates)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// List
+//
+// @Tags SolveRate
+// @Summary 鑾峰彇瑙e喅鐜囧垪琛�
+// @Produce application/json
+// @Success 200 {object} contextx.Response{data=response.SolveRateResponse}
+// @Router /api/solveRate/list [get]
+func (s *SolveRateApi) List(c *gin.Context) {
+ ctx, ok := contextx.NewContext(c, nil)
+ if !ok {
+ return
+ }
+
+ solveRates, errCode := solveRateService.GetSolveRateList()
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.OkWithDetailed(response.SolveRateResponse{
+ List: solveRates,
+ })
+}
diff --git a/docs/docs.go b/docs/docs.go
index eeb01be..75ba54b 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -4638,6 +4638,125 @@
}
}
},
+ "/api/solveRate/add": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "娣诲姞瑙e喅鐜�",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.AddSolveRate"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/solveRate/delete/{id}": {
+ "delete": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "鍒犻櫎瑙e喅鐜�",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "鏌ヨ鍙傛暟",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/solveRate/list": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "鑾峰彇瑙e喅鐜囧垪琛�",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/contextx.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/response.SolveRateResponse"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/api/solveRate/update": {
+ "put": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "鏇存柊瑙e喅鐜�",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.UpdateSolveRates"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
"/api/status/add": {
"post": {
"produces": [
@@ -6586,11 +6705,22 @@
"serviceId": {
"type": "integer"
},
- "solveRate": {
+ "solveRateId": {
"type": "integer"
},
"timelyRateId": {
"type": "integer"
+ }
+ }
+ },
+ "model.SolveRate": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
}
}
},
@@ -7580,6 +7710,17 @@
},
"timelyRate": {
"type": "integer"
+ }
+ }
+ },
+ "request.AddSolveRate": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
}
}
},
@@ -9386,6 +9527,35 @@
}
}
},
+ "request.UpdateSolveRate": {
+ "type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ }
+ },
+ "request.UpdateSolveRates": {
+ "type": "object",
+ "required": [
+ "solve_rate"
+ ],
+ "properties": {
+ "solve_rate": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/request.UpdateSolveRate"
+ }
+ }
+ }
+ },
"request.UpdateStatus": {
"type": "object",
"required": [
@@ -9704,6 +9874,20 @@
"items": {
"$ref": "#/definitions/model.Satisfaction"
}
+ },
+ "solve_rate": {
+ "description": "瑙e喅鐜�",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.SolveRate"
+ }
+ },
+ "timely_rate": {
+ "description": "鍙婃椂鐜�",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.TimelyRate"
+ }
}
}
},
@@ -10011,6 +10195,17 @@
}
}
},
+ "response.SolveRateResponse": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.SolveRate"
+ }
+ }
+ }
+ },
"response.SubOrderResponse": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index fc1e881..4d1423a 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -4626,6 +4626,125 @@
}
}
},
+ "/api/solveRate/add": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "娣诲姞瑙e喅鐜�",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.AddSolveRate"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/solveRate/delete/{id}": {
+ "delete": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "鍒犻櫎瑙e喅鐜�",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "鏌ヨ鍙傛暟",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/solveRate/list": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "鑾峰彇瑙e喅鐜囧垪琛�",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/contextx.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/response.SolveRateResponse"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/api/solveRate/update": {
+ "put": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "SolveRate"
+ ],
+ "summary": "鏇存柊瑙e喅鐜�",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.UpdateSolveRates"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
"/api/status/add": {
"post": {
"produces": [
@@ -6574,11 +6693,22 @@
"serviceId": {
"type": "integer"
},
- "solveRate": {
+ "solveRateId": {
"type": "integer"
},
"timelyRateId": {
"type": "integer"
+ }
+ }
+ },
+ "model.SolveRate": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
}
}
},
@@ -7568,6 +7698,17 @@
},
"timelyRate": {
"type": "integer"
+ }
+ }
+ },
+ "request.AddSolveRate": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
}
}
},
@@ -9374,6 +9515,35 @@
}
}
},
+ "request.UpdateSolveRate": {
+ "type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ }
+ },
+ "request.UpdateSolveRates": {
+ "type": "object",
+ "required": [
+ "solve_rate"
+ ],
+ "properties": {
+ "solve_rate": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/request.UpdateSolveRate"
+ }
+ }
+ }
+ },
"request.UpdateStatus": {
"type": "object",
"required": [
@@ -9692,6 +9862,20 @@
"items": {
"$ref": "#/definitions/model.Satisfaction"
}
+ },
+ "solve_rate": {
+ "description": "瑙e喅鐜�",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.SolveRate"
+ }
+ },
+ "timely_rate": {
+ "description": "鍙婃椂鐜�",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.TimelyRate"
+ }
}
}
},
@@ -9999,6 +10183,17 @@
}
}
},
+ "response.SolveRateResponse": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.SolveRate"
+ }
+ }
+ }
+ },
"response.SubOrderResponse": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 9b02d7a..cb0cbb2 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -876,10 +876,17 @@
type: integer
serviceId:
type: integer
- solveRate:
+ solveRateId:
type: integer
timelyRateId:
type: integer
+ type: object
+ model.SolveRate:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
type: object
model.SubOrder:
properties:
@@ -1549,6 +1556,13 @@
type: integer
timelyRate:
type: integer
+ type: object
+ request.AddSolveRate:
+ properties:
+ name:
+ type: string
+ required:
+ - name
type: object
request.AddStatus:
properties:
@@ -2771,6 +2785,25 @@
timelyRate:
type: integer
type: object
+ request.UpdateSolveRate:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ required:
+ - id
+ - name
+ type: object
+ request.UpdateSolveRates:
+ properties:
+ solve_rate:
+ items:
+ $ref: '#/definitions/request.UpdateSolveRate'
+ type: array
+ required:
+ - solve_rate
+ type: object
request.UpdateStatus:
properties:
id:
@@ -2986,6 +3019,16 @@
items:
$ref: '#/definitions/model.Satisfaction'
type: array
+ solve_rate:
+ description: 瑙e喅鐜�
+ items:
+ $ref: '#/definitions/model.SolveRate'
+ type: array
+ timely_rate:
+ description: 鍙婃椂鐜�
+ items:
+ $ref: '#/definitions/model.TimelyRate'
+ type: array
type: object
response.DepartmentResponse:
properties:
@@ -3179,6 +3222,13 @@
list:
items:
$ref: '#/definitions/model.ServiceFollowup'
+ type: array
+ type: object
+ response.SolveRateResponse:
+ properties:
+ list:
+ items:
+ $ref: '#/definitions/model.SolveRate'
type: array
type: object
response.SubOrderResponse:
@@ -6037,6 +6087,79 @@
summary: 鏇存柊鏈嶅姟璺熻繘
tags:
- ServiceFollowup
+ /api/solveRate/add:
+ post:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.AddSolveRate'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 娣诲姞瑙e喅鐜�
+ tags:
+ - SolveRate
+ /api/solveRate/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: 鍒犻櫎瑙e喅鐜�
+ tags:
+ - SolveRate
+ /api/solveRate/list:
+ get:
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ allOf:
+ - $ref: '#/definitions/contextx.Response'
+ - properties:
+ data:
+ $ref: '#/definitions/response.SolveRateResponse'
+ type: object
+ summary: 鑾峰彇瑙e喅鐜囧垪琛�
+ tags:
+ - SolveRate
+ /api/solveRate/update:
+ put:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.UpdateSolveRates'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 鏇存柊瑙e喅鐜�
+ tags:
+ - SolveRate
/api/status/add:
post:
parameters:
diff --git a/model/index.go b/model/index.go
index efcc71c..2ded31e 100644
--- a/model/index.go
+++ b/model/index.go
@@ -65,6 +65,7 @@
Department{},
Satisfaction{},
TimelyRate{},
+ SolveRate{},
)
return err
}
diff --git a/model/request/solveRate.go b/model/request/solveRate.go
new file mode 100644
index 0000000..33b7145
--- /dev/null
+++ b/model/request/solveRate.go
@@ -0,0 +1,15 @@
+
+package request
+
+type AddSolveRate struct {
+ Name string ` json:"name" binding:"required"`
+}
+
+type UpdateSolveRate struct {
+ Id int `json:"id" binding:"required"`
+ Name string `json:"name" binding:"required"`
+}
+
+type UpdateSolveRates struct {
+ SolveRates []*UpdateSolveRate `json:"solve_rate" binding:"required"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index 61a502c..2bb073b 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -219,6 +219,8 @@
Satisfaction []*model.Satisfaction `json:"satisfaction"`
// 鍙婃椂鐜�
TimelyRate []*model.TimelyRate `json:"timely_rate"`
+ // 瑙e喅鐜�
+ SolveRate []*model.SolveRate `json:"solve_rate"`
}
DepartmentResponse struct {
@@ -232,4 +234,8 @@
TimelyRateResponse struct {
List []*model.TimelyRate `json:"list"`
}
+
+ SolveRateResponse struct {
+ List []*model.SolveRate `json:"list"`
+ }
)
diff --git a/model/serviceFollowup.go b/model/serviceFollowup.go
index 9b15ae9..4557eff 100644
--- a/model/serviceFollowup.go
+++ b/model/serviceFollowup.go
@@ -17,7 +17,7 @@
PlanId int `json:"planId" gorm:"column:plan_id;type:int;comment:鏈嶅姟璁″垝id"`
SatisfactionId int `json:"satisfactionId" gorm:"column:satisfaction_id;type:int;comment:婊℃剰搴d"`
TimelyRateId int `json:"timelyRateId" gorm:"column:timely_rate_id;type:int;comment:鍙婃椂鐜噄d"`
- SolveRate int `json:"solveRate" gorm:"column:solve_rate;type:int;comment:瑙e喅鐜�"`
+ SolveRateId int `json:"solveRateId" gorm:"column:solve_rate_id;type:int;comment:瑙e喅鐜噄d"`
IsVisit int `json:"isVisit" gorm:"column:is_visit;type:int;comment:鏈嶅姟浜哄憳鏄惁鏉ヨ繃"`
OldMemberId int `json:"oldMemberId" gorm:"column:old_member_id;type:int;comment:鍘熸湇鍔′汉鍛�"`
Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"`
diff --git a/model/solveRate.go b/model/solveRate.go
new file mode 100644
index 0000000..97f6be1
--- /dev/null
+++ b/model/solveRate.go
@@ -0,0 +1,85 @@
+package model
+
+import (
+ "aps_crm/pkg/mysqlx"
+ "gorm.io/gorm"
+)
+
+type (
+ // SolveRate 鍟嗘満闃舵
+ SolveRate struct {
+ Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+ Name string `json:"name" gorm:"column:name;type:varchar(255);comment:鍟嗘満闃舵鍚嶇О"`
+ }
+
+ SolveRateSearch struct {
+ SolveRate
+ Orm *gorm.DB
+ }
+)
+
+func (SolveRate) TableName() string {
+ return "solve_rate"
+}
+
+func NewSolveRateSearch() *SolveRateSearch {
+ return &SolveRateSearch{
+ Orm: mysqlx.GetDB(),
+ }
+}
+
+func (slf *SolveRateSearch) build() *gorm.DB {
+ var db = slf.Orm.Model(&SolveRate{})
+ if slf.Id != 0 {
+ db = db.Where("id = ?", slf.Id)
+ }
+ if slf.Name != "" {
+ db = db.Where("name = ?", slf.Name)
+ }
+
+ return db
+}
+
+func (slf *SolveRateSearch) Create(record *SolveRate) error {
+ var db = slf.build()
+ return db.Create(record).Error
+}
+
+func (slf *SolveRateSearch) Delete() error {
+ var db = slf.build()
+ return db.Delete(&SolveRate{}).Error
+}
+
+func (slf *SolveRateSearch) Update(record *SolveRate) error {
+ var db = slf.build()
+ return db.Updates(record).Error
+}
+
+func (slf *SolveRateSearch) Find() (*SolveRate, error) {
+ var db = slf.build()
+ var record = new(SolveRate)
+ err := db.First(record).Error
+ return record, err
+}
+
+func (slf *SolveRateSearch) FindAll() ([]*SolveRate, error) {
+ var db = slf.build()
+ var records = make([]*SolveRate, 0)
+ err := db.Find(&records).Error
+ return records, err
+}
+
+func (slf *SolveRateSearch) SetId(id int) *SolveRateSearch {
+ slf.Id = id
+ return slf
+}
+
+func (slf *SolveRateSearch) SetName(name string) *SolveRateSearch {
+ slf.Name = name
+ return slf
+}
+
+func (slf *SolveRateSearch) Updates(data map[string]interface{}) error {
+ var db = slf.build()
+ return db.Updates(data).Error
+}
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index bab5c87..2b7b61e 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -304,4 +304,9 @@
TimelyRateSetErr = 4300004 // 璁剧疆鍙婃椂鐜囧け璐�
TimelyRateUpdateErr = 4300005 // 鏇存柊鍙婃椂鐜囧け璐�
+ SolveRateExist = 4400001 // 瑙e喅鐜囧凡瀛樺湪
+ SolveRateNotExist = 4400002 // 瑙e喅鐜囦笉瀛樺湪
+ SolveRateListErr = 4400003 // 鑾峰彇瑙e喅鐜囧垪琛ㄥけ璐�
+ SolveRateSetErr = 4400004 // 璁剧疆瑙e喅鐜囧け璐�
+ SolveRateUpdateErr = 4400005 // 鏇存柊瑙e喅鐜囧け璐�
)
diff --git a/router/index.go b/router/index.go
index c23206c..21f46de 100644
--- a/router/index.go
+++ b/router/index.go
@@ -11,6 +11,7 @@
)
type Group struct {
+ SolveRateRouter
TimelyRateRouter
BaseRouter
UserRouter
@@ -131,6 +132,7 @@
routerGroup.InitDepartmentRouter(PrivateGroup) // 娉ㄥ唽department璺敱
routerGroup.InitSatisfactionRouter(PrivateGroup) // 娉ㄥ唽satisfaction璺敱
routerGroup.InitTimelyRateRouter(PrivateGroup)
+ routerGroup.InitSolveRateRouter(PrivateGroup)
}
return Router
}
diff --git a/router/solveRate.go b/router/solveRate.go
new file mode 100644
index 0000000..fa20b2e
--- /dev/null
+++ b/router/solveRate.go
@@ -0,0 +1,20 @@
+
+package router
+
+import (
+ v1 "aps_crm/api/v1"
+ "github.com/gin-gonic/gin"
+)
+
+type SolveRateRouter struct{}
+
+func (s *SolveRateRouter) InitSolveRateRouter(router *gin.RouterGroup) {
+ solveRateRouter := router.Group("solveRate")
+ solveRateApi := v1.ApiGroup.SolveRateApi
+ {
+ solveRateRouter.POST("add", solveRateApi.Add) // 娣诲姞閿�鍞樁娈�
+ solveRateRouter.DELETE("delete/:id", solveRateApi.Delete) // 鍒犻櫎閿�鍞樁娈�
+ solveRateRouter.PUT("update", solveRateApi.Update) // 鏇存柊閿�鍞樁娈�
+ solveRateRouter.GET("list", solveRateApi.List) // 鑾峰彇閿�鍞樁娈靛垪琛�
+ }
+}
\ No newline at end of file
diff --git a/service/dataServer.go b/service/dataServer.go
index 15d2d04..8af4b8c 100644
--- a/service/dataServer.go
+++ b/service/dataServer.go
@@ -88,7 +88,12 @@
timelyRateList, _ := ServiceGroup.GetTimelyRateList()
data.TimelyRate = timelyRateList
+ // get SolveRate list
+ solveRateList, _ := ServiceGroup.GetSolveRateList()
+ data.SolveRate = solveRateList
+
+
errCode = ecode.OK
return
-}
+}
\ No newline at end of file
diff --git a/service/index.go b/service/index.go
index 6655a5f..cd34420 100644
--- a/service/index.go
+++ b/service/index.go
@@ -47,6 +47,7 @@
VettingService
SatisfactionService
TimelyRateService
+ SolveRateService
}
var ServiceGroup = new(Group)
diff --git a/service/solveRate.go b/service/solveRate.go
new file mode 100644
index 0000000..2cc2807
--- /dev/null
+++ b/service/solveRate.go
@@ -0,0 +1,69 @@
+
+package service
+
+import (
+ "aps_crm/model"
+ "aps_crm/model/request"
+ "aps_crm/pkg/ecode"
+)
+
+type SolveRateService struct{}
+
+func (SolveRateService) AddSolveRate(solveRate *model.SolveRate) int {
+ err := model.NewSolveRateSearch().Create(solveRate)
+ if err != nil {
+ return ecode.SolveRateExist
+ }
+
+ return ecode.OK
+}
+
+func (SolveRateService) DeleteSolveRate(id int) int {
+ _, err := model.NewSolveRateSearch().SetId(id).Find()
+ if err != nil {
+ return ecode.SolveRateNotExist
+ }
+
+ err = model.NewSolveRateSearch().SetId(id).Delete()
+ if err != nil {
+ return ecode.SolveRateNotExist
+ }
+ return ecode.OK
+}
+
+func (SolveRateService) GetSolveRateList() ([]*model.SolveRate, int) {
+ list, err := model.NewSolveRateSearch().FindAll()
+ if err != nil {
+ return nil, ecode.SolveRateListErr
+ }
+
+ return list, ecode.OK
+}
+
+func (SolveRateService) UpdateSolveRate(solveRates []*request.UpdateSolveRate) int {
+ for _, v := range solveRates {
+ // check solveRate exist
+ _, err := model.NewSolveRateSearch().SetId(v.Id).Find()
+ if err != nil {
+ return ecode.SolveRateNotExist
+ }
+
+ err = model.NewSolveRateSearch().SetId(v.Id).Updates(map[string]interface{}{
+ "name": v.Name,
+ })
+ if err != nil {
+ return ecode.SolveRateSetErr
+ }
+ }
+
+ return ecode.OK
+}
+
+func (SolveRateService) GetSolveRateDetail(id int) (*model.SolveRate, int) {
+ solveRate, err := model.NewSolveRateSearch().SetId(id).Find()
+ if err != nil {
+ return nil, ecode.SolveRateNotExist
+ }
+
+ return solveRate, ecode.OK
+}
--
Gitblit v1.8.0