package supply import ( "context" "git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/lib/bean" "github.com/shopspring/decimal" ) const ( //售后状态 1=售后申请中 2=客户发货 3=收货处理中 4=售后完成 5=售后关闭 ) type afterService struct { } type ArgsRetailHistory struct { Search RetailHistorySearch Page bean.Page } type RetailHistorySearch struct { AfterServiceSn string `label:"售后单号"` OrderSn string `label:"订单号"` Status uint `label:"售后状态"` SourceId uint `label:"所属供应商"` CustomerId uint `label:"所属客户"` CreateStartDate string `label:"创建开始日期"` CreateEndDate string `label:"创建结束日期"` } type RetailHistoryItem struct { Id uint `json:"id"` AfterServiceSn uint64 `json:"afterServiceSn"` OrderSn uint64 `json:"orderSn"` Name string `json:"name"` Quantity uint `json:"quantity"` Status uint `json:"status"` Reason string `json:"reason"` CreatedAt int64 `json:"createdAt"` UpdatedAt int64 `json:"updatedAt"` Source string `json:"source"` CustomerId uint `json:"customerId"` } type ReplyRetailHistory struct { Lists []RetailHistoryItem `json:"lists"` Total int64 `json:"total"` } // RetailAfsHistory @Title 零售订单售后记录 func (a *afterService) RetailAfsHistory(ctx context.Context, args ArgsRetailHistory) (reply ReplyRetailHistory, err error) { xClient, err := client.GetClient(a) if err != nil { return ReplyRetailHistory{}, err } err = xClient.Call(ctx, "RetailAfsHistory", args, &reply) return } type ArgsAfterServiceDeliver struct { SourceAfsSn string `json:"sourceAfsSn"` SourceSkuId string `json:"sourceSkuId"` SourceOrderSN string `json:"sourceOrderSN"` } // Deliver @Title 需要发货 func (a *afterService) Deliver(ctx context.Context, args ArgsAfterServiceDeliver) (err error) { xClient, err := client.GetClient(a) if err != nil { return err } reply := 0 err = xClient.Call(ctx, "Deliver", args, &reply) return } type ArgsAfterServiceReceipt struct { SourceAfsSn string `json:"sourceAfsSn"` SourceSkuId string `json:"sourceSkuId"` SourceOrderSN string `json:"sourceOrderSN"` } // Receipt @Title 收货处理 func (a *afterService) Receipt(ctx context.Context, args ArgsAfterServiceReceipt) (err error) { xClient, err := client.GetClient(a) if err != nil { return err } reply := 0 err = xClient.Call(ctx, "Receipt", args, &reply) return } type ArgsAfterServiceReject struct { SourceAfsSn string `json:"sourceAfsSn"` SourceSkuId string `json:"sourceSkuId"` SourceOrderSN string `json:"sourceOrderSN"` } // Reject @Title 驳回 func (a *afterService) Reject(ctx context.Context, args ArgsAfterServiceReject) (err error) { xClient, err := client.GetClient(a) if err != nil { return err } reply := 0 err = xClient.Call(ctx, "Reject", args, &reply) return } type ReplyAfterServiceDetail struct { Id uint `json:"id"` AfsSn string `json:"afsSn"` Status uint `json:"status"` Result string `json:"result"` CreatedAt int64 `json:"createdAt"` UpdatedAt int64 `json:"updatedAt"` SkuName string `json:"skuName"` ImgUrl string `json:"imgUrl"` SkuId uint `json:"skuId"` SupplySkuId uint `json:"supplySkuId"` Price decimal.Decimal `json:"price"` SupplyPrice decimal.Decimal `json:"supplyPrice"` 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"` PackageSend uint `json:"packageSend"` AfsPackageSend AfsPackageSend `json:"afsPackageSend"` } type AfsPackageSend struct { Name string `json:"name"` Mobile string `json:"mobile"` ZipCode string `json:"zipCode"` Address string `json:"address"` LogisticsCompany string `json:"logisticsCompany"` WaybillCode string `json:"waybillCode"` SendGoodsDate int64 `json:"sendGoodsDate"` } // Detail @Title 售后详情 func (a *afterService) Detail(ctx context.Context, afsSn string) (reply ReplyAfterServiceDetail, err error) { xClient, err := client.GetClient(a) if err != nil { return } err = xClient.Call(ctx, "Detail", afsSn, &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, afsSn string) (reply ReplyAfterServiceLogisticsAddress, err error) { xClient, err := client.GetClient(a) if err != nil { return } err = xClient.Call(ctx, "LogisticsAddress", afsSn, &reply) return }