package channel import ( "context" "git.oa00.com/supply-chain/service/client" "github.com/smallnest/rpcx/share" ) type afterService struct { } type ArgsAfterServiceType struct { OrderSn string // 订单编号 SkuId uint // skuId } type ReplyAfterServiceType struct { Type string `json:"type"` // 类型 TypeName string `json:"typeName"` // 类型名称 } // Type @Title 获取可发起的售后类型 func (a *afterService) Type(ctx context.Context, channelId string, args ArgsAfterServiceType) (reply []ReplyAfterServiceType, err error) { xClient, err := client.GetClient(a) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Type", args, &reply) return } type ArgsAfterServiceReason struct { OrderSn string // 订单编号 SkuId uint // skuId Type string // 售后类型 } type ReplyAfterServiceReason struct { ReasonCode string `json:"reasonCode"` // 售后原因编码 ReasonName string `json:"reasonName"` // 售后原因描述 NeedPicture uint `json:"needPicture"` // 是否需要上传图片 1=需要上传 2=不需要上传 } // Reason @Title 获取售后原因 func (a *afterService) Reason(ctx context.Context, channelId string, args ArgsAfterServiceReason) (reply []ReplyAfterServiceReason, err error) { xClient, err := client.GetClient(a) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Reason", args, &reply) return } type ArgsAfterServiceApply struct { Type string // 售后类型 TypeName string // 售后名称 ReasonCode string // 售后原因编码 ReasonName string // 售后原因描述 ChannelAfterServiceSn string // 渠道售后单号 OrderSn string // 订单编号 SkuId uint // skuId Pictures []string // 图片地址数组 Quantity uint // 售后申请数量 } type ReplyAfterServiceApply struct { AfterServiceSn string `json:"afterServiceSn"` // 渠道售后单号 ChannelAfterServiceSn string `json:"channelAfterServiceSn"` // 渠道售后单号 } // Apply @Title 发起售后 func (a *afterService) Apply(ctx context.Context, channelId string, args ArgsAfterServiceApply) (reply ReplyAfterServiceApply, err error) { xClient, err := client.GetClient(a) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Apply", args, &reply) return } type ReplyAfterServiceLogisticsAddress struct { Name string `json:"name"` // 姓名 Mobile string `json:"mobile"` // 手机号 ZipCode string `json:"zipCode"` // 邮编 Address string `json:"address"` // 地址 } // LogisticsAddress @Title 寄回地址 func (a *afterService) LogisticsAddress(ctx context.Context, channelId string, afterServiceSn string) (reply ReplyAfterServiceLogisticsAddress, err error) { xClient, err := client.GetClient(a) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "LogisticsAddress", afterServiceSn, &reply) return } type ArgsAfterServiceBackLogisticsBill struct { AfterServiceSn string // 售后单号 LogisticsCompany string // 物流公司 WaybillCode string // 运单号 SendGoodsDate int64 // 运单发货日期 } // BackLogisticsBill @Title 回传物流信息 func (a *afterService) BackLogisticsBill(ctx context.Context, channelId string, args ArgsAfterServiceBackLogisticsBill) (err error) { xClient, err := client.GetClient(a) if err != nil { return } reply := 0 err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "BackLogisticsBill", args, &reply) return } // Cancel @Title 取消售后 func (a *afterService) Cancel(ctx context.Context, channelId string, afterServiceSn string) (err error) { xClient, err := client.GetClient(a) if err != nil { return } reply := 0 err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Cancel", afterServiceSn, &reply) return }