package weimobapi import "gitrosy.jxc4.com/baseapi/utils" const ( OrderStatusWait4Pay = 0 // 待支付 OrderStatusPayed = 1 // 已付款,待发货 OrderStatusDelivering = 2 // 已发货 OrderStatusFinished = 3 // 已完成 OrderStatusCanceled = 4 // 已取消 ) const ( QueryOrdersListPageSize = 10 ) type DeliveryOrderItem struct { ItemID int64 `json:"itemId"` SkuID int64 `json:"skuId"` SkuNum int `json:"skuNum"` } type DeliveryOrder struct { OrderNo int64 `json:"orderNo"` DeliveryNo string `json:"deliveryNo"` DeliveryCompanyCode string `json:"deliveryCompanyCode"` DeliveryCompanyName string `json:"deliveryCompanyName"` IsNeedLogistics bool `json:"isNeedLogistics"` IsSplitPackage bool `json:"isSplitPackage"` DeliveryRemark string `json:"deliveryRemark"` DeliveryOrderItemList []*DeliveryOrderItem `json:"deliveryOrderItemList"` } type OrderDetail struct { AutoCancelTime int `json:"autoCancelTime"` BizInfo struct { BizType int `json:"bizType"` BizTypeName string `json:"bizTypeName"` } `json:"bizInfo"` BizSourceType int `json:"bizSourceType"` BuyerInfo struct { UserNickname string `json:"userNickname"` Wid int `json:"wid"` } `json:"buyerInfo"` BuyerRemark string `json:"buyerRemark"` ChannelTypeName string `json:"channelTypeName"` CreateTime int64 `json:"createTime"` DeliveryAmount float64 `json:"deliveryAmount"` DeliveryDetail struct { DeliveryType int `json:"deliveryType"` DeliveryTypeName string `json:"deliveryTypeName"` LogisticsDeliveryDetail struct { ExpectDeliveryTime string `json:"expectDeliveryTime"` ExpectDeliveryType int `json:"expectDeliveryType"` LogisticsOrderList []interface{} `json:"logisticsOrderList"` ReceiverAddress string `json:"receiverAddress"` ReceiverArea string `json:"receiverArea"` ReceiverCity string `json:"receiverCity"` ReceiverCounty string `json:"receiverCounty"` ReceiverLatitude string `json:"receiverLatitude"` ReceiverLongitude string `json:"receiverLongitude"` ReceiverMobile string `json:"receiverMobile"` ReceiverName string `json:"receiverName"` ReceiverProvince string `json:"receiverProvince"` ReceiverZip string `json:"receiverZip"` } `json:"logisticsDeliveryDetail"` } `json:"deliveryDetail"` DeliveryPaymentAmount float64 `json:"deliveryPaymentAmount"` DiscountInfo struct { MerchantDiscountAmount int `json:"merchantDiscountAmount"` } `json:"discountInfo"` EnableDelivery int `json:"enableDelivery"` ExistingInvoice bool `json:"existingInvoice"` ExpandLabelInfo struct { VirtualWid bool `json:"virtualWid"` } `json:"expandLabelInfo"` GoodsAmount float64 `json:"goodsAmount"` GoodsPromotionInfo struct { CycleOrderInfo struct { CyclePackageList []interface{} `json:"cyclePackageList"` } `json:"cycleOrderInfo"` GoodsDistributionType int `json:"goodsDistributionType"` PromotionType int `json:"promotionType"` } `json:"goodsPromotionInfo"` GoodsSellMode int `json:"goodsSellMode"` GoodsSourceType int `json:"goodsSourceType"` GuideInfo struct { GoodsGuideType int `json:"goodsGuideType"` } `json:"guideInfo"` InvoiceTexAmount int `json:"invoiceTexAmount"` InvoiceTexDiscountAmount int `json:"invoiceTexDiscountAmount"` InvoiceTexPaymentAmount int `json:"invoiceTexPaymentAmount"` ItemList []struct { BaseDiscountInfo struct { } `json:"baseDiscountInfo"` BizInfo struct { } `json:"bizInfo"` CostPrice float64 `json:"costPrice"` GoodsDiscountInfo struct { } `json:"goodsDiscountInfo"` GoodsCode string `json:"goodsCode"` GoodsID int64 `json:"goodsId"` GoodsSellMode int `json:"goodsSellMode"` GoodsSourceType int `json:"goodsSourceType"` GoodsTitle string `json:"goodsTitle"` GoodsType int `json:"goodsType"` HadDeliveryItemNum int `json:"hadDeliveryItemNum"` ID int `json:"id"` ImageURL string `json:"imageUrl"` OriginalPrice float64 `json:"originalPrice"` PaymentAmount float64 `json:"paymentAmount"` PointDeductRatio int `json:"pointDeductRatio"` Price float64 `json:"price"` PrimaryCategory string `json:"primaryCategory"` SecondaryCategory string `json:"secondaryCategory"` ShouldPaymentAmount float64 `json:"shouldPaymentAmount"` SkuAmount float64 `json:"skuAmount"` SkuCode string `json:"skuCode"` SkuID int64 `json:"skuId"` SkuNum int `json:"skuNum"` TagInfo struct { ActivityTag []interface{} `json:"activityTag"` GoodsBizTag []interface{} `json:"goodsBizTag"` } `json:"tagInfo"` TotalAmount float64 `json:"totalAmount"` WarehouseID int `json:"warehouseId"` WarehouseName string `json:"warehouseName"` WarehouseType int `json:"warehouseType"` } `json:"itemList"` MerchantInfo struct { MerchantTitle string `json:"merchantTitle"` Pid int64 `json:"pid"` ProcessStoreID int `json:"processStoreId"` ProcessStoreTitle string `json:"processStoreTitle"` StoreID int `json:"storeId"` StoreTitle string `json:"storeTitle"` } `json:"merchantInfo"` OperationList []struct { Name string `json:"name"` OperationType int `json:"operationType"` PermissionCode string `json:"permissionCode"` } `json:"operationList"` OrderNo int64 `json:"orderNo"` OrderStatus int `json:"orderStatus"` OrderStatusName string `json:"orderStatusName"` OrderType int `json:"orderType"` PaymentAmount float64 `json:"paymentAmount"` PaymentInfo struct { PaymentStatus int `json:"paymentStatus"` PaymentType int `json:"paymentType"` PaymentTypeName string `json:"paymentTypeName"` } `json:"paymentInfo"` ProcessStoreID int `json:"processStoreId"` ProcessStoreTitle string `json:"processStoreTitle"` ShouldPaymentAmount float64 `json:"shouldPaymentAmount"` StoreTitle string `json:"storeTitle"` TotalAmount float64 `json:"totalAmount"` TransferStatus int `json:"transferStatus"` TransferType int `json:"transferType"` UpdateTime int64 `json:"updateTime"` } type QueryOrdersListParam struct { PageNum int `json:"pageNum"` PageSize int `json:"pageSize"` EcBizStoreId int64 `json:"ecBizStoreId,omitempty"` QueryParameter *MerchantOrderListQueryParameter `json:"queryParameter,omitempty"` } type MerchantOrderListQueryParameter struct { CreateStartTime int64 `json:"createStartTime,omitempty"` //下单起始时间 CreateEndTime int64 `json:"createEndTime,omitempty"` //下单结束时间 UpdateStartTime int64 `json:"updateStartTime,omitempty"` //更新开始时间 UpdateEndTime int64 `json:"updateEndTime,omitempty"` //更新结束时间 OrderTypes []int `json:"orderTypes,omitempty"` //订单类型: 1、B2C订单 99、充值订单 97、直接消费订单 不传默认为 1 (建议只传一种类型) OrderStatuses []int `json:"orderStatuses"` //订单状态 (空为不限,0-待支付,1-待发货,2-已发货,3-已完成,4-已取消) ChannelTypes []int `json:"channelTypes"` //渠道类型 (空为不限,0-公众号,1-小程序,2-H5,3-QQ,4-微博,5-头条,6-支付宝,7-线下) DeliveryStatuses []int `json:"deliveryStatuses"` //发货状态 (空为不限,0未发货,1为部分发货,2为已发货) PaymentTypes []int `json:"paymentTypes"` //支付类型(空为不限,1-线上支付(包括微信、支付宝、银行卡、购物卡等),2-线下支付(包括现金、欠条等,默认是现金),3-混合支付(网上支付和线下支付混合)) PaymentMethods []int `json:"paymentMethods"` //支付方式 (空为不限,1-支付宝,2-微信,3-银行卡,4-现金,5-货到付款,6-无需支付) DeliveryTypes []int `json:"deliveryTypes"` //配送类型 (空为不限,1-物流配送(走快递发货流程),2-同城限时达(走即时物流流程),3-到店自提(走自提流程)) FlagRanks []int `json:"flagRanks"` //订单标记 (空为不限,等级1到5) BizTypes []int `json:"bizTypes"` //业务类型 (空为不限,0-普通,3-限时折扣,4-砍价, 5-拼团) GoodsDistributionTypes []int `json:"goodsDistributionTypes,omitempty"` //分销类型:1、普通商品,2、分销商品 TransferStatus int `json:"transferStatus,omitempty"` //转单状态 : 0未转单,1已转单,2转单失败 不传代表全部 GoodsPromotionTypes []int `json:"goodsPromotionTypes ,omitempty"` //商品销售类型,1为普通,2为周期购,3、积分订单 } type OrderInfo struct { BizOrderID string `json:"bizOrderId"` BizType int `json:"bizType"` BuyerRemark string `json:"buyerRemark"` ChannelType int `json:"channelType"` ChannelTypeName string `json:"channelTypeName"` ConfirmReceivedTime interface{} `json:"confirmReceivedTime"` CreateTime int64 `json:"createTime"` DeliveryAmount float64 `json:"deliveryAmount"` DeliveryOrderID interface{} `json:"deliveryOrderId"` DeliveryTime interface{} `json:"deliveryTime"` DeliveryType int `json:"deliveryType"` DeliveryTypeName string `json:"deliveryTypeName"` EnableDelivery int `json:"enableDelivery"` ExpectDeliveryTime string `json:"expectDeliveryTime"` FlagContent interface{} `json:"flagContent"` FlagRank interface{} `json:"flagRank"` GoodsAmount float64 `json:"goodsAmount"` GoodsPromotionInfo GoodsPromotionInfo `json:"goodsPromotionInfo"` ItemList []ItemList `json:"itemList"` OrderNo int64 `json:"orderNo"` OrderStatus int `json:"orderStatus"` OrderStatusName string `json:"orderStatusName"` PaymentAmount float64 `json:"paymentAmount"` PaymentMethodName string `json:"paymentMethodName"` PaymentStatus int `json:"paymentStatus"` PaymentTime interface{} `json:"paymentTime"` PaymentType int `json:"paymentType"` PaymentTypeName string `json:"paymentTypeName"` Pid int64 `json:"pid"` ProcessStoreID int `json:"processStoreId"` ProcessStoreTitle string `json:"processStoreTitle"` ReceiverAddress string `json:"receiverAddress"` ReceiverArea string `json:"receiverArea"` ReceiverCity string `json:"receiverCity"` ReceiverCounty string `json:"receiverCounty"` ReceiverMobile string `json:"receiverMobile"` ReceiverName string `json:"receiverName"` ReceiverProvince string `json:"receiverProvince"` SelfPickupSiteName interface{} `json:"selfPickupSiteName"` SelfPickupStatus interface{} `json:"selfPickupStatus"` StoreID int `json:"storeId"` StoreTitle string `json:"storeTitle"` SubBizType interface{} `json:"subBizType"` TotalPoint interface{} `json:"totalPoint"` TransferFailReason interface{} `json:"transferFailReason"` TransferStatus int `json:"transferStatus"` TransferType int `json:"transferType"` UpdateTime int64 `json:"updateTime"` UserNickname string `json:"userNickname"` Wid int `json:"wid"` } type CycleOrderInfo struct { CurrentCycleNum interface{} `json:"currentCycleNum"` CycleDeliveryTime interface{} `json:"cycleDeliveryTime"` CycleItemList interface{} `json:"cycleItemList"` CyclePackageList interface{} `json:"cyclePackageList"` CycleSize interface{} `json:"cycleSize"` CycleType interface{} `json:"cycleType"` CycleTypeName interface{} `json:"cycleTypeName"` FirstTime interface{} `json:"firstTime"` } type GoodsPromotionInfo struct { CycleOrderInfo CycleOrderInfo `json:"cycleOrderInfo"` GoodsDistributionType interface{} `json:"goodsDistributionType"` PromotionID interface{} `json:"promotionId"` PromotionOrderID interface{} `json:"promotionOrderId"` PromotionType int `json:"promotionType"` } type BaseDiscountInfo struct { BalanceDiscountAmount interface{} `json:"balanceDiscountAmount"` BalanceDiscountDeliveryAmount interface{} `json:"balanceDiscountDeliveryAmount"` CouponCodeDiscountAmount interface{} `json:"couponCodeDiscountAmount"` CouponCodeDiscountInfo interface{} `json:"couponCodeDiscountInfo"` CouponDiscountAmount interface{} `json:"couponDiscountAmount"` CouponDiscountInfo interface{} `json:"couponDiscountInfo"` DeliveryUsedPoints interface{} `json:"deliveryUsedPoints"` MemberPointsDiscountAmount interface{} `json:"memberPointsDiscountAmount"` MembershipDiscountAmount interface{} `json:"membershipDiscountAmount"` MembershipDiscountInfo interface{} `json:"membershipDiscountInfo"` MerchantDiscountAmount interface{} `json:"merchantDiscountAmount"` NynjDiscountAmount interface{} `json:"nynjDiscountAmount"` PointsDiscountDeliveryAmount interface{} `json:"pointsDiscountDeliveryAmount"` PromotionDiscountAmount int `json:"promotionDiscountAmount"` UsedMemberPoints interface{} `json:"usedMemberPoints"` } type BizInfo struct { BizID interface{} `json:"bizId"` BizOrderID interface{} `json:"bizOrderId"` BizType interface{} `json:"bizType"` SubBizType interface{} `json:"subBizType"` } type TagInfo struct { ActivityTag interface{} `json:"activityTag"` AdvancedActivityTagList interface{} `json:"advancedActivityTagList"` AllActivityTagList interface{} `json:"allActivityTagList"` AllTagList interface{} `json:"allTagList"` BizTagList interface{} `json:"bizTagList"` CouponTag interface{} `json:"couponTag"` CustomizedTag interface{} `json:"customizedTag"` GeneralActivityTagList interface{} `json:"generalActivityTagList"` GoodsBizTag []interface{} `json:"goodsBizTag"` GoodsUserTag interface{} `json:"goodsUserTag"` IndustryTagList interface{} `json:"industryTagList"` MerchantTag interface{} `json:"merchantTag"` UserTag interface{} `json:"userTag"` } type ItemList struct { BaseDiscountInfo BaseDiscountInfo `json:"baseDiscountInfo"` BizInfo BizInfo `json:"bizInfo"` CommentStatus interface{} `json:"commentStatus"` GoodsCategoryID interface{} `json:"goodsCategoryId"` GoodsCode interface{} `json:"goodsCode"` GoodsID int64 `json:"goodsId"` GoodsTitle string `json:"goodsTitle"` GoodsType int `json:"goodsType"` HadDeliveryItemNum int `json:"hadDeliveryItemNum"` ID int `json:"id"` ImageURL string `json:"imageUrl"` OriginalPrice float64 `json:"originalPrice"` PaymentAmount float64 `json:"paymentAmount"` Point interface{} `json:"point"` Price float64 `json:"price"` RightsOrderID interface{} `json:"rightsOrderId"` RightsStatus interface{} `json:"rightsStatus"` RightsStatusName interface{} `json:"rightsStatusName"` ShouldPaymentAmount interface{} `json:"shouldPaymentAmount"` SkuAmount float64 `json:"skuAmount"` SkuCode interface{} `json:"skuCode"` SkuID int64 `json:"skuId"` SkuName interface{} `json:"skuName"` SkuNum int `json:"skuNum"` TagInfo TagInfo `json:"tagInfo"` TotalAmount float64 `json:"totalAmount"` TotalPoint interface{} `json:"totalPoint"` } //查询微盟订单 func (a *API) QueryOrdersList(queryParam *QueryOrdersListParam) (orderList []*OrderInfo, totalCount int, err error) { param := make(map[string]interface{}) if queryParam != nil { param = utils.Struct2FlatMap(queryParam) } result, err := a.AccessAPI("order/queryOrderList", param) if err == nil { data := result.(map[string]interface{}) totalCount = int(utils.MustInterface2Int64(data["totalCount"])) err = utils.Map2StructByJson(data["pageList"], &orderList, false) } return orderList, totalCount, err } func (a *API) QueryOrderDetail(orderNo int64, needInvoiceInfo bool) (retVal map[string]interface{}, err error) { result, err := a.AccessAPI("order/queryOrderDetail", map[string]interface{}{ "orderNo": orderNo, "needInvoiceInfo": needInvoiceInfo, }) if err == nil { return result.(map[string]interface{}), nil } return nil, err } func (a *API) QueryOrderDetail2(orderNo int64, needInvoiceInfo bool) (order *OrderDetail, err error) { result, err := a.AccessAPI("order/queryOrderDetail", map[string]interface{}{ "orderNo": orderNo, "needInvoiceInfo": needInvoiceInfo, }) if err == nil { err = utils.Map2StructByJson(result, &order, false) } return order, err } func (a *API) CancelOrder(orderNo int64, specificCancelReason string) (err error) { apiParams := map[string]interface{}{ "orderNo": orderNo, } if specificCancelReason != "" { apiParams["specificCancelReason"] = specificCancelReason } _, err = a.AccessAPI("order/cancelOrder", apiParams) return err } func (a *API) DeliveryOrder(orderDeliveryInfo *DeliveryOrder) (err error) { apiParams := utils.Struct2MapByJson(orderDeliveryInfo) // baseapi.SugarLogger.Debug(utils.Format4Output(apiParams, false)) _, err = a.AccessAPI("order/deliveryOrder", apiParams) return err }