commit
d057f6e5da
@ -0,0 +1,121 @@
|
||||
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
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
package _interface
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
type AfterServiceInterface interface {
|
||||
// Type 获取可发起的售后类型
|
||||
Type(ctx context.Context, args ArgsAfterServiceType, reply *[]ReplyAfterServiceType) error
|
||||
// Reason 获取售后原因
|
||||
Reason(ctx context.Context, args ArgsAfterServiceReason, reply *ReplyAfterServiceReason) error
|
||||
// Apply @Title 发起售后
|
||||
Apply(ctx context.Context, args ArgsAfterServiceApply, reply *ReplyAfterServiceApply) error
|
||||
// LogisticsAddress @Title 寄回地址
|
||||
LogisticsAddress(ctx context.Context, afterServiceSn string, reply *ReplyAfterServiceLogisticsAddress) error
|
||||
// BackLogisticsBill @Title 回传物流信息
|
||||
BackLogisticsBill(ctx context.Context, args ArgsAfterServiceBackLogisticsBill, reply *int) error
|
||||
// Cancel @Title 取消售后
|
||||
Cancel(ctx context.Context, afterServiceSn string, reply *int) error
|
||||
}
|
||||
type ArgsAfterServiceType struct {
|
||||
OrderSn string // 订单编号
|
||||
SkuId string // skuId
|
||||
}
|
||||
type ReplyAfterServiceType struct {
|
||||
Type string `json:"type"` // 类型
|
||||
TypeName string `json:"typeName"` // 类型名称
|
||||
}
|
||||
|
||||
type ArgsAfterServiceReason struct {
|
||||
OrderSn string // 订单编号
|
||||
SkuId string // skuId
|
||||
Type string // 售后类型
|
||||
}
|
||||
type ReplyAfterServiceReason struct {
|
||||
ReasonCode string `json:"reasonCode"` // 售后原因编码
|
||||
ReasonName string `json:"reasonName"` // 售后原因描述
|
||||
NeedPicture uint `json:"needPicture"` // 是否需要上传图片 1=需要上传 2=不需要上传
|
||||
}
|
||||
|
||||
type ArgsAfterServiceApply struct {
|
||||
Type string // 售后类型
|
||||
TypeName string // 售后名称
|
||||
ReasonCode string // 售后原因编码
|
||||
ReasonName string // 售后原因描述
|
||||
ChannelAfterServiceSn string // 渠道售后单号
|
||||
OrderSn string // 订单编号
|
||||
SkuId string // skuId
|
||||
Pictures []string // 图片地址数组
|
||||
Quantity uint // 售后申请数量
|
||||
}
|
||||
type ReplyAfterServiceApply struct {
|
||||
AfterServiceSn string `json:"afterServiceSn"` // 渠道售后单号
|
||||
ChannelAfterServiceSn string `json:"channelAfterServiceSn"` // 渠道售后单号
|
||||
}
|
||||
|
||||
type ReplyAfterServiceLogisticsAddress struct {
|
||||
Name string `json:"name"` // 姓名
|
||||
Mobile string `json:"mobile"` // 手机号
|
||||
ZipCode string `json:"zipCode"` // 邮编
|
||||
Address string `json:"address"` // 地址
|
||||
}
|
||||
|
||||
type ArgsAfterServiceBackLogisticsBill struct {
|
||||
AfterServiceSn string // 售后单号
|
||||
LogisticsCompany string // 物流公司
|
||||
WaybillCode string // 运单号
|
||||
SendGoodsDate int64 // 运单发货日期
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package supply
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.oa00.com/supply-chain/service/client"
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
type order struct {
|
||||
}
|
||||
type ArgsOrderSplit struct {
|
||||
SourceOrderSn string // 供应商订单号
|
||||
Source source // 商品来源
|
||||
ParentSourceOrderSn string // 上级订单号
|
||||
FreightFee decimal.Decimal // 运费
|
||||
OrderFee decimal.Decimal // 订单金额
|
||||
Skus []OrderSplitSkuItem // 拆分订单sku
|
||||
}
|
||||
type OrderSplitSkuItem struct {
|
||||
SourceSkuId string
|
||||
Quantity uint
|
||||
SupplyPrice decimal.Decimal
|
||||
}
|
||||
|
||||
// Split @Title 拆单
|
||||
func (o *order) Split(ctx context.Context, args ArgsOrderSplit) (err error) {
|
||||
xClient, err := client.GetClient(o)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
reply := 0
|
||||
err = xClient.Call(ctx, "Lists", args, &reply)
|
||||
return
|
||||
}
|
Loading…
Reference in new issue