wpc_refund.go 3.2 KB
package wpc

import (
	"context"
	"github.com/gogf/gf/encoding/gjson"
	"github.com/gogf/gf/frame/g"
)

type refundWpc struct {
}

var Refund = refundWpc{}

type RefundReasonReq struct {
	ChannelId  string `json:"vopChannelId"`
	UserNumber string `json:"userNumber"`
	OrderSn    string `json:"orderSn"`
	ReturnId   string `json:"returnId,omitempty"`
	AreaId     string `json:"areaId,omitempty"`
}

type RefundReasonRes struct {
	ReturnCode    string      `json:"returnCode"`
	ReturnMessage string      `json:"returnMessage"`
	Result        interface{} `json:"result"`
}

//Reason 退货原因
func (refundWpc) Reason(ctx context.Context, req RefundReasonReq) (res *RefundReasonRes, err error) {
	method := "getReturnOrderCreate"
	req.ChannelId = server.AppKey
	req.UserNumber = server.UserNumber
	result, err := post(ctx, method, g.Map{
		"request": req,
	})
	_ = gjson.New(result).Scan(&res)
	return
}

type RefundApplyReq struct {
	ChannelId  string `json:"vopChannelId"`
	UserNumber string `json:"userNumber"`
	OrderSn    string `json:"orderSn"`
	SizeInfo   string `json:"sizeInfo"`
}

type RefundApplySizeInfo struct {
	SizeID   int `json:"sizeId"`
	Num      int `json:"num"`
	ReasonID int `json:"reasonId"`
}

type RefundApplyRes struct {
	ReturnCode    string      `json:"returnCode"`
	ReturnMessage string      `json:"returnMessage"`
	Result        interface{} `json:"result"`
}

//Apply 申请
func (refundWpc) Apply(ctx context.Context, req RefundApplyReq) (res *RefundApplyRes, err error) {
	method := "orderReturnCreate"
	req.ChannelId = server.AppKey
	req.UserNumber = server.UserNumber
	result, err := post(ctx, method, g.Map{
		"request": req,
	})
	_ = gjson.New(result).Scan(&res)
	return
}

type RefundSubmitReq struct {
	ChannelId    string `json:"vopChannelId"`
	UserNumber   string `json:"userNumber"`
	OrderSn      string `json:"orderSn"`
	CarriersCode string `json:"carriersCode"`
	TransportNo  string `json:"transportNo"`
	Remark       string `json:"remark,omitempty"`
	ReturnId     string `json:"returnId,omitempty"`
}

type RefundSubmitRes struct {
	ReturnCode    string      `json:"returnCode"`
	ReturnMessage string      `json:"returnMessage"`
	Result        interface{} `json:"result"`
}

//Submit 填写回寄物流单号
func (refundWpc) Submit(ctx context.Context, req RefundSubmitReq) (res *RefundSubmitRes, err error) {
	method := "updateReturnTransportNo"
	req.ChannelId = server.AppKey
	req.UserNumber = server.UserNumber
	result, err := post(ctx, method, g.Map{
		"request": req,
	})
	_ = gjson.New(result).Scan(&res)
	return
}

type RefundListReq struct {
	ChannelId  string `json:"vopChannelId"`
	UserNumber string `json:"userNumber"`
	Page       string `json:"page"`
	PageSize   string `json:"pageSize"`
	OrderSn    string `json:"orderSn"`
	IsCanceled bool   `json:"isCanceled,omitempty"`
}

type RefundListRes struct {
	ReturnCode    string      `json:"returnCode"`
	ReturnMessage string      `json:"returnMessage"`
	Result        interface{} `json:"result"`
}

//List  列表
func (refundWpc) List(ctx context.Context, req RefundListReq) (res *RefundListRes, err error) {
	method := "multiAfterSaleList"
	req.ChannelId = server.AppKey
	req.UserNumber = server.UserNumber
	result, err := post(ctx, method, g.Map{
		"request": req,
	})
	_ = gjson.New(result).Scan(&res)
	return
}