1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package tmv3
import (
"context"
"github.com/alibabacloud-go/linkedmall-20230930/v2/client"
"github.com/alibabacloud-go/tea/tea"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/os/gtime"
)
type RefundCreateReq struct {
BizClaimType int32 //退款类型 1 仅退款,3 退货退款
GoodsStatus int32 //货物状态 4: 未发货, 1: 未收到货, 2: 已收到货
OrderLineId string //子分销订单 ID
ApplyRefundCount int32
LeaveMessage string
ApplyReasonTextId int64
ApplyReasonTips string
ApplyRefundFee int64
LeavePictureList []string
}
type RefundCreateRes struct {
OrderLineId string `json:"orderLineId"` //当前发起逆向的子分销订单号
DisputeId string `json:"disputeId"` //纠纷 id
DisputeStatus int `json:"disputeStatus"` //逆向的状态 1-退货待处理 2-待买家退货 3-待商家收货 4-退款关闭 5-退款成功 6-已拒绝退款 17-取消退款中
RequestId string `json:"requestId"`
}
// Create 创建售后单
func (s refundTm) Create(ctx context.Context, req RefundCreateReq) (res *RefundCreateRes, err error) {
Start := gtime.TimestampMilli()
ctx = context.WithValue(ctx, "URI", "CreateRefundOrder")
defer func() {
Log(ctx, req, res, err, Start)
}()
Request := &client.CreateRefundOrderRequest{}
var Body = new(client.RefundOrderCmd)
Body.SetBizClaimType(req.BizClaimType)
Body.SetGoodsStatus(req.GoodsStatus)
Body.SetOrderLineId(req.OrderLineId)
Body.SetApplyRefundCount(req.ApplyRefundCount)
Body.SetLeaveMessage(req.LeaveMessage)
Body.SetApplyReasonTextId(req.ApplyReasonTextId)
Body.SetApplyReasonTips(req.ApplyReasonTips)
Body.SetApplyRefundFee(req.ApplyRefundFee)
var list []*client.LeavePictureList
for _, item := range req.LeavePictureList {
if item == "" {
continue
}
list = append(list, &client.LeavePictureList{
Picture: tea.String(item),
})
}
if len(list) > 0 {
Body.SetLeavePictureLists(list)
}
Request.SetBody(Body)
r, err := server.CreateRefundOrder(Request)
if err != nil {
return
}
err = gjson.New(r.Body).Scan(&res)
return
}