- recalculate order.Weight when platform not give

This commit is contained in:
gazebo
2018-09-28 12:10:30 +08:00
parent 64087ea640
commit 40affb2707
2 changed files with 16 additions and 5 deletions

View File

@@ -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
}

View File

@@ -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而不是空01538103149不是特殊值只是一个任意之前的时间这样写可以处理
return utils.DefaultTimeValue
}
return utils.Timestamp2Time(timeStamp)