package supply import "github.com/shopspring/decimal" const ( orderFreightFee = "/order/freight_fee" // 获取运费 orderSubmit = "/order/submit" // 提交订单 orderLadingBill = "/order/lading_bill" // 提单 orderClose = "/order/close" // 关闭订单 orderCancel = "/order/cancel" // 取消订单 ReplyOrderFreightFeeErrCodeNone = 0 // 无错误 ReplyOrderFreightFeeErrCodeErr = 1 // 有错误 ) type order struct { } type OrderFreightFeeItem struct { SkuId uint `json:"skuId"` Quantity uint `json:"quantity"` Price decimal.Decimal `json:"price"` } type ReplyOrderFreightFee struct { SkuIds []uint `json:"skuIds"` FreightFee float64 `json:"freightFee"` ErrCode uint `json:"errCode"` ErrMsg string `json:"errMsg"` } // FreightFee @Title 获取运费 func (o *order) FreightFee(address string, skus []OrderFreightFeeItem) (result []ReplyOrderFreightFee, err error) { err = exec(orderFreightFee, map[string]interface{}{ "address": address, "skus": skus, }, &result) return } type OrderSubmit struct { ChannelOrderSn string `json:"channelOrderSn"` // 订单编号 Address string `json:"address"` // 配送地址 Skus []OrderFreightFeeItem `json:"skus"` // sku信息 Receiver Receiver `json:"receiver"` // 收货信息 OrderFee decimal.Decimal `json:"orderFee"` // 订单金额 FreightFees []OrderFreightFee `json:"freightFees"` // 运费 UserIp string `json:"userIp"` // 用户ip } type OrderFreightFee struct { SkuIds []uint `json:"skuIds"` // skuIds FreightFee decimal.Decimal `json:"freightFee"` // 运费 } type Receiver struct { Name string `json:"name"` // 姓名 Mobile string `json:"mobile"` // 手机号 Email string `json:"email"` // 邮箱 ZipCode string `json:"zipCode"` // 邮编 } type ReplyOrderSubmit struct { OrderSn string `json:"orderSn"` ChannelOrderSn string `json:"channelOrderSn"` } // Submit @Title 提交订单 func (o *order) Submit(data OrderSubmit) (result ReplyOrderSubmit, err error) { err = exec(orderSubmit, data, &result) return } // LadingBill @Title 提单 func (o *order) LadingBill(orderSn string) (result ReplyOrderSubmit, err error) { err = exec(orderLadingBill, map[string]interface{}{ "orderSn": orderSn, }, &result) return } // Close @Title 关闭订单 func (o *order) Close(orderSn string) (result ReplyOrderSubmit, err error) { err = exec(orderClose, map[string]interface{}{ "orderSn": orderSn, }, &result) return } // Cancel @Title 取消订单 func (o *order) Cancel(orderSubSn string) (result ReplyOrderSubmit, err error) { err = exec(orderCancel, map[string]interface{}{ "orderSubSn": orderSubSn, }, &result) return }