From a35c7eb12dcce7c650025ba4d801d6ad6f1053c4 Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期四, 13 七月 2023 18:07:06 +0800 Subject: [PATCH] add --- api/v1/index.go | 2 api/v1/client.go | 17 service/client.go | 12 api/v1/serviceFeeManage.go | 156 +++++++ model/request/serviceFeeManage.go | 19 pkg/ecode/code.go | 8 docs/swagger.yaml | 216 +++++++++ docs/docs.go | 327 ++++++++++++++ docs/swagger.json | 327 ++++++++++++++ model/response/response.go | 4 service/serviceFeeManage.go | 66 +++ api/v1/customerServiceSheet.go | 4 model/serviceFeeManage.go | 85 +++ service/index.go | 1 router/serviceFeeManage.go | 19 model/client.go | 10 model/index.go | 1 logs/aps-admin.err.log | 11 router/index.go | 2 19 files changed, 1,276 insertions(+), 11 deletions(-) diff --git a/api/v1/client.go b/api/v1/client.go index 8d47ac9..2e3d7ee 100644 --- a/api/v1/client.go +++ b/api/v1/client.go @@ -98,6 +98,13 @@ client.LatestServiceTime = t + t, err = checkTimeFormat(params.RegistrationTime) + if err != nil { + return ecode.InvalidParams, nil + } + + client.RegistrationTime = t + client.ClientTypeId = params.ClientTypeId client.ClientOriginId = params.ClientOriginId client.ClientLevelId = params.ClientLevelId @@ -105,6 +112,16 @@ client.Remark = params.Remark client.Number = params.Number client.ServiceMemberId = params.ServiceMemberId + client.ProvinceId = params.ProvinceId + client.CityId = params.CityId + client.RegionId = params.RegionId + client.CountryId = params.CountryId + client.Business.BusinessScope = params.BusinessScope + client.Business.Representative = params.Representative + client.Business.RegisteredCapitalId = params.RegisteredCapitalId + client.Business.IndustryId = params.IndustryId + client.Business.EnterpriseNatureId = params.EnterpriseNatureId + client.Business.EnterpriseScaleId = params.EnterpriseScaleId if params.Contact.Name != "" { // assign the client's member id to contact when adding diff --git a/api/v1/customerServiceSheet.go b/api/v1/customerServiceSheet.go index 730f157..cc79739 100644 --- a/api/v1/customerServiceSheet.go +++ b/api/v1/customerServiceSheet.go @@ -71,8 +71,8 @@ // @Tags CustomerServiceSheet // @Summary 鏇存柊瀹㈡湇鍗� // @Produce application/json -// @Param object body request.UpdateCustomerServiceSheet true "鏌ヨ鍙傛暟" -// @Success 200 {object} contextx.Response{} +// @Param object body request.UpdateCustomerServiceSheet true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} // @Router /api/customerServiceSheet/update/{id} [put] func (s *CustomerServiceSheetApi) Update(c *gin.Context) { var params request.UpdateCustomerServiceSheet diff --git a/api/v1/index.go b/api/v1/index.go index a79e9fd..f8911cf 100644 --- a/api/v1/index.go +++ b/api/v1/index.go @@ -43,6 +43,7 @@ OrderManageApi ServiceFollowupApi CustomerServiceSheetApi + ServiceFeeManageApi } var ApiGroup = new(Group) @@ -85,4 +86,5 @@ orderManageService = service.ServiceGroup.OrderManageService serviceFollowupService = service.ServiceGroup.FollowupService customerServiceSheetService = service.ServiceGroup.CustomerServiceSheetService + serviceFeeManageService = service.ServiceGroup.FeeManageService ) diff --git a/api/v1/serviceFeeManage.go b/api/v1/serviceFeeManage.go new file mode 100644 index 0000000..afa4313 --- /dev/null +++ b/api/v1/serviceFeeManage.go @@ -0,0 +1,156 @@ +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 ServiceFeeManageApi struct{} + +// Add +// +// @Tags ServiceFeeManage +// @Summary 娣诲姞鏈嶅姟璐圭鐞� +// @Produce application/json +// @Param object body request.AddServiceFeeManage true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} +// @Router /api/serviceFeeManage/add [post] +func (s *ServiceFeeManageApi) Add(c *gin.Context) { + var params request.AddServiceFeeManage + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + return + } + + errCode, serviceFeeManage := checkServiceFeeManageParams(params.ServiceFeeManage) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + errCode = serviceFeeManageService.AddServiceFeeManage(&serviceFeeManage) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.Ok() +} + +// Delete +// +// @Tags ServiceFeeManage +// @Summary 鍒犻櫎鏈嶅姟璐圭鐞� +// @Produce application/json +// @Param id path int true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} +// @Router /api/serviceFeeManage/delete/{id} [delete] +func (s *ServiceFeeManageApi) Delete(c *gin.Context) { + ctx, ok := contextx.NewContext(c, nil) + if !ok { + return + } + + id, _ := strconv.Atoi(c.Param("id")) + errCode := serviceFeeManageService.DeleteServiceFeeManage(id) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.Ok() +} + +// Update +// +// @Tags ServiceFeeManage +// @Summary 鏇存柊鏈嶅姟璐圭鐞� +// @Produce application/json +// @Param object body request.UpdateServiceFeeManage true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} +// @Router /api/serviceFeeManage/update [put] +func (s *ServiceFeeManageApi) Update(c *gin.Context) { + var params request.UpdateServiceFeeManage + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + return + } + + errCode, serviceFeeManage := checkServiceFeeManageParams(params.ServiceFeeManage) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + code, client := checkClientParams(params.Client) + if code != ecode.OK { + ctx.Fail(code) + return + } + client.Id = serviceFeeManage.ClientId + serviceFeeManage.Client = client + serviceFeeManage.Id = params.Id + + errCode = serviceFeeManageService.UpdateServiceFeeManage(&serviceFeeManage) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.Ok() +} + +// List +// +// @Tags ServiceFeeManage +// @Summary 鏈嶅姟璐圭鐞嗗垪琛� +// @Produce application/json +// @Success 200 {object} contextx.Response{data=response.ServiceFeeManageResponse} +// @Router /api/serviceFeeManage/list [get] +func (s *ServiceFeeManageApi) List(c *gin.Context) { + ctx, ok := contextx.NewContext(c, nil) + if !ok { + return + } + + list, errCode := serviceFeeManageService.GetServiceFeeManageList() + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.OkWithDetailed(response.ServiceFeeManageResponse{ + List: list, + }) +} + +// checkServiceFeeManageParams +func checkServiceFeeManageParams(serviceFeeManage request.ServiceFeeManage) (errCode int, result model.ServiceFeeManage) { + if serviceFeeManage.ClientId == 0 { + return ecode.InvalidParams, result + } + + if serviceFeeManage.MemberId == 0 { + return ecode.InvalidParams, result + } + + t, err := checkTimeFormat(serviceFeeManage.LatestDate) + if err != nil { + return ecode.InvalidParams, result + } + + result = model.ServiceFeeManage{ + ClientId: serviceFeeManage.ClientId, + MemberId: serviceFeeManage.MemberId, + Remark: serviceFeeManage.Remark, + LatestDate: t, + File: serviceFeeManage.File, + } + + return ecode.OK, result +} diff --git a/docs/docs.go b/docs/docs.go index efd3896..9ead6a7 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -3972,6 +3972,125 @@ } } }, + "/api/serviceFeeManage/add": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "娣诲姞鏈嶅姟璐圭鐞�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.AddServiceFeeManage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/serviceFeeManage/delete/{id}": { + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "鍒犻櫎鏈嶅姟璐圭鐞�", + "parameters": [ + { + "type": "integer", + "description": "鏌ヨ鍙傛暟", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/serviceFeeManage/list": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "鏈嶅姟璐圭鐞嗗垪琛�", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/contextx.Response" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/response.ServiceFeeManageResponse" + } + } + } + ] + } + } + } + } + }, + "/api/serviceFeeManage/update": { + "put": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "鏇存柊鏈嶅姟璐圭鐞�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UpdateServiceFeeManage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, "/api/serviceFollowup/add": { "post": { "produces": [ @@ -5008,6 +5127,32 @@ } } }, + "model.CustomerServiceSheet": { + "type": "object", + "properties": { + "handleStatus": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "memberId": { + "type": "integer" + }, + "number": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "serviceFollowupId": { + "type": "integer" + }, + "serviceMode": { + "type": "integer" + } + } + }, "model.EnterpriseNature": { "type": "object", "properties": { @@ -5659,6 +5804,32 @@ } } }, + "model.ServiceFeeManage": { + "type": "object", + "properties": { + "client": { + "$ref": "#/definitions/model.Client" + }, + "client_id": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "latest_date": { + "type": "string" + }, + "member_id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + } + }, "model.ServiceFollowup": { "type": "object", "properties": { @@ -5667,6 +5838,9 @@ }, "contactId": { "type": "integer" + }, + "customerServiceSheet": { + "$ref": "#/definitions/model.CustomerServiceSheet" }, "file": { "type": "string" @@ -6506,6 +6680,26 @@ } } }, + "request.AddServiceFeeManage": { + "type": "object", + "properties": { + "client_id": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "latest_date": { + "type": "string" + }, + "member_id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + } + }, "request.AddServiceFollowup": { "type": "object", "properties": { @@ -6608,6 +6802,102 @@ "pos": { "description": "鐢ㄦ埛宀椾綅", "type": "string" + } + } + }, + "request.Client": { + "type": "object", + "properties": { + "business_scope": { + "description": "缁忚惀鑼冨洿", + "type": "string" + }, + "city_id": { + "type": "integer" + }, + "client_level_id": { + "description": "瀹㈡埛绛夌骇ID", + "type": "integer" + }, + "client_origin_id": { + "description": "瀹㈡埛鏉ユ簮ID", + "type": "integer" + }, + "client_status_id": { + "description": "瀹㈡埛鐘舵�両D", + "type": "integer" + }, + "client_type_id": { + "description": "瀹㈡埛绫诲瀷ID", + "type": "integer" + }, + "contact": { + "$ref": "#/definitions/request.Contact" + }, + "country_id": { + "type": "integer" + }, + "detail_address": { + "description": "璇︾粏鍦板潃", + "type": "string" + }, + "enterprise_nature_id": { + "description": "浼佷笟鎬ц川", + "type": "integer" + }, + "enterprise_scale_id": { + "description": "浼佷笟瑙勬ā", + "type": "integer" + }, + "industry_id": { + "description": "鎵�灞炶涓�", + "type": "integer" + }, + "latest_service_time": { + "description": "鏈�鏅氭湇鍔℃椂闂�", + "type": "string" + }, + "member_id": { + "description": "閿�鍞礋璐d汉ID", + "type": "integer" + }, + "name": { + "description": "鍏徃鍚嶇О", + "type": "string" + }, + "next_visit_time": { + "description": "涓嬫鍥炶鏃堕棿", + "type": "string" + }, + "number": { + "description": "鍏徃缂栧彿", + "type": "string" + }, + "province_id": { + "type": "integer" + }, + "region_id": { + "type": "integer" + }, + "registered_capital_id": { + "description": "娉ㄥ唽璧勯噾", + "type": "integer" + }, + "registration_time": { + "description": "娉ㄥ唽鏃堕棿", + "type": "string" + }, + "remark": { + "description": "澶囨敞", + "type": "string" + }, + "representative": { + "description": "娉曚汉浠h〃", + "type": "string" + }, + "service_member_id": { + "description": "鏈嶅姟璐熻矗浜篒D", + "type": "integer" } } }, @@ -8089,6 +8379,32 @@ } } }, + "request.UpdateServiceFeeManage": { + "type": "object", + "properties": { + "client": { + "$ref": "#/definitions/request.Client" + }, + "client_id": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "latest_date": { + "type": "string" + }, + "member_id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + } + }, "request.UpdateServiceFollowup": { "type": "object", "properties": { @@ -8528,6 +8844,17 @@ } } }, + "response.ServiceFeeManageResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/model.ServiceFeeManage" + } + } + } + }, "response.ServiceFollowupResponse": { "type": "object", "properties": { diff --git a/docs/swagger.json b/docs/swagger.json index 9ec5ed2..7ced27c 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -3960,6 +3960,125 @@ } } }, + "/api/serviceFeeManage/add": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "娣诲姞鏈嶅姟璐圭鐞�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.AddServiceFeeManage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/serviceFeeManage/delete/{id}": { + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "鍒犻櫎鏈嶅姟璐圭鐞�", + "parameters": [ + { + "type": "integer", + "description": "鏌ヨ鍙傛暟", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/serviceFeeManage/list": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "鏈嶅姟璐圭鐞嗗垪琛�", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/contextx.Response" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/response.ServiceFeeManageResponse" + } + } + } + ] + } + } + } + } + }, + "/api/serviceFeeManage/update": { + "put": { + "produces": [ + "application/json" + ], + "tags": [ + "ServiceFeeManage" + ], + "summary": "鏇存柊鏈嶅姟璐圭鐞�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UpdateServiceFeeManage" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, "/api/serviceFollowup/add": { "post": { "produces": [ @@ -4996,6 +5115,32 @@ } } }, + "model.CustomerServiceSheet": { + "type": "object", + "properties": { + "handleStatus": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "memberId": { + "type": "integer" + }, + "number": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "serviceFollowupId": { + "type": "integer" + }, + "serviceMode": { + "type": "integer" + } + } + }, "model.EnterpriseNature": { "type": "object", "properties": { @@ -5647,6 +5792,32 @@ } } }, + "model.ServiceFeeManage": { + "type": "object", + "properties": { + "client": { + "$ref": "#/definitions/model.Client" + }, + "client_id": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "latest_date": { + "type": "string" + }, + "member_id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + } + }, "model.ServiceFollowup": { "type": "object", "properties": { @@ -5655,6 +5826,9 @@ }, "contactId": { "type": "integer" + }, + "customerServiceSheet": { + "$ref": "#/definitions/model.CustomerServiceSheet" }, "file": { "type": "string" @@ -6494,6 +6668,26 @@ } } }, + "request.AddServiceFeeManage": { + "type": "object", + "properties": { + "client_id": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "latest_date": { + "type": "string" + }, + "member_id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + } + }, "request.AddServiceFollowup": { "type": "object", "properties": { @@ -6596,6 +6790,102 @@ "pos": { "description": "鐢ㄦ埛宀椾綅", "type": "string" + } + } + }, + "request.Client": { + "type": "object", + "properties": { + "business_scope": { + "description": "缁忚惀鑼冨洿", + "type": "string" + }, + "city_id": { + "type": "integer" + }, + "client_level_id": { + "description": "瀹㈡埛绛夌骇ID", + "type": "integer" + }, + "client_origin_id": { + "description": "瀹㈡埛鏉ユ簮ID", + "type": "integer" + }, + "client_status_id": { + "description": "瀹㈡埛鐘舵�両D", + "type": "integer" + }, + "client_type_id": { + "description": "瀹㈡埛绫诲瀷ID", + "type": "integer" + }, + "contact": { + "$ref": "#/definitions/request.Contact" + }, + "country_id": { + "type": "integer" + }, + "detail_address": { + "description": "璇︾粏鍦板潃", + "type": "string" + }, + "enterprise_nature_id": { + "description": "浼佷笟鎬ц川", + "type": "integer" + }, + "enterprise_scale_id": { + "description": "浼佷笟瑙勬ā", + "type": "integer" + }, + "industry_id": { + "description": "鎵�灞炶涓�", + "type": "integer" + }, + "latest_service_time": { + "description": "鏈�鏅氭湇鍔℃椂闂�", + "type": "string" + }, + "member_id": { + "description": "閿�鍞礋璐d汉ID", + "type": "integer" + }, + "name": { + "description": "鍏徃鍚嶇О", + "type": "string" + }, + "next_visit_time": { + "description": "涓嬫鍥炶鏃堕棿", + "type": "string" + }, + "number": { + "description": "鍏徃缂栧彿", + "type": "string" + }, + "province_id": { + "type": "integer" + }, + "region_id": { + "type": "integer" + }, + "registered_capital_id": { + "description": "娉ㄥ唽璧勯噾", + "type": "integer" + }, + "registration_time": { + "description": "娉ㄥ唽鏃堕棿", + "type": "string" + }, + "remark": { + "description": "澶囨敞", + "type": "string" + }, + "representative": { + "description": "娉曚汉浠h〃", + "type": "string" + }, + "service_member_id": { + "description": "鏈嶅姟璐熻矗浜篒D", + "type": "integer" } } }, @@ -8077,6 +8367,32 @@ } } }, + "request.UpdateServiceFeeManage": { + "type": "object", + "properties": { + "client": { + "$ref": "#/definitions/request.Client" + }, + "client_id": { + "type": "integer" + }, + "file": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "latest_date": { + "type": "string" + }, + "member_id": { + "type": "integer" + }, + "remark": { + "type": "string" + } + } + }, "request.UpdateServiceFollowup": { "type": "object", "properties": { @@ -8516,6 +8832,17 @@ } } }, + "response.ServiceFeeManageResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/model.ServiceFeeManage" + } + } + } + }, "response.ServiceFollowupResponse": { "type": "object", "properties": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 3f09b42..1a9724c 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -296,6 +296,23 @@ $ref: '#/definitions/model.Province' type: array type: object + model.CustomerServiceSheet: + properties: + handleStatus: + type: integer + id: + type: integer + memberId: + type: integer + number: + type: string + priority: + type: integer + serviceFollowupId: + type: integer + serviceMode: + type: integer + type: object model.EnterpriseNature: properties: id: @@ -723,12 +740,31 @@ typeId: type: integer type: object + model.ServiceFeeManage: + properties: + client: + $ref: '#/definitions/model.Client' + client_id: + type: integer + file: + type: string + id: + type: integer + latest_date: + type: string + member_id: + type: integer + remark: + type: string + type: object model.ServiceFollowup: properties: clientId: type: integer contactId: type: integer + customerServiceSheet: + $ref: '#/definitions/model.CustomerServiceSheet' file: type: string id: @@ -1293,6 +1329,19 @@ typeId: type: integer type: object + request.AddServiceFeeManage: + properties: + client_id: + type: integer + file: + type: string + latest_date: + type: string + member_id: + type: integer + remark: + type: string + type: object request.AddServiceFollowup: properties: clientId: @@ -1363,6 +1412,76 @@ pos: description: 鐢ㄦ埛宀椾綅 type: string + type: object + request.Client: + properties: + business_scope: + description: 缁忚惀鑼冨洿 + type: string + city_id: + type: integer + client_level_id: + description: 瀹㈡埛绛夌骇ID + type: integer + client_origin_id: + description: 瀹㈡埛鏉ユ簮ID + type: integer + client_status_id: + description: 瀹㈡埛鐘舵�両D + type: integer + client_type_id: + description: 瀹㈡埛绫诲瀷ID + type: integer + contact: + $ref: '#/definitions/request.Contact' + country_id: + type: integer + detail_address: + description: 璇︾粏鍦板潃 + type: string + enterprise_nature_id: + description: 浼佷笟鎬ц川 + type: integer + enterprise_scale_id: + description: 浼佷笟瑙勬ā + type: integer + industry_id: + description: 鎵�灞炶涓� + type: integer + latest_service_time: + description: 鏈�鏅氭湇鍔℃椂闂� + type: string + member_id: + description: 閿�鍞礋璐d汉ID + type: integer + name: + description: 鍏徃鍚嶇О + type: string + next_visit_time: + description: 涓嬫鍥炶鏃堕棿 + type: string + number: + description: 鍏徃缂栧彿 + type: string + province_id: + type: integer + region_id: + type: integer + registered_capital_id: + description: 娉ㄥ唽璧勯噾 + type: integer + registration_time: + description: 娉ㄥ唽鏃堕棿 + type: string + remark: + description: 澶囨敞 + type: string + representative: + description: 娉曚汉浠h〃 + type: string + service_member_id: + description: 鏈嶅姟璐熻矗浜篒D + type: integer type: object request.Contact: properties: @@ -2363,6 +2482,23 @@ typeId: type: integer type: object + request.UpdateServiceFeeManage: + properties: + client: + $ref: '#/definitions/request.Client' + client_id: + type: integer + file: + type: string + id: + type: integer + latest_date: + type: string + member_id: + type: integer + remark: + type: string + type: object request.UpdateServiceFollowup: properties: clientId: @@ -2643,6 +2779,13 @@ list: items: $ref: '#/definitions/model.ServiceContract' + type: array + type: object + response.ServiceFeeManageResponse: + properties: + list: + items: + $ref: '#/definitions/model.ServiceFeeManage' type: array type: object response.ServiceFollowupResponse: @@ -5099,6 +5242,79 @@ summary: 鏇存柊鏈嶅姟鍚堝悓 tags: - ServiceContract + /api/serviceFeeManage/add: + post: + parameters: + - description: 鏌ヨ鍙傛暟 + in: body + name: object + required: true + schema: + $ref: '#/definitions/request.AddServiceFeeManage' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/contextx.Response' + summary: 娣诲姞鏈嶅姟璐圭鐞� + tags: + - ServiceFeeManage + /api/serviceFeeManage/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: + - ServiceFeeManage + /api/serviceFeeManage/list: + get: + produces: + - application/json + responses: + "200": + description: OK + schema: + allOf: + - $ref: '#/definitions/contextx.Response' + - properties: + data: + $ref: '#/definitions/response.ServiceFeeManageResponse' + type: object + summary: 鏈嶅姟璐圭鐞嗗垪琛� + tags: + - ServiceFeeManage + /api/serviceFeeManage/update: + put: + parameters: + - description: 鏌ヨ鍙傛暟 + in: body + name: object + required: true + schema: + $ref: '#/definitions/request.UpdateServiceFeeManage' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/contextx.Response' + summary: 鏇存柊鏈嶅姟璐圭鐞� + tags: + - ServiceFeeManage /api/serviceFollowup/add: post: parameters: diff --git a/logs/aps-admin.err.log b/logs/aps-admin.err.log index aba294a..8baf3e6 100644 --- a/logs/aps-admin.err.log +++ b/logs/aps-admin.err.log @@ -350,3 +350,14 @@ [2023-07-13 10:57:45] [error] [aps_crm/model.(*ServiceContractSearch).FindAll:80] trace {"error": ": unsupported relations for schema ServiceContract", "elapsed": 0.0011591, "rows": 2, "sql": "SELECT * FROM `service_contract`"} [2023-07-13 14:11:03] [error] [aps_crm/model.(*ServiceFollowupSearch).Create:53] trace {"error": "Error 1146 (42S02): Table 'aps_crm.service_followup' doesn't exist", "elapsed": 0.0024191, "rows": 0, "sql": "INSERT INTO `service_followup` (`client_id`,`number`,`contact_id`,`service_id`,`member_id`,`plan_id`,`satisfaction`,`timely_rate`,`solve_rate`,`is_visit`,`old_member_id`,`remark`,`file`) VALUES (0,'HF21',0,0,110,0,0,0,0,0,0,'string','string')"} [2023-07-13 15:00:16] [error] [aps_crm/model.(*CustomerServiceSheetSearch).Create:46] trace {"error": "Error 1146 (42S02): Table 'aps_crm.customer_service_sheet' doesn't exist", "elapsed": 0.0020622, "rows": 0, "sql": "INSERT INTO `customer_service_sheet` (`member_id`,`number`,`service_mode`,`priority`,`handle_status`,`created_at`,`updated_at`,`deleted_at`) VALUES (110,'HF30',0,0,0,'2023-07-13 15:00:16.507','2023-07-13 15:00:16.507',NULL)"} +[2023-07-13 16:51:08] [error] [aps_crm/model.(*ServiceFeeManageSearch).Create:51] trace {"error": "Error 1146 (42S02): Table 'aps_crm.service_fee_manage' doesn't exist", "elapsed": 0.0153005, "rows": 0, "sql": "INSERT INTO `service_fee_manage` (`client_id`,`member_id`,`latest_date`,`remark`,`file`,`created_at`,`updated_at`,`deleted_at`) VALUES (11,11,'1970-01-01 08:00:00','string','string','2023-07-13 16:51:08.533','2023-07-13 16:51:08.533',NULL)"} +[2023-07-13 17:00:44] [error] [aps_crm/model.(*ServiceFeeManageSearch).Update:56] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1", "elapsed": 0.0027936, "rows": 0, "sql": "UPDATE `service_fee_manage` SET `id`=1,`client_id`=11,`member_id`=11,`latest_date`='1970-01-01 08:00:00',`remark`='string',`file`='string',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:00:44.246',`deleted_at`=NULL WHERE id = 1 AND `service_fee_manage`.`deleted_at` IS NULL"} +[2023-07-13 17:01:15] [error] [aps_crm/model.(*ServiceFeeManageSearch).Update:56] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1", "elapsed": 0.0022256, "rows": 0, "sql": "UPDATE `service_fee_manage` SET `id`=1,`client_id`=11,`member_id`=11,`latest_date`='1970-01-01 08:00:00',`remark`='string',`file`='string',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:01:15.183',`deleted_at`=NULL WHERE id = 1 AND `service_fee_manage`.`deleted_at` IS NULL"} +[2023-07-13 17:08:23] [error] [aps_crm/model.(*ServiceFeeManageSearch).Update:56] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1", "elapsed": 0.0017581, "rows": 0, "sql": "UPDATE `service_fee_manage` SET `id`=1,`client_id`=11,`member_id`=11,`latest_date`='1970-01-01 08:00:00',`remark`='string',`file`='string',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:08:23.099',`deleted_at`=NULL WHERE id = 1 AND `service_fee_manage`.`deleted_at` IS NULL"} +[2023-07-13 17:48:17] [error] [aps_crm/model.(*ClientSearch).Update:70] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'registration_time' at row 1", "elapsed": 0.0058166, "rows": 0, "sql": "UPDATE `clients` SET `id`=11,`name`='string',`number`='string',`client_status_id`=1,`client_type_id`=0,`client_origin_id`=0,`client_level_id`=0,`member_id`=11,`service_member_id`=0,`detail_address`='string',`remark`='string',`next_visit_time`='1970-01-01 08:00:00',`latest_service_time`='1970-01-01 08:00:00',`country_id`=0,`province_id`=0,`city_id`=0,`region_id`=0,`representative`='',`registration_time`='0000-00-00 00:00:00',`registered_capital_id`=0,`industry_id`=0,`enterprise_nature_id`=0,`enterprise_scale_id`=0,`business_scope`='',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:48:17.558',`deleted_at`=NULL WHERE id = 11 AND `clients`.`deleted_at` IS NULL"} +[2023-07-13 17:51:09] [error] [aps_crm/model.(*ClientSearch).Update:70] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'registration_time' at row 1", "elapsed": 0.0012249, "rows": 0, "sql": "UPDATE `clients` SET `id`=11,`name`='string',`number`='string',`client_status_id`=1,`client_type_id`=0,`client_origin_id`=0,`client_level_id`=0,`member_id`=11,`service_member_id`=0,`detail_address`='string',`remark`='string',`next_visit_time`='1970-01-01 08:00:00',`latest_service_time`='1970-01-01 08:00:00',`country_id`=0,`province_id`=0,`city_id`=0,`region_id`=0,`representative`='',`registration_time`='0000-00-00 00:00:00',`registered_capital_id`=0,`industry_id`=0,`enterprise_nature_id`=0,`enterprise_scale_id`=0,`business_scope`='',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:51:09.321',`deleted_at`=NULL WHERE id = 11 AND `clients`.`deleted_at` IS NULL"} +[2023-07-13 17:53:30] [error] [aps_crm/model.(*ClientSearch).Update:70] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'registration_time' at row 1", "elapsed": 0.0027763, "rows": 0, "sql": "UPDATE `clients` SET `id`=11,`name`='string',`number`='string',`client_status_id`=1,`client_type_id`=0,`client_origin_id`=0,`client_level_id`=0,`member_id`=11,`service_member_id`=0,`detail_address`='string',`remark`='string',`next_visit_time`='1970-01-01 08:00:00',`latest_service_time`='1970-01-01 08:00:00',`country_id`=0,`province_id`=0,`city_id`=0,`region_id`=0,`representative`='',`registration_time`='0000-00-00 00:00:00',`registered_capital_id`=0,`industry_id`=0,`enterprise_nature_id`=0,`enterprise_scale_id`=0,`business_scope`='',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:53:30.214',`deleted_at`=NULL WHERE id = 11 AND `clients`.`deleted_at` IS NULL"} +[2023-07-13 17:58:57] [error] [aps_crm/model.(*ClientSearch).Update:70] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1", "elapsed": 0.0033448, "rows": 0, "sql": "UPDATE `clients` SET `id`=11,`name`='string',`number`='string',`client_status_id`=1,`client_type_id`=0,`client_origin_id`=0,`client_level_id`=0,`member_id`=11,`service_member_id`=0,`detail_address`='string',`remark`='string',`next_visit_time`='1970-01-01 08:00:00',`latest_service_time`='1970-01-01 08:00:00',`country_id`=0,`province_id`=0,`city_id`=1,`region_id`=0,`representative`='string',`registration_time`='1970-01-01 08:00:00',`registered_capital_id`=0,`industry_id`=0,`enterprise_nature_id`=0,`enterprise_scale_id`=0,`business_scope`='string',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:58:57.549',`deleted_at`=NULL WHERE id = 11 AND `clients`.`deleted_at` IS NULL"} +[2023-07-13 17:59:36] [error] [aps_crm/model.(*ClientSearch).Update:70] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1", "elapsed": 0.0011543, "rows": 0, "sql": "UPDATE `clients` SET `id`=11,`name`='string',`number`='string',`client_status_id`=1,`client_type_id`=0,`client_origin_id`=0,`client_level_id`=0,`member_id`=11,`service_member_id`=0,`detail_address`='string',`remark`='string',`next_visit_time`='1970-01-01 08:00:00',`latest_service_time`='1970-01-01 08:00:00',`country_id`=0,`province_id`=0,`city_id`=1,`region_id`=0,`representative`='string',`registration_time`='1970-01-01 08:00:00',`registered_capital_id`=0,`industry_id`=0,`enterprise_nature_id`=0,`enterprise_scale_id`=0,`business_scope`='string',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 17:59:36.66',`deleted_at`=NULL WHERE id = 11 AND `clients`.`deleted_at` IS NULL"} +[2023-07-13 18:01:19] [error] [aps_crm/model.(*ClientSearch).Update:70] trace {"error": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1", "elapsed": 0.0013602, "rows": 0, "sql": "UPDATE `clients` SET `id`=11,`name`='string',`number`='string',`client_status_id`=1,`client_type_id`=0,`client_origin_id`=0,`client_level_id`=0,`member_id`=11,`service_member_id`=0,`detail_address`='string',`remark`='string',`next_visit_time`='1970-01-01 08:00:00',`latest_service_time`='1970-01-01 08:00:00',`country_id`=0,`province_id`=0,`city_id`=1,`region_id`=0,`representative`='string',`registration_time`='1970-01-01 08:00:00',`registered_capital_id`=0,`industry_id`=0,`enterprise_nature_id`=0,`enterprise_scale_id`=0,`business_scope`='string',`created_at`='0000-00-00 00:00:00',`updated_at`='2023-07-13 18:01:19.088',`deleted_at`=NULL WHERE id = 11 AND `clients`.`deleted_at` IS NULL"} +[2023-07-13 18:01:58] [error] [aps_crm/model.(*ClientSearch).Update:70] trace {"error": "Error 1062 (23000): Duplicate entry 'string' for key 'name'", "elapsed": 0.0014261, "rows": 0, "sql": "UPDATE `clients` SET `id`=11,`name`='string',`number`='string',`client_status_id`=1,`member_id`=11,`detail_address`='string',`remark`='string',`next_visit_time`='1970-01-01 08:00:00',`latest_service_time`='1970-01-01 08:00:00',`city_id`=1,`representative`='string',`registration_time`='1970-01-01 08:00:00',`business_scope`='string',`updated_at`='2023-07-13 18:01:58.989' WHERE id = 11 AND `clients`.`deleted_at` IS NULL"} diff --git a/model/client.go b/model/client.go index 931337c..c9b994f 100644 --- a/model/client.go +++ b/model/client.go @@ -38,9 +38,13 @@ return "clients" } -func NewClientSearch() *ClientSearch { +func NewClientSearch(db *gorm.DB) *ClientSearch { + if db == nil { + db = mysqlx.GetDB() + } + return &ClientSearch{ - Orm: mysqlx.GetDB(), + Orm: db, } } @@ -63,7 +67,7 @@ func (slf *ClientSearch) Update(record *Client) error { var db = slf.build() - return db.Save(record).Error + return db.Updates(record).Error } func (slf *ClientSearch) Delete() error { diff --git a/model/index.go b/model/index.go index bedc358..e1495ff 100644 --- a/model/index.go +++ b/model/index.go @@ -59,6 +59,7 @@ OrderManage{}, ServiceFollowup{}, CustomerServiceSheet{}, + ServiceFeeManage{}, ) return err } diff --git a/model/request/serviceFeeManage.go b/model/request/serviceFeeManage.go new file mode 100644 index 0000000..2972640 --- /dev/null +++ b/model/request/serviceFeeManage.go @@ -0,0 +1,19 @@ +package request + +type AddServiceFeeManage struct { + ServiceFeeManage +} + +type ServiceFeeManage struct { + ClientId int `json:"client_id"` + MemberId int `json:"member_id"` + LatestDate string `json:"latest_date"` + Remark string `json:"remark"` + File string `json:"file"` +} + +type UpdateServiceFeeManage struct { + Id int `json:"id"` + Client Client `json:"client"` + ServiceFeeManage +} diff --git a/model/response/response.go b/model/response/response.go index 0665063..b22ccdf 100644 --- a/model/response/response.go +++ b/model/response/response.go @@ -169,4 +169,8 @@ CustomerServiceSheetResponse struct { List []*model.CustomerServiceSheet `json:"list"` } + + ServiceFeeManageResponse struct { + List []*model.ServiceFeeManage `json:"list"` + } ) diff --git a/model/serviceFeeManage.go b/model/serviceFeeManage.go new file mode 100644 index 0000000..5905d04 --- /dev/null +++ b/model/serviceFeeManage.go @@ -0,0 +1,85 @@ +package model + +import ( + "aps_crm/pkg/mysqlx" + "gorm.io/gorm" + "time" +) + +type ( + ServiceFeeManage struct { + Id int `json:"id" gorm:"column:id;primaryKey;autoIncrement;not null"` + ClientId int `json:"client_id" gorm:"column:client_id;type:int(11);comment:瀹㈡埛ID"` + Client *Client `json:"client" gorm:"foreignKey:ClientId"` + MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:鍛樺伐ID"` + LatestDate time.Time `json:"latest_date" gorm:"column:latest_date;type:datetime;comment:鏈�鏅氭湇鍔℃椂闂�"` + Remark string `json:"remark" gorm:"column:remark;type:varchar(255);comment:澶囨敞"` + File string `json:"file" gorm:"column:file;type:varchar(255);comment:鏂囦欢"` + gorm.Model `json:"-"` + } + + ServiceFeeManageSearch struct { + ServiceFeeManage + Orm *gorm.DB + } +) + +func (ServiceFeeManage) TableName() string { + return "service_fee_manage" +} + +func NewServiceFeeManageSearch(db *gorm.DB) *ServiceFeeManageSearch { + if db == nil { + db = mysqlx.GetDB() + } + + return &ServiceFeeManageSearch{ + Orm: db, + } +} + +func (slf *ServiceFeeManageSearch) build() *gorm.DB { + var db = slf.Orm.Model(&ServiceFeeManage{}) + if slf.Id != 0 { + db.Where("id = ?", slf.Id) + } + if slf.ClientId != 0 { + db.Where("client_id = ?", slf.ClientId) + } + + return db +} + +func (slf *ServiceFeeManageSearch) Create(record *ServiceFeeManage) error { + var db = slf.build() + return db.Create(record).Error +} + +func (slf *ServiceFeeManageSearch) Update(record *ServiceFeeManage) error { + var db = slf.build() + return db.Updates(record).Error +} + +func (slf *ServiceFeeManageSearch) Delete() error { + var db = slf.build() + return db.Delete(&ServiceFeeManage{}).Error +} + +func (slf *ServiceFeeManageSearch) SetId(id int) *ServiceFeeManageSearch { + slf.Id = id + return slf +} + +func (slf *ServiceFeeManageSearch) Find() (*ServiceFeeManage, error) { + var db = slf.build() + var record = new(ServiceFeeManage) + err := db.First(record).Error + return record, err +} + +func (slf *ServiceFeeManageSearch) FindAll() ([]*ServiceFeeManage, error) { + var db = slf.build() + var records = make([]*ServiceFeeManage, 0) + err := db.Find(&records).Error + return records, err +} diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go index a62d3a9..f6ebb8a 100644 --- a/pkg/ecode/code.go +++ b/pkg/ecode/code.go @@ -260,4 +260,12 @@ CustomerServiceSheetSetErr = 3600004 // 璁剧疆瀹㈡湇鍗曞け璐� CustomerServiceSheetUpdateErr = 3600005 // 鏇存柊瀹㈡湇鍗曞け璐� CustomerServiceSheetDeleteErr = 3600006 // 鍒犻櫎瀹㈡湇鍗曞け璐� + + ServiceFeeManageExist = 3700001 // 鏈嶅姟璐圭鐞嗗凡瀛樺湪 + ServiceFeeManageNotExist = 3700002 // 鏈嶅姟璐圭鐞嗕笉瀛樺湪 + ServiceFeeManageListErr = 3700003 // 鑾峰彇鏈嶅姟璐圭鐞嗗垪琛ㄥけ璐� + ServiceFeeManageSetErr = 3700004 // 璁剧疆鏈嶅姟璐圭鐞嗗け璐� + ServiceFeeManageUpdateErr = 3700005 // 鏇存柊鏈嶅姟璐圭鐞嗗け璐� + ServiceFeeManageDeleteErr = 3700006 // 鍒犻櫎鏈嶅姟璐圭鐞嗗け璐� + ) diff --git a/router/index.go b/router/index.go index f0fe7b7..f4bf5a5 100644 --- a/router/index.go +++ b/router/index.go @@ -49,6 +49,7 @@ OrderManageRouter ServiceFollowupRouter CustomerServiceSheetRouter + ServiceFeeManageRouter } func InitRouter() *gin.Engine { @@ -115,6 +116,7 @@ routerGroup.InitOrderManageRouter(PrivateGroup) // 娉ㄥ唽orderManage璺敱 routerGroup.InitServiceFollowupRouter(PrivateGroup) // 娉ㄥ唽serviceFollowup璺敱 routerGroup.InitCustomerServiceSheetRouter(PrivateGroup) // 娉ㄥ唽customerServiceSheet璺敱 + routerGroup.InitServiceFeeManageRouter(PrivateGroup) // 娉ㄥ唽serviceFeeManage璺敱 } return Router } diff --git a/router/serviceFeeManage.go b/router/serviceFeeManage.go new file mode 100644 index 0000000..92fd410 --- /dev/null +++ b/router/serviceFeeManage.go @@ -0,0 +1,19 @@ +package router + +import ( + v1 "aps_crm/api/v1" + "github.com/gin-gonic/gin" +) + +type ServiceFeeManageRouter struct{} + +func (s *ServiceFeeManageRouter) InitServiceFeeManageRouter(router *gin.RouterGroup) { + serviceFeeManageRouter := router.Group("serviceFeeManage") + serviceFeeManageApi := v1.ApiGroup.ServiceFeeManageApi + { + serviceFeeManageRouter.POST("add", serviceFeeManageApi.Add) // 娣诲姞鏈嶅姟璐圭鐞� + serviceFeeManageRouter.DELETE("delete/:id", serviceFeeManageApi.Delete) // 鍒犻櫎鏈嶅姟璐圭鐞� + serviceFeeManageRouter.PUT("update", serviceFeeManageApi.Update) // 鏇存柊鏈嶅姟璐圭鐞� + serviceFeeManageRouter.GET("list", serviceFeeManageApi.List) // 鑾峰彇鏈嶅姟璐圭鐞嗗垪琛� + } +} diff --git a/service/client.go b/service/client.go index 8ec562a..260ef66 100644 --- a/service/client.go +++ b/service/client.go @@ -8,7 +8,7 @@ type ClientService struct{} func (ClientService) AddClient(client *model.Client) int { - err := model.NewClientSearch().Create(client) + err := model.NewClientSearch(nil).Create(client) if err != nil { return ecode.ClientExist } @@ -17,13 +17,13 @@ func (ClientService) DeleteClient(id int) int { // check client exist - _, err := model.NewClientSearch().SetId(id).First() + _, err := model.NewClientSearch(nil).SetId(id).First() if err != nil { return ecode.ClientNotExist } // delete client - err = model.NewClientSearch().SetId(id).Delete() + err = model.NewClientSearch(nil).SetId(id).Delete() if err != nil { return ecode.ClientDeleteErr } @@ -32,7 +32,7 @@ func (ClientService) GetClientList() (int, []*model.Client) { // get client list - clients, err := model.NewClientSearch().Find() + clients, err := model.NewClientSearch(nil).Find() if err != nil { return ecode.ClientListErr, nil } @@ -42,7 +42,7 @@ // CheckClientExist check client exist func CheckClientExist(id int) int { - _, err := model.NewClientSearch().SetId(id).First() + _, err := model.NewClientSearch(nil).SetId(id).First() if err != nil { return ecode.ClientNotExist } @@ -58,7 +58,7 @@ } // update client - err := model.NewClientSearch().SetId(client.Id).Update(client) + err := model.NewClientSearch(nil).SetId(client.Id).Update(client) if err != nil { return ecode.ClientUpdateErr } diff --git a/service/index.go b/service/index.go index 4c2e03e..bd133db 100644 --- a/service/index.go +++ b/service/index.go @@ -38,6 +38,7 @@ OrderManageService FollowupService CustomerServiceSheetService + FeeManageService } var ServiceGroup = new(Group) diff --git a/service/serviceFeeManage.go b/service/serviceFeeManage.go new file mode 100644 index 0000000..a52e8c6 --- /dev/null +++ b/service/serviceFeeManage.go @@ -0,0 +1,66 @@ +package service + +import ( + "aps_crm/model" + "aps_crm/pkg/ecode" +) + +type FeeManageService struct{} + +func (FeeManageService) AddServiceFeeManage(serviceFeeManage *model.ServiceFeeManage) int { + err := model.NewServiceFeeManageSearch(nil).Create(serviceFeeManage) + if err != nil { + return ecode.ServiceFeeManageExist + } + + return ecode.OK +} + +func (FeeManageService) DeleteServiceFeeManage(id int) int { + _, err := model.NewServiceFeeManageSearch(nil).SetId(id).Find() + if err != nil { + return ecode.ServiceFeeManageNotExist + } + + err = model.NewServiceFeeManageSearch(nil).SetId(id).Delete() + if err != nil { + return ecode.ServiceFeeManageNotExist + } + return ecode.OK +} + +func (FeeManageService) GetServiceFeeManageList() ([]*model.ServiceFeeManage, int) { + list, err := model.NewServiceFeeManageSearch(nil).FindAll() + if err != nil { + return nil, ecode.ServiceFeeManageListErr + } + + return list, ecode.OK +} + +func (FeeManageService) UpdateServiceFeeManage(serviceFeeManage *model.ServiceFeeManage) int { + // check serviceFeeManage exist + _, err := model.NewServiceFeeManageSearch(nil).SetId(serviceFeeManage.Id).Find() + if err != nil { + return ecode.ServiceFeeManageNotExist + } + + tx := model.NewContactSearch().Orm.Begin() + + err = model.NewServiceFeeManageSearch(tx).SetId(serviceFeeManage.Id).Update(serviceFeeManage) + if err != nil { + tx.Rollback() + return ecode.ServiceFeeManageSetErr + } + + // update client + err = model.NewClientSearch(tx).SetId(serviceFeeManage.ClientId).Update(serviceFeeManage.Client) + if err != nil { + tx.Rollback() + return ecode.ClientUpdateErr + } + + tx.Commit() + + return ecode.OK +} -- Gitblit v1.8.0