diff --git a/business/partner/purchase/jdshop/order.go b/business/partner/purchase/jdshop/order.go index f68ad75e9..52588dd17 100644 --- a/business/partner/purchase/jdshop/order.go +++ b/business/partner/purchase/jdshop/order.go @@ -1,11 +1,14 @@ package jdshop import ( + "time" + "git.rosy.net.cn/baseapi/platformapi/jdshopapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" ) @@ -109,6 +112,14 @@ func (p *PurchaseHandler) GetJdsOrders(ctx *jxcontext.Context, orderCreatedStart func result2Orders(result *jdshopapi.AllOrdersResult) (orders []*model.GoodsOrder, err error) { for _, jdsOrder := range result.OrderList { + if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusWaittingPay { + continue + } + orderDetail, err := api.JdShopAPI.OrderDetail(utils.Int64ToStr(jdsOrder.OrderID)) + if err != nil { + globals.SugarLogger.Debugf("jds OrderDetail error: %v", err.Error()) + continue + } order := &model.GoodsOrder{ VendorOrderID: utils.Int64ToStr(jdsOrder.OrderID), VendorID: model.VendorIDJDShop, @@ -116,9 +127,39 @@ func result2Orders(result *jdshopapi.AllOrdersResult) (orders []*model.GoodsOrde VendorStatus: utils.Int2Str(jdsOrder.OrderStatus), VendorUserID: jdsOrder.UserPin, BuyerComment: jdsOrder.UserRemark, - // PickDeadline: utils.DefaultTimeValue, - OriginalData: string(utils.MustMarshal(jdsOrder)), - StoreName: jdsOrder.StoreName, + PickDeadline: utils.DefaultTimeValue, + OriginalData: string(utils.MustMarshal(jdsOrder)), + StoreName: jdsOrder.StoreName, + OrderCreatedAt: utils.Str2Time(jdsOrder.OrderCreateTime + ":00"), + ConsigneeAddress: orderDetail.ConsigneeAddress, + ConsigneeMobile: orderDetail.ConsigneeMobile, + ConsigneeName: orderDetail.ConsigneeName, + ActualPayPrice: orderDetail.ActualPayPrice, + // TotalShopMoney: orderDetail.ActualPayPrice * jdshopapi.JdsPayPercentage, + } + //如果是暂停,表示是预订单 + if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusPause { + order.BusinessType = model.BusinessTypeDingshida + order.ExpectedDeliveredTime = utils.Str2Time(orderDetail.ExpectedDeliveredTime) + } else if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusWaittingExport { + order.ExpectedDeliveredTime = order.CreatedAt.Add(time.Hour) + order.BusinessType = model.BusinessTypeImmediate + } else { + globals.SugarLogger.Errorf("未知的京东商城订单状态!status : %V", jdsOrder.OrderStatus) + } + for _, v := range jdsOrder.OrderItems { + sku := &model.OrderSku{ + VendorID: model.VendorIDJDShop, + VendorOrderID: utils.Int64ToStr(jdsOrder.OrderID), + Count: v.SkuNum, + VendorSkuID: utils.Int64ToStr(v.SkuID), + SkuName: v.SkuName, + VendorPrice: jxutils.StandardPrice2Int(v.JdPrice), + SalePrice: jxutils.StandardPrice2Int(v.JdPrice), + } + _, _, _, specUnit, _, specQuality := jxutils.SplitSkuName(v.SkuName) + sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit) + order.Skus = append(order.Skus, sku) } orders = append(orders, order) }