You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
service/supplier/afs.go

227 lines
6.7 KiB

2 years ago
package supplier
import (
"git.oa00.com/supply-chain/service/client"
2 years ago
"git.oa00.com/supply-chain/service/lib/bean"
2 years ago
"github.com/shopspring/decimal"
"golang.org/x/net/context"
)
type afs struct {
}
2 years ago
type ArgsAfsLists struct {
Search AfsSearch
Page bean.Page
}
type AfsSearch struct {
Status uint
AfsSn string
OrderSubSn string
CreatedStartDate string
CreatedEndDate string
}
type ReplyAfsLists struct {
Lists []AfsItem
Total int64
}
type AfsItem struct {
Id uint `json:"id"`
AfsSn string `json:"afsSn"`
OrderSubSn string `json:"orderSubSn"`
SkuName string `json:"skuName"`
Quantity uint `json:"quantity"`
Status uint `json:"status"`
2 years ago
AuditStatus uint `json:"manageStatus"`
2 years ago
Result string `json:"result"`
2 years ago
OrderFee decimal.Decimal `json:"orderFee"`
2 years ago
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
ReturnAddress []ReturnAddressItem `json:"returnAddress"`
}
// Lists @Title 售后列表
func (a *afs) Lists(ctx context.Context, args ArgsAfsLists) (reply ReplyAfsLists, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Lists", args, &reply)
return
}
2 years ago
type ReplyAfsDetail struct {
2 years ago
Id uint `json:"id"`
2 years ago
AuditId uint `json:"auditId"`
2 years ago
AfsSn string `json:"afsSn"`
Status uint `json:"status"`
2 years ago
AuditStatus uint `json:"auditStatus"`
2 years ago
ApproveNotes string `json:"approveNotes"`
Result string `json:"result"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
SkuName string `json:"skuName"`
ImgUrl string `json:"imgUrl"`
SkuId uint `json:"skuId"`
Price decimal.Decimal `json:"price"`
Quantity uint `json:"quantity"`
HopeTypeName string `json:"hopeTypeName"`
TypeReasonName string `json:"typeReasonName"`
Imgs []string `json:"imgs"`
LogisticsCompany string `json:"logisticsCompany"`
WaybillCode string `json:"waybillCode"`
SendAt int64 `json:"sendAt"`
2 years ago
NewOrderSn string `json:"newOrderSn"`
RefundFee decimal.Decimal `json:"refundFee"`
2 years ago
PackageSend uint `json:"packageSend"`
AfsPackageSend AfsPackageSend `json:"afsPackageSend"`
ReturnAddress []ReturnAddressItem `json:"returnAddress"`
2 years ago
}
type AfsPackageSend struct {
Name string `json:"name"`
Mobile string `json:"mobile"`
LogisticsCompany string `json:"logisticsCompany"`
WaybillCode string `json:"waybillCode"`
SendGoodsDate int64 `json:"sendGoodsDate"`
}
// Detail @Title 售后详情
func (a *afs) Detail(ctx context.Context, afsSn uint64) (reply ReplyAfsDetail, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "Detail", afsSn, &reply)
return
}
2 years ago
type ReplyFindByAfsOrderInfo struct {
Id uint `json:"id"`
CreatedAt int64 `json:"createdAt"` // 申请时间
UpdatedAt int64 `json:"updatedAt"` // 更新时间
AfsSn string `json:"afsSn"` // 售后单号
OrderSubSn string `json:"orderSubSn"` // 订单号
HandleStatus uint `json:"handleStatus"` // 处理结果
Status uint `json:"status"` // 售后状态
ApproveNotes string `json:"approveNotes"` // 处理描述
Result string `json:"result"` // 处理结果
SkuName string `json:"skuName"` // 商品名称
SkuId uint `json:"skuId"` // 供应商编码
2 years ago
SupplyPrice decimal.Decimal `json:"price"` // 商品单价
2 years ago
Quantity uint `json:"quantity"` // 售后数量
UpcCode string `json:"upcCode"` // 商品条码
}
// FindByAfsOrderInfos @Title 根据售后单号批量查询信息
func (a *afs) FindByAfsOrderInfos(ctx context.Context, afsSns []uint64) (reply []ReplyFindByAfsOrderInfo, err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
err = xClient.Call(ctx, "FindByAfsOrderInfos", afsSns, &reply)
return
}
2 years ago
type ArgsAfsReject struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// Reject @Title 审核驳回
func (a *afs) Reject(ctx context.Context, args ArgsAfsReject) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Reject", args, &reply)
return
}
type ArgsAfsDeliver struct {
AfsSn string `json:"afsSn"`
ReturnAddressId uint `json:"returnAddressId"`
Notes string `json:"notes"`
}
// Deliver @Title 待客户发货
func (a *afs) Deliver(ctx context.Context, args ArgsAfsDeliver) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Deliver", args, &reply)
return
}
type ArgsAfsRefund struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// Refund @Title 退款
func (a *afs) Refund(ctx context.Context, args ArgsAfsRefund) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Refund", args, &reply)
return
}
type ArgsAfsCompensate struct {
2 years ago
ApplyUserId uint `json:"applyUserId"`
AfsSn string `json:"afsSn"`
RefundFee decimal.Decimal `json:"refundFee"`
Notes string `json:"notes"`
2 years ago
}
// Compensate @Title 订单赔偿
func (a *afs) Compensate(ctx context.Context, args ArgsAfsCompensate) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Compensate", args, &reply)
return
}
type ArgsAfsCompensateSku struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// CompensateSku @Title 直赔商品
func (a *afs) CompensateSku(ctx context.Context, args ArgsAfsCompensateSku) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "CompensateSku", args, &reply)
return
}
type ArgsAfsReissue struct {
AfsSn string `json:"afsSn"`
Notes string `json:"notes"`
}
// Reissue @Title 补发商品
func (a *afs) Reissue(ctx context.Context, args ArgsAfsReissue) (err error) {
xClient, err := client.GetClient(a)
if err != nil {
return
}
reply := 0
err = xClient.Call(ctx, "Reissue", args, &reply)
return
}