From 58b19364744f6f61c64978dda97b01eec37823b0 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期五, 21 七月 2023 11:29:00 +0800
Subject: [PATCH] add
---
api/v1/index.go | 2
api/v1/serviceContracts.go | 2
model/request/serviceContractStatus.go | 15 +
model/serviceContractStatus.go | 85 +++++
service/dataServer.go | 5
pkg/ecode/code.go | 9
docs/swagger.yaml | 122 ++++++++
model/serviceContracts.go | 36 +-
docs/docs.go | 194 ++++++++++++
service/serviceContractStatus.go | 69 ++++
docs/swagger.json | 194 ++++++++++++
model/response/response.go | 8
model/serviceFollowup.go | 1
router/serviceContractStatus.go | 20 +
service/index.go | 1
model/index.go | 1
router/index.go | 2
api/v1/serviceContractStatus.go | 113 +++++++
18 files changed, 850 insertions(+), 29 deletions(-)
diff --git a/api/v1/index.go b/api/v1/index.go
index a2f82eb..de368c7 100644
--- a/api/v1/index.go
+++ b/api/v1/index.go
@@ -5,6 +5,7 @@
)
type Group struct {
+ ServiceContractStatusApi
OrderTypeApi
ReportSourceApi
IsVisitApi
@@ -110,4 +111,5 @@
isVisitService = service.ServiceGroup.IsVisitService
reportSourceService = service.ServiceGroup.ReportSourceService
orderTypeService = service.ServiceGroup.OrderTypeService
+ serviceContractStatusService = service.ServiceGroup.ServiceContractStatusService
)
\ No newline at end of file
diff --git a/api/v1/serviceContractStatus.go b/api/v1/serviceContractStatus.go
new file mode 100644
index 0000000..ffbf8bd
--- /dev/null
+++ b/api/v1/serviceContractStatus.go
@@ -0,0 +1,113 @@
+
+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 ServiceContractStatusApi struct{}
+
+// Add
+//
+// @Tags ServiceContractStatus
+// @Summary 娣诲姞鏈嶅姟鍚堝悓鐘舵��
+// @Produce application/json
+// @Param object body request.AddServiceContractStatus true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/serviceContractStatus/add [post]
+func (s *ServiceContractStatusApi) Add(c *gin.Context) {
+ var params request.AddServiceContractStatus
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+
+ serviceContractStatus := new(model.ServiceContractStatus)
+ serviceContractStatus.Name = params.Name
+
+ errCode := serviceContractStatusService.AddServiceContractStatus(serviceContractStatus)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// Delete
+//
+// @Tags ServiceContractStatus
+// @Summary 鍒犻櫎鏈嶅姟鍚堝悓鐘舵��
+// @Produce application/json
+// @Param id path int true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/serviceContractStatus/delete/{id} [delete]
+func (s *ServiceContractStatusApi) Delete(c *gin.Context) {
+ ctx, ok := contextx.NewContext(c, nil)
+ if !ok {
+ return
+ }
+
+ id, _ := strconv.Atoi(c.Param("id"))
+ errCode := serviceContractStatusService.DeleteServiceContractStatus(id)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// Update
+//
+// @Tags ServiceContractStatus
+// @Summary 鏇存柊鏈嶅姟鍚堝悓鐘舵��
+// @Produce application/json
+// @Param object body request.UpdateServiceContractStatuss true "鏌ヨ鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/serviceContractStatus/update [put]
+func (s *ServiceContractStatusApi) Update(c *gin.Context) {
+ var params request.UpdateServiceContractStatuss
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+
+ errCode := serviceContractStatusService.UpdateServiceContractStatus(params.ServiceContractStatuss)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
+
+// List
+//
+// @Tags ServiceContractStatus
+// @Summary 鑾峰彇鏈嶅姟鍚堝悓鐘舵�佸垪琛�
+// @Produce application/json
+// @Success 200 {object} contextx.Response{data=response.ServiceContractStatusResponse}
+// @Router /api/serviceContractStatus/list [get]
+func (s *ServiceContractStatusApi) List(c *gin.Context) {
+ ctx, ok := contextx.NewContext(c, nil)
+ if !ok {
+ return
+ }
+
+ serviceContractStatuss, errCode := serviceContractStatusService.GetServiceContractStatusList()
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.OkWithDetailed(response.ServiceContractStatusResponse{
+ List: serviceContractStatuss,
+ })
+}
diff --git a/api/v1/serviceContracts.go b/api/v1/serviceContracts.go
index 092c1e2..71461ec 100644
--- a/api/v1/serviceContracts.go
+++ b/api/v1/serviceContracts.go
@@ -165,7 +165,7 @@
result.SaleChanceId = serviceContract.SaleChanceId
result.QuotationId = serviceContract.QuotationId
result.TypeId = serviceContract.TypeId
- result.StatusId = serviceContract.StatusId
+ result.ServiceContractStatusId = serviceContract.StatusId
result.ServiceTimes = serviceContract.ServiceTimes
result.Terms = serviceContract.Terms
result.Products = serviceContract.Products
diff --git a/docs/docs.go b/docs/docs.go
index c4b1657..0fb9be2 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -4757,6 +4757,125 @@
}
}
},
+ "/api/serviceContractStatus/add": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "娣诲姞鏈嶅姟鍚堝悓鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.AddServiceContractStatus"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/serviceContractStatus/delete/{id}": {
+ "delete": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "鍒犻櫎鏈嶅姟鍚堝悓鐘舵��",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "鏌ヨ鍙傛暟",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/serviceContractStatus/list": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "鑾峰彇鏈嶅姟鍚堝悓鐘舵�佸垪琛�",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/contextx.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/response.ServiceContractStatusResponse"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/api/serviceContractStatus/update": {
+ "put": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "鏇存柊鏈嶅姟鍚堝悓鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.UpdateServiceContractStatuss"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
"/api/serviceFeeManage/add": {
"post": {
"produces": [
@@ -7007,6 +7126,9 @@
"saleChanceId": {
"type": "integer"
},
+ "serviceContractStatusId": {
+ "type": "integer"
+ },
"serviceTimes": {
"type": "integer"
},
@@ -7016,14 +7138,22 @@
"startTime": {
"type": "string"
},
- "statusId": {
- "type": "integer"
- },
"terms": {
"type": "string"
},
"typeId": {
"type": "integer"
+ }
+ }
+ },
+ "model.ServiceContractStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
}
}
},
@@ -7987,6 +8117,17 @@
},
"typeId": {
"type": "integer"
+ }
+ }
+ },
+ "request.AddServiceContractStatus": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
}
}
},
@@ -9887,6 +10028,35 @@
}
}
},
+ "request.UpdateServiceContractStatus": {
+ "type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ }
+ },
+ "request.UpdateServiceContractStatuss": {
+ "type": "object",
+ "required": [
+ "service_contract_status"
+ ],
+ "properties": {
+ "service_contract_status": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/request.UpdateServiceContractStatus"
+ }
+ }
+ }
+ },
"request.UpdateServiceFeeManage": {
"type": "object",
"properties": {
@@ -10406,6 +10576,13 @@
"$ref": "#/definitions/model.Satisfaction"
}
},
+ "serviceContractStatus": {
+ "description": "鏈嶅姟鍚堝悓鐘舵��",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.ServiceContractStatus"
+ }
+ },
"solve_rate": {
"description": "瑙e喅鐜�",
"type": "array",
@@ -10726,6 +10903,17 @@
}
}
},
+ "response.ServiceContractStatusResponse": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.ServiceContractStatus"
+ }
+ }
+ }
+ },
"response.ServiceContractsResponse": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 8775d73..cc5ad71 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -4745,6 +4745,125 @@
}
}
},
+ "/api/serviceContractStatus/add": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "娣诲姞鏈嶅姟鍚堝悓鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.AddServiceContractStatus"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/serviceContractStatus/delete/{id}": {
+ "delete": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "鍒犻櫎鏈嶅姟鍚堝悓鐘舵��",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "鏌ヨ鍙傛暟",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
+ "/api/serviceContractStatus/list": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "鑾峰彇鏈嶅姟鍚堝悓鐘舵�佸垪琛�",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/contextx.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/response.ServiceContractStatusResponse"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/api/serviceContractStatus/update": {
+ "put": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "ServiceContractStatus"
+ ],
+ "summary": "鏇存柊鏈嶅姟鍚堝悓鐘舵��",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.UpdateServiceContractStatuss"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/contextx.Response"
+ }
+ }
+ }
+ }
+ },
"/api/serviceFeeManage/add": {
"post": {
"produces": [
@@ -6995,6 +7114,9 @@
"saleChanceId": {
"type": "integer"
},
+ "serviceContractStatusId": {
+ "type": "integer"
+ },
"serviceTimes": {
"type": "integer"
},
@@ -7004,14 +7126,22 @@
"startTime": {
"type": "string"
},
- "statusId": {
- "type": "integer"
- },
"terms": {
"type": "string"
},
"typeId": {
"type": "integer"
+ }
+ }
+ },
+ "model.ServiceContractStatus": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
}
}
},
@@ -7975,6 +8105,17 @@
},
"typeId": {
"type": "integer"
+ }
+ }
+ },
+ "request.AddServiceContractStatus": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
}
}
},
@@ -9875,6 +10016,35 @@
}
}
},
+ "request.UpdateServiceContractStatus": {
+ "type": "object",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ }
+ },
+ "request.UpdateServiceContractStatuss": {
+ "type": "object",
+ "required": [
+ "service_contract_status"
+ ],
+ "properties": {
+ "service_contract_status": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/request.UpdateServiceContractStatus"
+ }
+ }
+ }
+ },
"request.UpdateServiceFeeManage": {
"type": "object",
"properties": {
@@ -10394,6 +10564,13 @@
"$ref": "#/definitions/model.Satisfaction"
}
},
+ "serviceContractStatus": {
+ "description": "鏈嶅姟鍚堝悓鐘舵��",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.ServiceContractStatus"
+ }
+ },
"solve_rate": {
"description": "瑙e喅鐜�",
"type": "array",
@@ -10714,6 +10891,17 @@
}
}
},
+ "response.ServiceContractStatusResponse": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.ServiceContractStatus"
+ }
+ }
+ }
+ },
"response.ServiceContractsResponse": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 44987a4..ba59af5 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -839,18 +839,25 @@
type: string
saleChanceId:
type: integer
+ serviceContractStatusId:
+ type: integer
serviceTimes:
type: integer
signTime:
type: string
startTime:
type: string
- statusId:
- type: integer
terms:
type: string
typeId:
type: integer
+ type: object
+ model.ServiceContractStatus:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
type: object
model.ServiceFeeManage:
properties:
@@ -1495,6 +1502,13 @@
type: string
typeId:
type: integer
+ type: object
+ request.AddServiceContractStatus:
+ properties:
+ name:
+ type: string
+ required:
+ - name
type: object
request.AddServiceFeeManage:
properties:
@@ -2779,6 +2793,25 @@
typeId:
type: integer
type: object
+ request.UpdateServiceContractStatus:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ required:
+ - id
+ - name
+ type: object
+ request.UpdateServiceContractStatuss:
+ properties:
+ service_contract_status:
+ items:
+ $ref: '#/definitions/request.UpdateServiceContractStatus'
+ type: array
+ required:
+ - service_contract_status
+ type: object
request.UpdateServiceFeeManage:
properties:
business_scope:
@@ -3133,6 +3166,11 @@
items:
$ref: '#/definitions/model.Satisfaction'
type: array
+ serviceContractStatus:
+ description: 鏈嶅姟鍚堝悓鐘舵��
+ items:
+ $ref: '#/definitions/model.ServiceContractStatus'
+ type: array
solve_rate:
description: 瑙e喅鐜�
items:
@@ -3336,6 +3374,13 @@
list:
items:
$ref: '#/definitions/model.Satisfaction'
+ type: array
+ type: object
+ response.ServiceContractStatusResponse:
+ properties:
+ list:
+ items:
+ $ref: '#/definitions/model.ServiceContractStatus'
type: array
type: object
response.ServiceContractsResponse:
@@ -6295,6 +6340,79 @@
summary: 鏇存柊鏈嶅姟鍚堝悓
tags:
- ServiceContract
+ /api/serviceContractStatus/add:
+ post:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.AddServiceContractStatus'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 娣诲姞鏈嶅姟鍚堝悓鐘舵��
+ tags:
+ - ServiceContractStatus
+ /api/serviceContractStatus/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:
+ - ServiceContractStatus
+ /api/serviceContractStatus/list:
+ get:
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ allOf:
+ - $ref: '#/definitions/contextx.Response'
+ - properties:
+ data:
+ $ref: '#/definitions/response.ServiceContractStatusResponse'
+ type: object
+ summary: 鑾峰彇鏈嶅姟鍚堝悓鐘舵�佸垪琛�
+ tags:
+ - ServiceContractStatus
+ /api/serviceContractStatus/update:
+ put:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.UpdateServiceContractStatuss'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/contextx.Response'
+ summary: 鏇存柊鏈嶅姟鍚堝悓鐘舵��
+ tags:
+ - ServiceContractStatus
/api/serviceFeeManage/add:
post:
parameters:
diff --git a/model/index.go b/model/index.go
index bb92b2e..887f1e6 100644
--- a/model/index.go
+++ b/model/index.go
@@ -70,6 +70,7 @@
IsVisit{},
ReportSource{},
OrderType{},
+ ServiceContractStatus{},
)
return err
}
\ No newline at end of file
diff --git a/model/request/serviceContractStatus.go b/model/request/serviceContractStatus.go
new file mode 100644
index 0000000..98ec257
--- /dev/null
+++ b/model/request/serviceContractStatus.go
@@ -0,0 +1,15 @@
+
+package request
+
+type AddServiceContractStatus struct {
+ Name string ` json:"name" binding:"required"`
+}
+
+type UpdateServiceContractStatus struct {
+ Id int `json:"id" binding:"required"`
+ Name string `json:"name" binding:"required"`
+}
+
+type UpdateServiceContractStatuss struct {
+ ServiceContractStatuss []*UpdateServiceContractStatus `json:"service_contract_status" binding:"required"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index d24bd16..dc71ab1 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -180,6 +180,10 @@
DataResponse struct {
+ // 鏈嶅姟鍚堝悓鐘舵��
+ ServiceContractStatus []*model.ServiceContractStatus `json:"serviceContractStatus"`
+
+
// 宸ュ崟绫诲瀷
OrderType []*model.OrderType `json:"orderType"`
@@ -262,4 +266,8 @@
OrderTypeResponse struct {
List []*model.OrderType `json:"list"`
}
+
+ ServiceContractStatusResponse struct {
+ List []*model.ServiceContractStatus `json:"list"`
+ }
)
\ No newline at end of file
diff --git a/model/serviceContractStatus.go b/model/serviceContractStatus.go
new file mode 100644
index 0000000..f3631c4
--- /dev/null
+++ b/model/serviceContractStatus.go
@@ -0,0 +1,85 @@
+package model
+
+import (
+ "aps_crm/pkg/mysqlx"
+ "gorm.io/gorm"
+)
+
+type (
+ // ServiceContractStatus 鍟嗘満闃舵
+ ServiceContractStatus struct {
+ Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+ Name string `json:"name" gorm:"column:name;type:varchar(255);comment:鍟嗘満闃舵鍚嶇О"`
+ }
+
+ ServiceContractStatusSearch struct {
+ ServiceContractStatus
+ Orm *gorm.DB
+ }
+)
+
+func (ServiceContractStatus) TableName() string {
+ return "service_contract_status"
+}
+
+func NewServiceContractStatusSearch() *ServiceContractStatusSearch {
+ return &ServiceContractStatusSearch{
+ Orm: mysqlx.GetDB(),
+ }
+}
+
+func (slf *ServiceContractStatusSearch) build() *gorm.DB {
+ var db = slf.Orm.Model(&ServiceContractStatus{})
+ if slf.Id != 0 {
+ db = db.Where("id = ?", slf.Id)
+ }
+ if slf.Name != "" {
+ db = db.Where("name = ?", slf.Name)
+ }
+
+ return db
+}
+
+func (slf *ServiceContractStatusSearch) Create(record *ServiceContractStatus) error {
+ var db = slf.build()
+ return db.Create(record).Error
+}
+
+func (slf *ServiceContractStatusSearch) Delete() error {
+ var db = slf.build()
+ return db.Delete(&ServiceContractStatus{}).Error
+}
+
+func (slf *ServiceContractStatusSearch) Update(record *ServiceContractStatus) error {
+ var db = slf.build()
+ return db.Updates(record).Error
+}
+
+func (slf *ServiceContractStatusSearch) Find() (*ServiceContractStatus, error) {
+ var db = slf.build()
+ var record = new(ServiceContractStatus)
+ err := db.First(record).Error
+ return record, err
+}
+
+func (slf *ServiceContractStatusSearch) FindAll() ([]*ServiceContractStatus, error) {
+ var db = slf.build()
+ var records = make([]*ServiceContractStatus, 0)
+ err := db.Find(&records).Error
+ return records, err
+}
+
+func (slf *ServiceContractStatusSearch) SetId(id int) *ServiceContractStatusSearch {
+ slf.Id = id
+ return slf
+}
+
+func (slf *ServiceContractStatusSearch) SetName(name string) *ServiceContractStatusSearch {
+ slf.Name = name
+ return slf
+}
+
+func (slf *ServiceContractStatusSearch) Updates(data map[string]interface{}) error {
+ var db = slf.build()
+ return db.Updates(data).Error
+}
diff --git a/model/serviceContracts.go b/model/serviceContracts.go
index 38a24e9..e4a5eac 100644
--- a/model/serviceContracts.go
+++ b/model/serviceContracts.go
@@ -8,24 +8,24 @@
type (
ServiceContract struct {
- Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
- ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
- Number string `json:"number" gorm:"column:number;type:varchar(255);comment:鍚堝悓缂栧彿"`
- MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"`
- ContactId int `json:"contactId" gorm:"column:contact_id;type:int;comment:鑱旂郴浜篿d"`
- SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
- ContractId int `json:"contractId" gorm:"column:contract_id;type:int;comment:鍚堝悓id"`
- QuotationId int `json:"quotationId" gorm:"column:quotation_id;type:int;comment:鎶ヤ环鍗昳d"`
- TypeId int `json:"typeId" gorm:"column:type_id;type:int;comment:鍚堝悓绫诲瀷id"`
- SignTime time.Time `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛剧害鏃堕棿"`
- StartTime time.Time `json:"startTime" gorm:"column:start_time;type:datetime;comment:寮�濮嬫椂闂�"`
- EndTime time.Time `json:"endTime" gorm:"column:end_time;type:datetime;comment:缁撴潫鏃堕棿"`
- StatusId int `json:"statusId" gorm:"column:status_id;type:int;comment:鍚堝悓鐘舵�乮d"`
- ServiceTimes int `json:"serviceTimes" gorm:"column:service_times;type:int;comment:鏈嶅姟娆℃暟"`
- Terms string `json:"terms" gorm:"column:terms;type:text;comment:鏉℃"`
- Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"`
- Products []Product `json:"products" gorm:"many2many:serviceContract_product;"`
- 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"`
+ Number string `json:"number" gorm:"column:number;type:varchar(255);comment:鍚堝悓缂栧彿"`
+ MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"`
+ ContactId int `json:"contactId" gorm:"column:contact_id;type:int;comment:鑱旂郴浜篿d"`
+ SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
+ ContractId int `json:"contractId" gorm:"column:contract_id;type:int;comment:鍚堝悓id"`
+ QuotationId int `json:"quotationId" gorm:"column:quotation_id;type:int;comment:鎶ヤ环鍗昳d"`
+ TypeId int `json:"typeId" gorm:"column:type_id;type:int;comment:鍚堝悓绫诲瀷id"`
+ SignTime time.Time `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛剧害鏃堕棿"`
+ StartTime time.Time `json:"startTime" gorm:"column:start_time;type:datetime;comment:寮�濮嬫椂闂�"`
+ EndTime time.Time `json:"endTime" gorm:"column:end_time;type:datetime;comment:缁撴潫鏃堕棿"`
+ ServiceContractStatusId int `json:"serviceContractStatusId" gorm:"column:service_contract_status_id;type:int;comment:鍚堝悓鐘舵�乮d"`
+ ServiceTimes int `json:"serviceTimes" gorm:"column:service_times;type:int;comment:鏈嶅姟娆℃暟"`
+ Terms string `json:"terms" gorm:"column:terms;type:text;comment:鏉℃"`
+ Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"`
+ Products []Product `json:"products" gorm:"many2many:serviceContract_product;"`
+ gorm.Model `json:"-"`
}
ServiceContractSearch struct {
diff --git a/model/serviceFollowup.go b/model/serviceFollowup.go
index 6a3fc37..0372909 100644
--- a/model/serviceFollowup.go
+++ b/model/serviceFollowup.go
@@ -85,7 +85,6 @@
return slf
}
-// 宸ュ崟绫诲瀷 鎶ヤ慨鏉ユ簮锛堝伐鍗曠鐞嗭級
// 鍚堝悓绫诲瀷 鍚堝悓鐘舵�侊紙鏈嶅姟鍚堝悓锛�
// 浠樻鏂瑰紡 鏄惁寮�绁� 璐︽埛锛堥攢鍞��娆惧崟锛�
// 閫�鍏ヤ粨搴� 鐘舵�侊紙閿�鍞��璐у崟锛�
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index a8ac5d0..4edaaa3 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -328,4 +328,11 @@
OrderTypeSetErr = 4700004 // 璁剧疆宸ュ崟绫诲瀷澶辫触
OrderTypeUpdateErr = 4700005 // 鏇存柊宸ュ崟绫诲瀷澶辫触
-)
+
+ ServiceContractStatusExist = 4400001 // 鏈嶅姟鍚堝悓鐘舵�佸凡瀛樺湪
+ ServiceContractStatusNotExist = 4400002 // 鏈嶅姟鍚堝悓鐘舵�佷笉瀛樺湪
+ ServiceContractStatusListErr = 4400003 // 鑾峰彇鏈嶅姟鍚堝悓鐘舵�佸垪琛ㄥけ璐�
+ ServiceContractStatusSetErr = 4400004 // 璁剧疆鏈嶅姟鍚堝悓鐘舵�佸け璐�
+ ServiceContractStatusUpdateErr = 4400005 // 鏇存柊鏈嶅姟鍚堝悓鐘舵�佸け璐�
+
+)
\ No newline at end of file
diff --git a/router/index.go b/router/index.go
index b69c936..4adef30 100644
--- a/router/index.go
+++ b/router/index.go
@@ -11,6 +11,7 @@
)
type Group struct {
+ ServiceContractStatusRouter
OrderTypeRouter
ReportSourceRouter
IsVisitRouter
@@ -139,6 +140,7 @@
routerGroup.InitIsVisitRouter(PrivateGroup)
routerGroup.InitReportSourceRouter(PrivateGroup)
routerGroup.InitOrderTypeRouter(PrivateGroup)
+ routerGroup.InitServiceContractStatusRouter(PrivateGroup)
}
return Router
}
\ No newline at end of file
diff --git a/router/serviceContractStatus.go b/router/serviceContractStatus.go
new file mode 100644
index 0000000..0f0d48e
--- /dev/null
+++ b/router/serviceContractStatus.go
@@ -0,0 +1,20 @@
+
+package router
+
+import (
+ v1 "aps_crm/api/v1"
+ "github.com/gin-gonic/gin"
+)
+
+type ServiceContractStatusRouter struct{}
+
+func (s *ServiceContractStatusRouter) InitServiceContractStatusRouter(router *gin.RouterGroup) {
+ serviceContractStatusRouter := router.Group("serviceContractStatus")
+ serviceContractStatusApi := v1.ApiGroup.ServiceContractStatusApi
+ {
+ serviceContractStatusRouter.POST("add", serviceContractStatusApi.Add) // 娣诲姞$CName$
+ serviceContractStatusRouter.DELETE("delete/:id", serviceContractStatusApi.Delete) // 鍒犻櫎$CName$
+ serviceContractStatusRouter.PUT("update", serviceContractStatusApi.Update) // 鏇存柊$CName$
+ serviceContractStatusRouter.GET("list", serviceContractStatusApi.List) // 鑾峰彇$CName$鍒楄〃
+ }
+}
\ No newline at end of file
diff --git a/service/dataServer.go b/service/dataServer.go
index 14ca846..d14e783 100644
--- a/service/dataServer.go
+++ b/service/dataServer.go
@@ -106,6 +106,11 @@
data.OrderType = orderTypeList
+ // get ServiceContractStatus list
+ serviceContractStatusList, _ := ServiceGroup.GetServiceContractStatusList()
+ data.ServiceContractStatus = serviceContractStatusList
+
+
errCode = ecode.OK
return
diff --git a/service/index.go b/service/index.go
index e0434f8..013dce5 100644
--- a/service/index.go
+++ b/service/index.go
@@ -51,6 +51,7 @@
IsVisitService
ReportSourceService
OrderTypeService
+ ServiceContractStatusService
}
var ServiceGroup = new(Group)
\ No newline at end of file
diff --git a/service/serviceContractStatus.go b/service/serviceContractStatus.go
new file mode 100644
index 0000000..93cced0
--- /dev/null
+++ b/service/serviceContractStatus.go
@@ -0,0 +1,69 @@
+
+package service
+
+import (
+ "aps_crm/model"
+ "aps_crm/model/request"
+ "aps_crm/pkg/ecode"
+)
+
+type ServiceContractStatusService struct{}
+
+func (ServiceContractStatusService) AddServiceContractStatus(serviceContractStatus *model.ServiceContractStatus) int {
+ err := model.NewServiceContractStatusSearch().Create(serviceContractStatus)
+ if err != nil {
+ return ecode.ServiceContractStatusExist
+ }
+
+ return ecode.OK
+}
+
+func (ServiceContractStatusService) DeleteServiceContractStatus(id int) int {
+ _, err := model.NewServiceContractStatusSearch().SetId(id).Find()
+ if err != nil {
+ return ecode.ServiceContractStatusNotExist
+ }
+
+ err = model.NewServiceContractStatusSearch().SetId(id).Delete()
+ if err != nil {
+ return ecode.ServiceContractStatusNotExist
+ }
+ return ecode.OK
+}
+
+func (ServiceContractStatusService) GetServiceContractStatusList() ([]*model.ServiceContractStatus, int) {
+ list, err := model.NewServiceContractStatusSearch().FindAll()
+ if err != nil {
+ return nil, ecode.ServiceContractStatusListErr
+ }
+
+ return list, ecode.OK
+}
+
+func (ServiceContractStatusService) UpdateServiceContractStatus(serviceContractStatuss []*request.UpdateServiceContractStatus) int {
+ for _, v := range serviceContractStatuss {
+ // check serviceContractStatus exist
+ _, err := model.NewServiceContractStatusSearch().SetId(v.Id).Find()
+ if err != nil {
+ return ecode.ServiceContractStatusNotExist
+ }
+
+ err = model.NewServiceContractStatusSearch().SetId(v.Id).Updates(map[string]interface{}{
+ "name": v.Name,
+ })
+ if err != nil {
+ return ecode.ServiceContractStatusSetErr
+ }
+ }
+
+ return ecode.OK
+}
+
+func (ServiceContractStatusService) GetServiceContractStatusDetail(id int) (*model.ServiceContractStatus, int) {
+ serviceContractStatus, err := model.NewServiceContractStatusSearch().SetId(id).Find()
+ if err != nil {
+ return nil, ecode.ServiceContractStatusNotExist
+ }
+
+ return serviceContractStatus, ecode.OK
+}
--
Gitblit v1.8.0