Merge remote-tracking branch 'remotes/origin/master' into lyb
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
"git.rosy.net.cn/baseapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/scheduler"
|
||||
@@ -172,44 +173,79 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
|
||||
return isDuplicated, err
|
||||
}
|
||||
|
||||
func (c *OrderController) updateOrderSkuOtherInfo(orderSkus []*model.OrderSku, db orm.Ormer) (err error) {
|
||||
func (c *OrderController) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.Ormer) (err error) {
|
||||
jxStoreID := jxutils.GetJxStoreIDFromOrder(order)
|
||||
if jxStoreID == 0 {
|
||||
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]订单找不到京西门店信息orderID:%s", order.VendorOrderID)
|
||||
return nil
|
||||
}
|
||||
orderSkus := order.Skus
|
||||
var sql string
|
||||
if orderSkus[0].VendorID == model.VendorIDJD {
|
||||
sql = `
|
||||
SELECT t1.jdskuid, t1.skuid
|
||||
SELECT t1.jdskuid, t1.skuid, t2.price
|
||||
FROM skumapper t1
|
||||
/* JOIN jx_sku t2 ON t1.skuid = t2.id */
|
||||
WHERE t1.jdskuid IN (
|
||||
LEFT JOIN jx_sku_store_bind t2 ON t1.skuid = t2.jxskuid AND t2.jxstoreid = ?
|
||||
WHERE t1.jdskuid IN (-1,
|
||||
`
|
||||
} else if orderSkus[0].VendorID == model.VendorIDELM {
|
||||
// 饿了么当前没有存映射关系
|
||||
return nil
|
||||
sql = `
|
||||
SELECT t2.jxskuid, t2.jxskuid, t2.price
|
||||
FROM jx_sku_store_bind t2
|
||||
WHERE t2.jxstoreid = ? AND t2.jxskuid IN (-1,
|
||||
`
|
||||
} else {
|
||||
panic(fmt.Sprintf("wrong vendorid:%d", orderSkus[0].VendorID))
|
||||
}
|
||||
|
||||
jdskuids := []interface{}{}
|
||||
sqlParams := []interface{}{jxStoreID}
|
||||
for _, v := range orderSkus {
|
||||
sql += "?,"
|
||||
jdskuids = append(jdskuids, int(utils.Str2Int64(v.VendorSkuID)))
|
||||
if orderSkus[0].VendorID == model.VendorIDJD {
|
||||
sql += "?,"
|
||||
sqlParams = append(sqlParams, int(utils.Str2Int64(v.VendorSkuID)))
|
||||
} else if v.SkuID != 0 {
|
||||
sql += "?,"
|
||||
sqlParams = append(sqlParams, v.SkuID)
|
||||
}
|
||||
}
|
||||
sql = sql[:len(sql)-1] + ")"
|
||||
var lists []orm.ParamsList
|
||||
if num, err := db.Raw(sql, jdskuids...).ValuesList(&lists); err == nil && num > 0 {
|
||||
skumapper := make(map[string]string)
|
||||
if num, err := db.Raw(sql, sqlParams...).ValuesList(&lists); err == nil {
|
||||
skumapper := make(map[string]orm.ParamsList)
|
||||
for _, v := range lists {
|
||||
skumapper[v[0].(string)] = v[1].(string)
|
||||
skumapper[v[0].(string)] = v
|
||||
}
|
||||
// globals.SugarLogger.Debug(skumapper)
|
||||
for _, v := range orderSkus {
|
||||
if jxskuid, ok := skumapper[v.VendorSkuID]; ok {
|
||||
v.JxSkuID = int(utils.Str2Int64(jxskuid))
|
||||
if orderSkus[0].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)
|
||||
order.ShopPrice += v.ShopPrice
|
||||
if v.ShopPrice == 0 {
|
||||
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]京东订单sku门店价格为零,orderID:%s sku:%v", order.VendorOrderID, v)
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]京东订单sku找不到门店价格,orderID:%s sku:%v", order.VendorOrderID, v)
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Infof("updateOrderSkuOtherInfo can not find sku map:%v", v)
|
||||
if v.SkuID != 0 {
|
||||
if values, ok := skumapper[utils.Int2Str(v.SkuID)]; ok {
|
||||
v.ShopPrice = utils.Str2Int64WithDefault(utils.Interface2String(values[2]), 0)
|
||||
order.ShopPrice += v.ShopPrice
|
||||
if v.ShopPrice == 0 {
|
||||
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]饿了么订单sku门店价格为零,orderID:%s sku:%v", order.VendorOrderID, v)
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]饿了么订单sku找不到门店价格,orderID:%s sku:%v", order.VendorOrderID, v)
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]饿了么订单sku没有京西信息,orderID:%s sku:%v", order.VendorOrderID, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku info for orderID:%s, num:%d, error:%v", orderSkus[0].VendorOrderID, num, err)
|
||||
globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku info for orderID:%s, num:%d, error:%v", order.VendorOrderID, num, err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -237,9 +273,9 @@ func (c *OrderController) updateOrderOtherInfo(order *model.GoodsOrder, db orm.O
|
||||
if num, err := db.Raw(sql, utils.Str2Int64(order.VendorStoreID)).ValuesList(&lists); err == nil && num == 1 {
|
||||
order.JxStoreID = int(utils.Str2Int64(lists[0][0].(string)))
|
||||
} else {
|
||||
globals.SugarLogger.Warnf("updateOrderOtherInfo can not find store info for orderID:%s, store:%s, num:%d, error:%v", order.VendorOrderID, order.VendorStoreID, num, err)
|
||||
globals.SugarLogger.Infof("updateOrderOtherInfo [运营]订单orderID:%s找不到相应的京西门店信息,请处理, store:%s, num:%d, error:%v", order.VendorOrderID, order.VendorStoreID, num, err)
|
||||
}
|
||||
err = c.updateOrderSkuOtherInfo(order.Skus, db)
|
||||
err = c.updateOrderSkuOtherInfo(order, db)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user