diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index a0f730c6e..adb833c99 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -187,14 +187,16 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O var sql string if orderSkus[0].VendorID == model.VendorIDJD { // todo 为什么要区分京东与其它? sql = ` - SELECT t1.jdskuid, t1.skuid, t2.price + SELECT t1.jdskuid, t1.skuid, t2.price, t3.weight FROM skumapper t1 LEFT JOIN jx_sku_store_bind t2 ON t1.skuid = t2.jxskuid AND t2.jxstoreid = ? + LEFT JOIN jx_sku t3 ON t2.jxskuid = t3.id WHERE t1.jdskuid IN (-1,` } else { sql = ` - SELECT t2.jxskuid, t2.jxskuid, t2.price + SELECT t2.jxskuid, t2.jxskuid, t2.price, t3.weight FROM jx_sku_store_bind t2 + LEFT JOIN jx_sku t3 ON t2.jxskuid = t3.id WHERE t2.jxstoreid = ? AND t2.jxskuid IN (-1,` } @@ -222,7 +224,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O } // globals.SugarLogger.Debug(skumapper) for _, v := range orderSkus { - if orderSkus[0].VendorID == model.VendorIDJD { + if order.VendorID == model.VendorIDJD { if values, ok := skumapper[v.VendorSkuID]; ok { v.JxSkuID = int(utils.Str2Int64(utils.Interface2String(values[1]))) v.ShopPrice = utils.Str2Int64WithDefault(utils.Interface2String(values[2]), 0) @@ -236,6 +238,9 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O } else { if v.SkuID != 0 { if values, ok := skumapper[utils.Int2Str(v.SkuID)]; ok { + if v.Weight == 0 { + v.Weight = jxutils.FloatWeight2Int(float32(utils.Str2Float64WithDefault(utils.Interface2String(values[3]), 0.0))) + } v.ShopPrice = utils.Str2Int64WithDefault(utils.Interface2String(values[2]), 0) order.ShopPrice += v.ShopPrice * int64(v.Count) if v.ShopPrice == 0 { @@ -283,7 +288,13 @@ func (c *OrderManager) updateOrderOtherInfo(order *model.GoodsOrder, db orm.Orme globals.SugarLogger.Infof("updateOrderOtherInfo [运营]订单orderID:%s在京西找不到相应的京西门店信息,请处理, VendorStoreID:%s, num:%d, error:%v", order.VendorOrderID, order.VendorStoreID, num, err) } } - err = c.updateOrderSkuOtherInfo(order, db) + if err = c.updateOrderSkuOtherInfo(order, db); err == nil { + if order.Weight == 0 { + for _, v := range order.Skus { + order.Weight += v.Weight + } + } + } return err } diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 37b0dab68..673ed319f 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -185,7 +185,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *ebaiapi.CallbackMsg) *model.Or func getTimeFromTimestampStr(sendTime string) time.Time { timeStamp := utils.Str2Int64WithDefault(sendTime, 0) - if timeStamp == 0 { + if timeStamp < 1538103149 { // 立即达订单给的是1(而不是空,0),1538103149不是特殊值,只是一个任意之前的时间,这样写可以处理 return utils.DefaultTimeValue } return utils.Timestamp2Time(timeStamp)