519 lines
17 KiB
Go
519 lines
17 KiB
Go
package sdk_LinkedMall
|
||
|
||
import "encoding/json"
|
||
|
||
// CommonResponse 是所有接口统一返回的外层结构体。
|
||
//
|
||
// 注意:HTTP 200 不代表业务成功,必须判断 Success 字段是否为 true。
|
||
// Code 为 SUCCESS 表示业务调用成功;否则看 SubCode、SubMessage 定位失败原因。
|
||
// Data 为业务数据,不同接口 Data 内部结构不同,可配合各接口的响应数据类型使用,
|
||
// 或调用 DataAs 方法解码到目标结构体。
|
||
type CommonResponse struct {
|
||
RequestId string `json:"RequestId"`
|
||
Success bool `json:"Success"`
|
||
Code string `json:"Code"`
|
||
Message string `json:"Message"`
|
||
SubCode string `json:"SubCode"`
|
||
SubMessage string `json:"SubMessage"`
|
||
Data interface{} `json:"Data"`
|
||
}
|
||
|
||
// DataAs 将 Data 字段解码到目标结构体 out 中。
|
||
func (r *CommonResponse) DataAs(out interface{}) error {
|
||
if r == nil || r.Data == nil {
|
||
return nil
|
||
}
|
||
b, err := json.Marshal(r.Data)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
return json.Unmarshal(b, out)
|
||
}
|
||
|
||
// rawResponse 用于内部解析响应,Data 使用 json.RawMessage 以支持按接口类型解码。
|
||
type rawResponse struct {
|
||
RequestId string `json:"RequestId"`
|
||
Success bool `json:"Success"`
|
||
Code string `json:"Code"`
|
||
Message string `json:"Message"`
|
||
SubCode string `json:"SubCode"`
|
||
SubMessage string `json:"SubMessage"`
|
||
Data json.RawMessage `json:"Data"`
|
||
}
|
||
|
||
// ---------- 采购方店铺 ----------
|
||
|
||
// ListPurchaserShopsRequest 分页获取采购方店铺列表请求。
|
||
type ListPurchaserShopsRequest struct {
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
}
|
||
|
||
// ListPurchaserShopsRespData 分页获取采购方店铺列表响应数据。
|
||
type ListPurchaserShopsRespData struct {
|
||
Total int64 `json:"Total"`
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
ShopList []PurchaserShopItem `json:"ShopList"`
|
||
}
|
||
|
||
// PurchaserShopItem 采购方店铺项。
|
||
type PurchaserShopItem struct {
|
||
ShopId string `json:"ShopId"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
ShopName string `json:"ShopName"`
|
||
ShopStatus string `json:"ShopStatus"`
|
||
}
|
||
|
||
// GetPurchaserShopRequest 获取单个采购店铺详情请求。
|
||
type GetPurchaserShopRequest struct {
|
||
ShopId string `json:"-"`
|
||
}
|
||
|
||
// GetPurchaserShopRespData 获取单个采购店铺详情响应数据。
|
||
type GetPurchaserShopRespData struct {
|
||
ShopId string `json:"ShopId"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
ShopName string `json:"ShopName"`
|
||
ShopStatus string `json:"ShopStatus"`
|
||
ContactInfo string `json:"ContactInfo"`
|
||
}
|
||
|
||
// ---------- 选品池商品 ----------
|
||
|
||
// ListSelectionProductsRequest 分页查询选品池商品列表请求。
|
||
type ListSelectionProductsRequest struct {
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// ListSelectionProductsRespData 分页查询选品池商品列表响应数据。
|
||
type ListSelectionProductsRespData struct {
|
||
Total int64 `json:"Total"`
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
ProductList []SelectionProductItem `json:"ProductList"`
|
||
}
|
||
|
||
// SelectionProductItem 选品池商品项。
|
||
type SelectionProductItem struct {
|
||
ProductId string `json:"ProductId"`
|
||
Title string `json:"Title"`
|
||
MainImage string `json:"MainImage"`
|
||
BrandName string `json:"BrandName"`
|
||
CategoryId string `json:"CategoryId"`
|
||
}
|
||
|
||
// GetSelectionProductRequest 查询选品池商品详情请求。
|
||
type GetSelectionProductRequest struct {
|
||
ProductId string `json:"-"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
DivisionCode string `json:"DivisionCode"`
|
||
}
|
||
|
||
// GetSelectionProductRespData 查询选品池商品详情响应数据。
|
||
type GetSelectionProductRespData struct {
|
||
ProductId string `json:"ProductId"`
|
||
Title string `json:"Title"`
|
||
MainImage string `json:"MainImage"`
|
||
Images []string `json:"Images"`
|
||
BrandName string `json:"BrandName"`
|
||
CategoryId string `json:"CategoryId"`
|
||
Desc string `json:"Desc"`
|
||
SkuList []SelectionSkuItem `json:"SkuList"`
|
||
CanSale bool `json:"CanSale"`
|
||
StockQuantity int64 `json:"StockQuantity"`
|
||
}
|
||
|
||
// SelectionSkuItem 选品池商品 SKU 项。金额单位均为分。
|
||
type SelectionSkuItem struct {
|
||
SkuId string `json:"SkuId"`
|
||
SkuSpec string `json:"SkuSpec"`
|
||
SalePrice int64 `json:"SalePrice"`
|
||
MarketPrice int64 `json:"MarketPrice"`
|
||
StockQuantity int64 `json:"StockQuantity"`
|
||
}
|
||
|
||
// ---------- 类目 ----------
|
||
|
||
// ListCategoriesRequest 查询类目列表请求。
|
||
type ListCategoriesRequest struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
ParentCategoryId string `json:"ParentCategoryId"`
|
||
}
|
||
|
||
// ListCategoriesRespData 查询类目列表响应数据。
|
||
type ListCategoriesRespData struct {
|
||
CategoryList []CategoryItem `json:"CategoryList"`
|
||
}
|
||
|
||
// CategoryItem 类目项。
|
||
type CategoryItem struct {
|
||
CategoryId string `json:"CategoryId"`
|
||
CategoryName string `json:"CategoryName"`
|
||
ParentId string `json:"ParentId"`
|
||
Level int `json:"Level"`
|
||
Leaf bool `json:"Leaf"`
|
||
}
|
||
|
||
// ---------- 搜索 ----------
|
||
|
||
// SearchProductsRequest 搜索选品池商品请求。
|
||
type SearchProductsRequest struct {
|
||
Keyword string `json:"Keyword"`
|
||
CategoryId string `json:"CategoryId"`
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// SearchProductsRespData 搜索选品池商品响应数据。
|
||
type SearchProductsRespData struct {
|
||
Total int64 `json:"Total"`
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
ProductList []SelectionProductItem `json:"ProductList"`
|
||
}
|
||
|
||
// ---------- 选品池入库/出库 ----------
|
||
|
||
// SelectionGroupAddProductRequest 选品池商品入库请求。
|
||
type SelectionGroupAddProductRequest struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
ShopId string `json:"ShopId"`
|
||
ProductIdList []string `json:"ProductIdList"`
|
||
}
|
||
|
||
// SelectionGroupRemoveProductRequest 选品池商品出库请求。
|
||
type SelectionGroupRemoveProductRequest struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
ShopId string `json:"ShopId"`
|
||
ProductIdList []string `json:"ProductIdList"`
|
||
}
|
||
|
||
// SelectionGroupChangeProductRespData 选品池商品入库/出库响应数据。
|
||
type SelectionGroupChangeProductRespData struct {
|
||
SuccessCount int `json:"SuccessCount"`
|
||
}
|
||
|
||
// ---------- 采购单渲染 ----------
|
||
|
||
// RenderPurchaseOrderReq 采购单渲染(下单预校验)请求。
|
||
// SplitPurchaseOrder 请求体结构与之一致。
|
||
type RenderPurchaseOrderReq struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
ShopId string `json:"ShopId"`
|
||
DivisionCode string `json:"DivisionCode"`
|
||
ItemList []RenderOrderItem `json:"ItemList"`
|
||
ReceiverInfo ReceiverInfo `json:"ReceiverInfo"`
|
||
}
|
||
|
||
// RenderOrderItem 渲染请求中的商品项。
|
||
type RenderOrderItem struct {
|
||
SkuId string `json:"SkuId"`
|
||
Quantity int64 `json:"Quantity"`
|
||
}
|
||
|
||
// ReceiverInfo 收货人信息。DivisionCode 必须使用五级(乡镇街道)编码。
|
||
type ReceiverInfo struct {
|
||
ReceiverName string `json:"ReceiverName"`
|
||
ReceiverPhone string `json:"ReceiverPhone"`
|
||
ProvinceCode string `json:"ProvinceCode"`
|
||
CityCode string `json:"CityCode"`
|
||
DistrictCode string `json:"DistrictCode"`
|
||
TownCode string `json:"TownCode"`
|
||
DetailAddress string `json:"DetailAddress"`
|
||
}
|
||
|
||
// RenderPurchaseOrderRespData 采购单渲染响应数据。
|
||
type RenderPurchaseOrderRespData struct {
|
||
CanSale bool `json:"CanSale"`
|
||
UnSaleReason string `json:"UnSaleReason"`
|
||
TotalAmount int64 `json:"TotalAmount"`
|
||
FreightAmount int64 `json:"FreightAmount"`
|
||
ItemList []RenderResultItem `json:"ItemList"`
|
||
}
|
||
|
||
// RenderResultItem 渲染结果中的商品明细。
|
||
type RenderResultItem struct {
|
||
SkuId string `json:"SkuId"`
|
||
ProductId string `json:"ProductId"`
|
||
Quantity int64 `json:"Quantity"`
|
||
SalePrice int64 `json:"SalePrice"`
|
||
CanSale bool `json:"CanSale"`
|
||
UnSaleReason string `json:"UnSaleReason"`
|
||
}
|
||
|
||
// ---------- 拆单 ----------
|
||
|
||
// SplitPurchaseOrderRespData 采购单渲染并拆单响应数据。
|
||
type SplitPurchaseOrderRespData struct {
|
||
SubOrderList []SplitSubOrderItem `json:"SubOrderList"`
|
||
}
|
||
|
||
// SplitSubOrderItem 拆单后的子单商品项。
|
||
type SplitSubOrderItem struct {
|
||
ShopId string `json:"ShopId"`
|
||
SkuId string `json:"SkuId"`
|
||
Quantity int64 `json:"Quantity"`
|
||
SalePrice int64 `json:"SalePrice"`
|
||
}
|
||
|
||
// ---------- 创建采购单 ----------
|
||
|
||
// CreatePurchaseOrderReq 创建采购单请求。
|
||
type CreatePurchaseOrderReq struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
ShopId string `json:"ShopId"`
|
||
OuterPurchaseOrderId string `json:"OuterPurchaseOrderId"`
|
||
DivisionCode string `json:"DivisionCode"`
|
||
ReceiverInfo ReceiverInfo `json:"ReceiverInfo"`
|
||
SubOrderList []CreateSubOrderItem `json:"SubOrderList"`
|
||
}
|
||
|
||
// CreateSubOrderItem 创建采购单子单商品项。
|
||
type CreateSubOrderItem struct {
|
||
SkuId string `json:"SkuId"`
|
||
Quantity int64 `json:"Quantity"`
|
||
}
|
||
|
||
// CreatePurchaseOrderRespData 创建采购单响应数据。
|
||
type CreatePurchaseOrderRespData struct {
|
||
PurchaseOrderId string `json:"PurchaseOrderId"`
|
||
}
|
||
|
||
// 采购单状态枚举。
|
||
const (
|
||
PurchaseOrderStatusInit = "INIT"
|
||
PurchaseOrderStatusProcess = "PROCESS"
|
||
PurchaseOrderStatusSuccess = "SUCCESS"
|
||
PurchaseOrderStatusFail = "FAIL"
|
||
PurchaseOrderStatusClosed = "CLOSED"
|
||
)
|
||
|
||
// GetPurchaseOrderStatusRequest 获取采购单状态请求。
|
||
type GetPurchaseOrderStatusRequest struct {
|
||
PurchaseOrderId string `json:"-"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// GetPurchaseOrderStatusRespData 获取采购单状态响应数据。
|
||
type GetPurchaseOrderStatusRespData struct {
|
||
PurchaseOrderId string `json:"PurchaseOrderId"`
|
||
Status string `json:"Status"`
|
||
OrderIdList []string `json:"OrderIdList"`
|
||
}
|
||
|
||
// ---------- 订单 ----------
|
||
|
||
// GetOrderRequest 获取订单详情请求。
|
||
type GetOrderRequest struct {
|
||
OrderId string `json:"-"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// GetOrderRespData 获取订单详情响应数据。
|
||
type GetOrderRespData struct {
|
||
OrderId string `json:"OrderId"`
|
||
PurchaseOrderId string `json:"PurchaseOrderId"`
|
||
Status string `json:"Status"`
|
||
TotalAmount int64 `json:"TotalAmount"`
|
||
PayAmount int64 `json:"PayAmount"`
|
||
FreightAmount int64 `json:"FreightAmount"`
|
||
CreateTime string `json:"CreateTime"`
|
||
ItemList []OrderItem `json:"ItemList"`
|
||
ReceiverInfo OrderReceiverInfo `json:"ReceiverInfo"`
|
||
}
|
||
|
||
// OrderItem 订单商品明细。
|
||
type OrderItem struct {
|
||
OrderItemId string `json:"OrderItemId"`
|
||
ProductId string `json:"ProductId"`
|
||
SkuId string `json:"SkuId"`
|
||
SkuSpec string `json:"SkuSpec"`
|
||
Title string `json:"Title"`
|
||
Quantity int64 `json:"Quantity"`
|
||
PayAmount int64 `json:"PayAmount"`
|
||
}
|
||
|
||
// OrderReceiverInfo 订单收货信息。
|
||
type OrderReceiverInfo struct {
|
||
ReceiverName string `json:"ReceiverName"`
|
||
ReceiverPhone string `json:"ReceiverPhone"`
|
||
ProvinceCode string `json:"ProvinceCode"`
|
||
CityCode string `json:"CityCode"`
|
||
DistrictCode string `json:"DistrictCode"`
|
||
TownCode string `json:"TownCode"`
|
||
DetailAddress string `json:"DetailAddress"`
|
||
}
|
||
|
||
// QueryOrdersRequest 查询订单列表请求。
|
||
type QueryOrdersRequest struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
PurchaseOrderId string `json:"PurchaseOrderId"`
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
StartTime string `json:"StartTime"`
|
||
EndTime string `json:"EndTime"`
|
||
}
|
||
|
||
// QueryOrdersRespData 查询订单列表响应数据。
|
||
type QueryOrdersRespData struct {
|
||
Total int64 `json:"Total"`
|
||
PageNum int `json:"PageNum"`
|
||
PageSize int `json:"PageSize"`
|
||
OrderList []OrderSummary `json:"OrderList"`
|
||
}
|
||
|
||
// OrderSummary 订单列表项。
|
||
type OrderSummary struct {
|
||
OrderId string `json:"OrderId"`
|
||
Status string `json:"Status"`
|
||
PayAmount int64 `json:"PayAmount"`
|
||
CreateTime string `json:"CreateTime"`
|
||
}
|
||
|
||
// ---------- 物流 ----------
|
||
|
||
// ListLogisticsOrdersRequest 查询订单物流信息请求。
|
||
type ListLogisticsOrdersRequest struct {
|
||
OrderId string `json:"-"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// ListLogisticsOrdersRespData 查询订单物流信息响应数据。
|
||
type ListLogisticsOrdersRespData struct {
|
||
LogisticsList []LogisticsInfo `json:"LogisticsList"`
|
||
}
|
||
|
||
// LogisticsInfo 物流信息。
|
||
type LogisticsInfo struct {
|
||
TrackingNumber string `json:"TrackingNumber"`
|
||
CompanyName string `json:"CompanyName"`
|
||
Traces []LogisticsTrace `json:"Traces"`
|
||
}
|
||
|
||
// LogisticsTrace 物流轨迹节点。
|
||
type LogisticsTrace struct {
|
||
Time string `json:"Time"`
|
||
Location string `json:"Location"`
|
||
Description string `json:"Description"`
|
||
}
|
||
|
||
// ---------- 确认收货 ----------
|
||
|
||
// ConfirmDisburseRequest 确认收货请求。
|
||
type ConfirmDisburseRequest struct {
|
||
OrderId string `json:"-"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// ---------- 售后 ----------
|
||
|
||
// RenderRefundOrderReq 售后渲染预校验请求。
|
||
type RenderRefundOrderReq struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
OrderId string `json:"OrderId"`
|
||
OrderItemId string `json:"OrderItemId"`
|
||
RefundQuantity int64 `json:"RefundQuantity"`
|
||
RefundType string `json:"RefundType"`
|
||
}
|
||
|
||
// RenderRefundOrderRespData 售后渲染预校验响应数据。
|
||
type RenderRefundOrderRespData struct {
|
||
CanRefund bool `json:"CanRefund"`
|
||
RefundAmount int64 `json:"RefundAmount"`
|
||
MaxRefundQuantity int64 `json:"MaxRefundQuantity"`
|
||
UnRefundReason string `json:"UnRefundReason"`
|
||
}
|
||
|
||
// CreateRefundOrderReq 创建售后单请求。
|
||
type CreateRefundOrderReq struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
OrderId string `json:"OrderId"`
|
||
OrderItemId string `json:"OrderItemId"`
|
||
RefundQuantity int64 `json:"RefundQuantity"`
|
||
RefundAmount int64 `json:"RefundAmount"`
|
||
RefundType string `json:"RefundType"`
|
||
RefundReason string `json:"RefundReason"`
|
||
OuterRefundNo string `json:"OuterRefundNo"`
|
||
}
|
||
|
||
// CreateRefundOrderRespData 创建售后单响应数据。
|
||
type CreateRefundOrderRespData struct {
|
||
RefundOrderId string `json:"RefundOrderId"`
|
||
}
|
||
|
||
// CancelRefundOrderRequest 取消售后单请求。
|
||
type CancelRefundOrderRequest struct {
|
||
RefundOrderId string `json:"-"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// GetRefundOrderRequest 获取售后单详情请求。
|
||
type GetRefundOrderRequest struct {
|
||
RefundOrderId string `json:"-"`
|
||
PurchaserId string `json:"PurchaserId"`
|
||
}
|
||
|
||
// GetRefundOrderRespData 获取售后单详情响应数据。
|
||
type GetRefundOrderRespData struct {
|
||
RefundOrderId string `json:"RefundOrderId"`
|
||
OrderId string `json:"OrderId"`
|
||
OrderItemId string `json:"OrderItemId"`
|
||
Status string `json:"Status"`
|
||
RefundQuantity int64 `json:"RefundQuantity"`
|
||
RefundAmount int64 `json:"RefundAmount"`
|
||
RefundType string `json:"RefundType"`
|
||
RefundReason string `json:"RefundReason"`
|
||
}
|
||
|
||
// CreateGoodsShippingNoticeReq 回填退货物流运单请求。
|
||
type CreateGoodsShippingNoticeReq struct {
|
||
PurchaserId string `json:"PurchaserId"`
|
||
LogisticsCompany string `json:"LogisticsCompany"`
|
||
TrackingNumber string `json:"TrackingNumber"`
|
||
}
|
||
|
||
// ---------- 区域 ----------
|
||
|
||
// QueryChildDivisionCodeRequest 查询子区域编码请求。
|
||
type QueryChildDivisionCodeRequest struct {
|
||
ParentDivisionCode string `json:"ParentDivisionCode"`
|
||
}
|
||
|
||
// QueryChildDivisionCodeRespData 查询子区域编码响应数据。
|
||
type QueryChildDivisionCodeRespData struct {
|
||
DivisionList []DivisionItem `json:"DivisionList"`
|
||
}
|
||
|
||
// DivisionItem 区域编码项。
|
||
type DivisionItem struct {
|
||
DivisionCode string `json:"DivisionCode"`
|
||
DivisionName string `json:"DivisionName"`
|
||
Level int `json:"Level"`
|
||
ParentCode string `json:"ParentCode"`
|
||
}
|
||
|
||
// ---------- 回调通知 ----------
|
||
|
||
// CallbackEvent 阿里云消息回调事件。
|
||
// 业务侧消费成功后需返回 {"success":true},否则阿里云会重试推送。
|
||
type CallbackEvent struct {
|
||
EventCode string `json:"EventCode"`
|
||
PurchaseOrderId string `json:"PurchaseOrderId"`
|
||
OrderIdList []string `json:"OrderIdList"`
|
||
Status string `json:"Status"`
|
||
RequestId string `json:"RequestId"`
|
||
}
|
||
|
||
// 回调事件编码枚举。
|
||
const (
|
||
EventCodePurchaseOrderChange = "PURCHASE_ORDER_CHANGE"
|
||
EventCodeOrderStatusChange = "ORDER_STATUS_CHANGE"
|
||
EventCodeRefundOrderChange = "REFUND_ORDER_CHANGE"
|
||
)
|
||
```
|
||
|
||
```go |