From 6bb983c0766c26583493a956f255f87c742db59e Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期三, 12 七月 2023 14:53:37 +0800 Subject: [PATCH] add --- api/v1/index.go | 2 api/v1/subOrder.go | 2 pkg/ecode/code.go | 6 docs/swagger.yaml | 140 ++++++++ docs/docs.go | 222 +++++++++++++ api/v1/salesReturn.go | 2 docs/swagger.json | 222 +++++++++++++ model/response/response.go | 4 router/salesRefund.go | 19 + api/v1/salesRefund.go | 158 +++++++++ service/index.go | 1 model/salesRefund.go | 80 +++++ model/index.go | 1 service/salesRefund.go | 54 +++ model/request/salesRefund.go | 24 + router/index.go | 2 16 files changed, 939 insertions(+), 0 deletions(-) diff --git a/api/v1/index.go b/api/v1/index.go index 2d16f27..92307c2 100644 --- a/api/v1/index.go +++ b/api/v1/index.go @@ -36,6 +36,7 @@ SubOrderApi SalesDetailsApi SalesReturnApi + SalesRefundApi } var ApiGroup = new(Group) @@ -71,4 +72,5 @@ subOrderService = service.ServiceGroup.SubOrderService salesDetailsService = service.ServiceGroup.SalesDetailsService salesReturnService = service.ServiceGroup.SalesReturnService + salesRefundService = service.ServiceGroup.SalesRefundService ) diff --git a/api/v1/salesRefund.go b/api/v1/salesRefund.go new file mode 100644 index 0000000..39fe545 --- /dev/null +++ b/api/v1/salesRefund.go @@ -0,0 +1,158 @@ +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 SalesRefundApi struct{} + +// Add +// +// @Tags SalesRefund +// @Summary 娣诲姞閿�鍞��娆� +// @Produce application/json +// @Param object body request.AddSalesRefundRequest true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} +// @Router /api/salesRefund/add [post] +func (s *SalesRefundApi) Add(c *gin.Context) { + var params request.AddSalesRefundRequest + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + return + } + + errCode, salesRefund := checkSalesRefundParams(params.SalesRefund) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + errCode = salesRefundService.AddSalesRefund(&salesRefund) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.Ok() +} + +// Delete +// +// @Tags SalesRefund +// @Summary 鍒犻櫎閿�鍞��娆� +// @Produce application/json +// @Param id path int true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} +// @Router /api/salesRefund/delete/{id} [delete] +func (s *SalesRefundApi) Delete(c *gin.Context) { + ctx, ok := contextx.NewContext(c, nil) + if !ok { + return + } + + id, _ := strconv.Atoi(c.Param("id")) + errCode := salesRefundService.DeleteSalesRefund(id) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.Ok() +} + +// Update +// +// @Tags SalesRefund +// @Summary 鏇存柊閿�鍞��娆� +// @Produce application/json +// @Param object body request.UpdateSalesRefundRequest true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} +// @Router /api/salesRefund/update [put] +func (s *SalesRefundApi) Update(c *gin.Context) { + var params request.UpdateSalesRefundRequest + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + return + } + + errCode, salesRefund := checkSalesRefundParams(params.SalesRefund) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + salesRefund.Id = params.Id + + errCode = salesRefundService.UpdateSalesRefund(&salesRefund) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.Ok() +} + +// List +// +// @Tags SalesRefund +// @Summary 閿�鍞��娆惧垪琛� +// @Produce application/json +// @Success 200 {object} contextx.Response{data=response.SalesRefundResponse} +// @Router /api/salesRefund/list [get] +func (s *SalesRefundApi) List(c *gin.Context) { + ctx, ok := contextx.NewContext(c, nil) + if !ok { + return + } + + list, errCode := salesRefundService.GetSalesRefundList() + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.OkWithDetailed(response.SalesRefundResponse{ + List: list, + }) + +} + +func checkSalesRefundParams(salesRefund request.SalesRefund) (errCode int, salesRefundRes model.SalesRefund) { + if salesRefund.ClientId == 0 { + return ecode.InvalidParams, salesRefundRes + } + + if salesRefund.Number == "" { + return ecode.InvalidParams, salesRefundRes + } + + if salesRefund.MemberId == 0 { + return ecode.InvalidParams, salesRefundRes + } + + if salesRefund.RefundDate == "" { + return ecode.InvalidParams, salesRefundRes + } + + t, err := checkTimeFormat(salesRefund.RefundDate) + if err != nil { + return ecode.InvalidParams, salesRefundRes + } + salesRefundRes.RefundDate = t + salesRefundRes.ClientId = salesRefund.ClientId + salesRefundRes.Number = salesRefund.Number + salesRefundRes.MemberId = salesRefund.MemberId + salesRefundRes.RefundMethod = salesRefund.RefundMethod + salesRefundRes.AccountId = salesRefund.AccountId + salesRefundRes.IsInvoice = salesRefund.IsInvoice + salesRefundRes.Reason = salesRefund.Reason + salesRefundRes.Products = salesRefund.Products + + return ecode.OK, salesRefundRes +} diff --git a/api/v1/salesReturn.go b/api/v1/salesReturn.go index bcc4692..cdc51ba 100644 --- a/api/v1/salesReturn.go +++ b/api/v1/salesReturn.go @@ -87,6 +87,8 @@ return } + salesReturn.Id = params.Id + errCode = salesReturnService.UpdateSalesReturn(&salesReturn) if errCode != ecode.OK { ctx.Fail(errCode) diff --git a/api/v1/subOrder.go b/api/v1/subOrder.go index 41e74cd..20c4a4a 100644 --- a/api/v1/subOrder.go +++ b/api/v1/subOrder.go @@ -87,6 +87,8 @@ return } + subOrder.Id = params.Id + errCode = subOrderService.UpdateSubOrder(&subOrder) if errCode != ecode.OK { ctx.Fail(errCode) diff --git a/docs/docs.go b/docs/docs.go index fcdb128..d262056 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -3056,6 +3056,125 @@ } } }, + "/api/salesRefund/add": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "娣诲姞閿�鍞��娆�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.AddSalesRefundRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/salesRefund/delete/{id}": { + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "鍒犻櫎閿�鍞��娆�", + "parameters": [ + { + "type": "integer", + "description": "鏌ヨ鍙傛暟", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/salesRefund/list": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "閿�鍞��娆惧垪琛�", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/contextx.Response" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/response.SalesRefundResponse" + } + } + } + ] + } + } + } + } + }, + "/api/salesRefund/update": { + "put": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "鏇存柊閿�鍞��娆�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UpdateSalesRefundRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, "/api/salesReturn/add": { "post": { "produces": [ @@ -4672,6 +4791,44 @@ } } }, + "model.SalesRefund": { + "type": "object", + "properties": { + "accountId": { + "type": "integer" + }, + "clientId": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "isInvoice": { + "type": "integer" + }, + "memberId": { + "type": "integer" + }, + "number": { + "type": "string" + }, + "products": { + "type": "array", + "items": { + "$ref": "#/definitions/model.Product" + } + }, + "reason": { + "type": "string" + }, + "refundDate": { + "type": "string" + }, + "refundMethod": { + "type": "string" + } + } + }, "model.SalesSources": { "type": "object", "properties": { @@ -5317,6 +5474,14 @@ } } }, + "request.AddSalesRefundRequest": { + "type": "object", + "properties": { + "salesRefund": { + "$ref": "#/definitions/request.SalesRefund" + } + } + }, "request.AddSalesReturnRequest": { "type": "object", "properties": { @@ -5642,6 +5807,41 @@ }, "wechatOrderStatus": { "type": "integer" + } + } + }, + "request.SalesRefund": { + "type": "object", + "properties": { + "accountId": { + "type": "integer" + }, + "clientId": { + "type": "integer" + }, + "isInvoice": { + "type": "integer" + }, + "memberId": { + "type": "integer" + }, + "number": { + "type": "string" + }, + "products": { + "type": "array", + "items": { + "$ref": "#/definitions/model.Product" + } + }, + "reason": { + "type": "string" + }, + "refundDate": { + "type": "string" + }, + "refundMethod": { + "type": "string" } } }, @@ -6582,6 +6782,17 @@ } } }, + "request.UpdateSalesRefundRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "salesRefund": { + "$ref": "#/definitions/request.SalesRefund" + } + } + }, "request.UpdateSalesReturnRequest": { "type": "object", "properties": { @@ -6980,6 +7191,17 @@ } } }, + "response.SalesRefundResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/model.SalesRefund" + } + } + } + }, "response.SalesSourceResponse": { "type": "object", "properties": { diff --git a/docs/swagger.json b/docs/swagger.json index 609ea9b..f49b538 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -3044,6 +3044,125 @@ } } }, + "/api/salesRefund/add": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "娣诲姞閿�鍞��娆�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.AddSalesRefundRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/salesRefund/delete/{id}": { + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "鍒犻櫎閿�鍞��娆�", + "parameters": [ + { + "type": "integer", + "description": "鏌ヨ鍙傛暟", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, + "/api/salesRefund/list": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "閿�鍞��娆惧垪琛�", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/contextx.Response" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/response.SalesRefundResponse" + } + } + } + ] + } + } + } + } + }, + "/api/salesRefund/update": { + "put": { + "produces": [ + "application/json" + ], + "tags": [ + "SalesRefund" + ], + "summary": "鏇存柊閿�鍞��娆�", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UpdateSalesRefundRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } + }, "/api/salesReturn/add": { "post": { "produces": [ @@ -4660,6 +4779,44 @@ } } }, + "model.SalesRefund": { + "type": "object", + "properties": { + "accountId": { + "type": "integer" + }, + "clientId": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "isInvoice": { + "type": "integer" + }, + "memberId": { + "type": "integer" + }, + "number": { + "type": "string" + }, + "products": { + "type": "array", + "items": { + "$ref": "#/definitions/model.Product" + } + }, + "reason": { + "type": "string" + }, + "refundDate": { + "type": "string" + }, + "refundMethod": { + "type": "string" + } + } + }, "model.SalesSources": { "type": "object", "properties": { @@ -5305,6 +5462,14 @@ } } }, + "request.AddSalesRefundRequest": { + "type": "object", + "properties": { + "salesRefund": { + "$ref": "#/definitions/request.SalesRefund" + } + } + }, "request.AddSalesReturnRequest": { "type": "object", "properties": { @@ -5630,6 +5795,41 @@ }, "wechatOrderStatus": { "type": "integer" + } + } + }, + "request.SalesRefund": { + "type": "object", + "properties": { + "accountId": { + "type": "integer" + }, + "clientId": { + "type": "integer" + }, + "isInvoice": { + "type": "integer" + }, + "memberId": { + "type": "integer" + }, + "number": { + "type": "string" + }, + "products": { + "type": "array", + "items": { + "$ref": "#/definitions/model.Product" + } + }, + "reason": { + "type": "string" + }, + "refundDate": { + "type": "string" + }, + "refundMethod": { + "type": "string" } } }, @@ -6570,6 +6770,17 @@ } } }, + "request.UpdateSalesRefundRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "salesRefund": { + "$ref": "#/definitions/request.SalesRefund" + } + } + }, "request.UpdateSalesReturnRequest": { "type": "object", "properties": { @@ -6968,6 +7179,17 @@ } } }, + "response.SalesRefundResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/model.SalesRefund" + } + } + } + }, "response.SalesSourceResponse": { "type": "object", "properties": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 38dad52..f9dc27a 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -606,6 +606,31 @@ sales_status: $ref: '#/definitions/constvar.SalesStatus' type: object + model.SalesRefund: + properties: + accountId: + type: integer + clientId: + type: integer + id: + type: integer + isInvoice: + type: integer + memberId: + type: integer + number: + type: string + products: + items: + $ref: '#/definitions/model.Product' + type: array + reason: + type: string + refundDate: + type: string + refundMethod: + type: string + type: object model.SalesSources: properties: id: @@ -1044,6 +1069,11 @@ description: 鍟嗘満鏉ユ簮ID type: integer type: object + request.AddSalesRefundRequest: + properties: + salesRefund: + $ref: '#/definitions/request.SalesRefund' + type: object request.AddSalesReturnRequest: properties: salesReturn: @@ -1270,6 +1300,29 @@ type: string wechatOrderStatus: type: integer + type: object + request.SalesRefund: + properties: + accountId: + type: integer + clientId: + type: integer + isInvoice: + type: integer + memberId: + type: integer + number: + type: string + products: + items: + $ref: '#/definitions/model.Product' + type: array + reason: + type: string + refundDate: + type: string + refundMethod: + type: string type: object request.SalesReturn: properties: @@ -1905,6 +1958,13 @@ description: 鍟嗘満鏉ユ簮ID type: integer type: object + request.UpdateSalesRefundRequest: + properties: + id: + type: integer + salesRefund: + $ref: '#/definitions/request.SalesRefund' + type: object request.UpdateSalesReturnRequest: properties: clientId: @@ -2159,6 +2219,13 @@ list: items: $ref: '#/definitions/model.SalesLeads' + type: array + type: object + response.SalesRefundResponse: + properties: + list: + items: + $ref: '#/definitions/model.SalesRefund' type: array type: object response.SalesSourceResponse: @@ -4046,6 +4113,79 @@ summary: 鏇存柊閿�鍞嚎绱� tags: - SalesLeads + /api/salesRefund/add: + post: + parameters: + - description: 鏌ヨ鍙傛暟 + in: body + name: object + required: true + schema: + $ref: '#/definitions/request.AddSalesRefundRequest' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/contextx.Response' + summary: 娣诲姞閿�鍞��娆� + tags: + - SalesRefund + /api/salesRefund/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: + - SalesRefund + /api/salesRefund/list: + get: + produces: + - application/json + responses: + "200": + description: OK + schema: + allOf: + - $ref: '#/definitions/contextx.Response' + - properties: + data: + $ref: '#/definitions/response.SalesRefundResponse' + type: object + summary: 閿�鍞��娆惧垪琛� + tags: + - SalesRefund + /api/salesRefund/update: + put: + parameters: + - description: 鏌ヨ鍙傛暟 + in: body + name: object + required: true + schema: + $ref: '#/definitions/request.UpdateSalesRefundRequest' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/contextx.Response' + summary: 鏇存柊閿�鍞��娆� + tags: + - SalesRefund /api/salesReturn/add: post: parameters: diff --git a/model/index.go b/model/index.go index 0c2846c..3a0814a 100644 --- a/model/index.go +++ b/model/index.go @@ -52,6 +52,7 @@ Product{}, SalesDetails{}, SalesReturn{}, + SalesRefund{}, ) return err } diff --git a/model/request/salesRefund.go b/model/request/salesRefund.go new file mode 100644 index 0000000..3fb49bc --- /dev/null +++ b/model/request/salesRefund.go @@ -0,0 +1,24 @@ +package request + +import "aps_crm/model" + +type AddSalesRefundRequest struct { + SalesRefund SalesRefund `json:"salesRefund"` +} + +type SalesRefund struct { + ClientId int `json:"clientId"` + Number string `json:"number"` + MemberId int `json:"memberId"` + RefundDate string `json:"refundDate"` + RefundMethod string `json:"refundMethod"` + AccountId int `json:"accountId"` + IsInvoice int `json:"isInvoice"` + Reason string `json:"reason"` + Products []model.Product `json:"products"` +} + +type UpdateSalesRefundRequest struct { + Id int `json:"id"` + SalesRefund SalesRefund `json:"salesRefund"` +} diff --git a/model/response/response.go b/model/response/response.go index 666cad4..e4291dd 100644 --- a/model/response/response.go +++ b/model/response/response.go @@ -141,4 +141,8 @@ SalesReturnResponse struct { List []*model.SalesReturn `json:"list"` } + + SalesRefundResponse struct { + List []*model.SalesRefund `json:"list"` + } ) diff --git a/model/salesRefund.go b/model/salesRefund.go new file mode 100644 index 0000000..e2540c4 --- /dev/null +++ b/model/salesRefund.go @@ -0,0 +1,80 @@ +package model + +import ( + "aps_crm/pkg/mysqlx" + "gorm.io/gorm" + "time" +) + +type ( + SalesRefund 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"` + RefundDate time.Time `json:"refundDate" gorm:"column:refund_date;type:datetime;comment:閫�娆炬棩鏈�"` + RefundMethod string `json:"refundMethod" gorm:"column:refund_method;type:varchar(255);comment:閫�娆炬柟寮�"` + AccountId int `json:"accountId" gorm:"column:account_id;type:int;comment:璐︽埛"` + IsInvoice int `json:"isInvoice" gorm:"column:is_invoice;type:int;comment:鏄惁寮�绁�"` + Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:閫�娆惧師鍥�"` + Products []Product `json:"products" gorm:"many2many:salesRefund_product;"` + } + + SalesRefundSearch struct { + SalesRefund + Orm *gorm.DB + } +) + +func (SalesRefund) TableName() string { + return "sales_refund" +} + +func NewSalesRefundSearch() *SalesRefundSearch { + return &SalesRefundSearch{ + Orm: mysqlx.GetDB(), + } +} + +func (slf *SalesRefundSearch) build() *gorm.DB { + var db = slf.Orm.Model(&SalesRefund{}) + if slf.Id != 0 { + db = db.Where("id = ?", slf.Id) + } + + return db +} + +func (slf *SalesRefundSearch) Create(record *SalesRefund) error { + var db = slf.build() + return db.Create(record).Error +} + +func (slf *SalesRefundSearch) Delete() error { + var db = slf.build() + return db.Delete(&SalesRefund{}).Error +} + +func (slf *SalesRefundSearch) Update(record *SalesRefund) error { + var db = slf.build() + return db.Updates(record).Error +} + +func (slf *SalesRefundSearch) Find() (*SalesRefund, error) { + var db = slf.build() + var record = new(SalesRefund) + err := db.First(record).Error + return record, err +} + +func (slf *SalesRefundSearch) FindAll() ([]*SalesRefund, error) { + var db = slf.build() + var records = make([]*SalesRefund, 0) + err := db.Preload("Products").Find(&records).Error + return records, err +} + +func (slf *SalesRefundSearch) SetId(id int) *SalesRefundSearch { + slf.Id = id + return slf +} diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go index 1808279..d0dd587 100644 --- a/pkg/ecode/code.go +++ b/pkg/ecode/code.go @@ -212,4 +212,10 @@ SalesReturnUpdateErr = 2900005 // 鏇存柊閿�鍞��璐у崟澶辫触 SalesReturnDeleteErr = 2900006 // 鍒犻櫎閿�鍞��璐у崟澶辫触 + SalesRefundExist = 3000001 // 閿�鍞��娆惧崟宸插瓨鍦� + SalesRefundNotExist = 3000002 // 閿�鍞��娆惧崟涓嶅瓨鍦� + SalesRefundListErr = 3000003 // 鑾峰彇閿�鍞��娆惧崟鍒楄〃澶辫触 + SalesRefundSetErr = 3000004 // 璁剧疆閿�鍞��娆惧崟澶辫触 + SalesRefundUpdateErr = 3000005 // 鏇存柊閿�鍞��娆惧崟澶辫触 + SalesRefundDeleteErr = 3000006 // 鍒犻櫎閿�鍞��娆惧崟澶辫触 ) diff --git a/router/index.go b/router/index.go index 8fc92b1..8676fdf 100644 --- a/router/index.go +++ b/router/index.go @@ -42,6 +42,7 @@ SubOrderRouter SalesDetailsRouter SalesReturnRouter + SalesRefundRouter } func InitRouter() *gin.Engine { @@ -101,6 +102,7 @@ routerGroup.InitSubOrderRouter(PrivateGroup) // 娉ㄥ唽subOrder璺敱 routerGroup.InitSalesDetailsRouter(PrivateGroup) // 娉ㄥ唽salesDetails璺敱 routerGroup.InitSalesReturnRouter(PrivateGroup) // 娉ㄥ唽salesReturn璺敱 + routerGroup.InitSalesRefundRouter(PrivateGroup) // 娉ㄥ唽salesRefund璺敱 } return Router } diff --git a/router/salesRefund.go b/router/salesRefund.go new file mode 100644 index 0000000..5a30041 --- /dev/null +++ b/router/salesRefund.go @@ -0,0 +1,19 @@ +package router + +import ( + v1 "aps_crm/api/v1" + "github.com/gin-gonic/gin" +) + +type SalesRefundRouter struct{} + +func (s *SalesRefundRouter) InitSalesRefundRouter(router *gin.RouterGroup) { + salesRefundRouter := router.Group("salesRefund") + salesRefundApi := v1.ApiGroup.SalesRefundApi + { + salesRefundRouter.POST("add", salesRefundApi.Add) // 娣诲姞閿�鍞��娆� + salesRefundRouter.DELETE("delete/:id", salesRefundApi.Delete) // 鍒犻櫎閿�鍞��娆� + salesRefundRouter.PUT("update", salesRefundApi.Update) // 鏇存柊閿�鍞��娆� + salesRefundRouter.GET("list", salesRefundApi.List) // 鑾峰彇閿�鍞��娆惧垪琛� + } +} diff --git a/service/index.go b/service/index.go index b7c5f56..3743020 100644 --- a/service/index.go +++ b/service/index.go @@ -31,6 +31,7 @@ SubOrderService SalesDetailsService SalesReturnService + SalesRefundService } var ServiceGroup = new(Group) diff --git a/service/salesRefund.go b/service/salesRefund.go new file mode 100644 index 0000000..5efa2e1 --- /dev/null +++ b/service/salesRefund.go @@ -0,0 +1,54 @@ +package service + +import ( + "aps_crm/model" + "aps_crm/pkg/ecode" +) + +type SalesRefundService struct{} + +func (SalesRefundService) AddSalesRefund(salesRefund *model.SalesRefund) int { + err := model.NewSalesRefundSearch().Create(salesRefund) + if err != nil { + return ecode.SalesRefundExist + } + + return ecode.OK +} + +func (SalesRefundService) DeleteSalesRefund(id int) int { + _, err := model.NewSalesRefundSearch().SetId(id).Find() + if err != nil { + return ecode.SalesRefundNotExist + } + + err = model.NewSalesRefundSearch().SetId(id).Delete() + if err != nil { + return ecode.SalesRefundNotExist + } + return ecode.OK +} + +func (SalesRefundService) GetSalesRefundList() ([]*model.SalesRefund, int) { + list, err := model.NewSalesRefundSearch().FindAll() + if err != nil { + return nil, ecode.SalesRefundListErr + } + + return list, ecode.OK +} + +func (SalesRefundService) UpdateSalesRefund(salesRefund *model.SalesRefund) int { + // check salesRefund exist + _, err := model.NewSalesRefundSearch().SetId(salesRefund.Id).Find() + if err != nil { + return ecode.SalesRefundNotExist + } + + err = model.NewSalesRefundSearch().SetId(salesRefund.Id).Update(salesRefund) + if err != nil { + return ecode.SalesRefundSetErr + } + + return ecode.OK +} -- Gitblit v1.8.0