- 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 var sql string
if orderSkus[0].VendorID == model.VendorIDJD { // todo 为什么要区分京东与其它? if orderSkus[0].VendorID == model.VendorIDJD { // todo 为什么要区分京东与其它?
sql = ` sql = `
SELECT t1.jdskuid, t1.skuid, t2.price SELECT t1.jdskuid, t1.skuid, t2.price, t3.weight
FROM skumapper t1 FROM skumapper t1
LEFT JOIN jx_sku_store_bind t2 ON t1.skuid = t2.jxskuid AND t2.jxstoreid = ? 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,` WHERE t1.jdskuid IN (-1,`
} else { } else {
sql = ` sql = `
SELECT t2.jxskuid, t2.jxskuid, t2.price SELECT t2.jxskuid, t2.jxskuid, t2.price, t3.weight
FROM jx_sku_store_bind t2 FROM jx_sku_store_bind t2
LEFT JOIN jx_sku t3 ON t2.jxskuid = t3.id
WHERE t2.jxstoreid = ? AND t2.jxskuid IN (-1,` 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) // globals.SugarLogger.Debug(skumapper)
for _, v := range orderSkus { for _, v := range orderSkus {
if orderSkus[0].VendorID == model.VendorIDJD { if order.VendorID == model.VendorIDJD {
if values, ok := skumapper[v.VendorSkuID]; ok { if values, ok := skumapper[v.VendorSkuID]; ok {
v.JxSkuID = int(utils.Str2Int64(utils.Interface2String(values[1]))) v.JxSkuID = int(utils.Str2Int64(utils.Interface2String(values[1])))
v.ShopPrice = utils.Str2Int64WithDefault(utils.Interface2String(values[2]), 0) v.ShopPrice = utils.Str2Int64WithDefault(utils.Interface2String(values[2]), 0)
@@ -236,6 +238,9 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O
} else { } else {
if v.SkuID != 0 { if v.SkuID != 0 {
if values, ok := skumapper[utils.Int2Str(v.SkuID)]; ok { 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) v.ShopPrice = utils.Str2Int64WithDefault(utils.Interface2String(values[2]), 0)
order.ShopPrice += v.ShopPrice * int64(v.Count) order.ShopPrice += v.ShopPrice * int64(v.Count)
if v.ShopPrice == 0 { 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) 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 return err
} }

View File

@@ -185,7 +185,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *ebaiapi.CallbackMsg) *model.Or
func getTimeFromTimestampStr(sendTime string) time.Time { func getTimeFromTimestampStr(sendTime string) time.Time {
timeStamp := utils.Str2Int64WithDefault(sendTime, 0) timeStamp := utils.Str2Int64WithDefault(sendTime, 0)
if timeStamp == 0 { if timeStamp < 1538103149 { // 立即达订单给的是1而不是空01538103149不是特殊值只是一个任意之前的时间这样写可以处理
return utils.DefaultTimeValue return utils.DefaultTimeValue
} }
return utils.Timestamp2Time(timeStamp) return utils.Timestamp2Time(timeStamp)