- refactor updateOrderSkuOtherInfo using ConvertDBFieldPrefix

This commit is contained in:
gazebo
2018-11-28 20:04:58 +08:00
parent ffae5e8434
commit de110daf0b

View File

@@ -196,9 +196,9 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O
var sql string var sql string
if globals.OrderUseNewTable || jxStoreID == globals.DebugStoreID { if globals.OrderUseNewTable || jxStoreID == globals.DebugStoreID {
skuIDs := make([]int64, len(orderSkus)) vendorSkuIDs := make([]int64, len(orderSkus))
for k, v := range orderSkus { for k, v := range orderSkus {
skuIDs[k] = utils.Str2Int64(v.VendorSkuID) vendorSkuIDs[k] = utils.Str2Int64(v.VendorSkuID)
} }
if order.VendorID == model.VendorIDELM { // todo 临时用 if order.VendorID == model.VendorIDELM { // todo 临时用
sql = ` sql = `
@@ -206,26 +206,23 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O
FROM eb_sku_id_map t1 FROM eb_sku_id_map t1
LEFT JOIN store_sku_bind t2 ON t1.custom_sku_id = t2.sku_id AND t2.deleted_at = ? AND t2.store_id = ? LEFT JOIN store_sku_bind t2 ON t1.custom_sku_id = t2.sku_id AND t2.deleted_at = ? AND t2.store_id = ?
LEFT JOIN sku t3 ON t1.custom_sku_id = t3.id AND t3.deleted_at = ? LEFT JOIN sku t3 ON t1.custom_sku_id = t3.id AND t3.deleted_at = ?
WHERE t1.sku_id IN (-1,` + dao.GenQuestionMarks(len(skuIDs)) + ")" WHERE t1.sku_id IN (-1,` + dao.GenQuestionMarks(len(vendorSkuIDs)) + ")"
} else { } else {
vendorSkuIDField := "" tableName := "t2"
if order.VendorID == model.VendorIDJD { if model.MultiStoresVendorMap[order.VendorID] == 1 {
vendorSkuIDField = " t1.jd_id " tableName = "t1"
} else if order.VendorID == model.VendorIDELM {
vendorSkuIDField = " t2.elm_id "
} else if order.VendorID == model.VendorIDEBAI {
vendorSkuIDField = " t2.ebai_id "
} else {
panic(fmt.Sprintf("unknown vendorID:%d", order.VendorID))
} }
sql = "SELECT " + vendorSkuIDField + ` vendor_sku_id, t1.id sku_id, t2.unit_price, t1.weight fieldPrefix := dao.ConvertDBFieldPrefix(model.VendorNames[order.VendorID])
sql = `
SELECT %s.%s_id vendor_sku_id, t1.id sku_id, t2.unit_price, t1.weight
FROM sku t1 FROM sku t1
LEFT JOIN store_sku_bind t2 ON t1.id = t2.sku_id AND t2.deleted_at = ? AND t2.store_id = ? LEFT JOIN store_sku_bind t2 ON t1.id = t2.sku_id AND t2.deleted_at = ? AND t2.store_id = ?
WHERE t1.deleted_at = ? AND ` + vendorSkuIDField + " IN (-1, " + dao.GenQuestionMarks(len(skuIDs)) + ")" WHERE t1.deleted_at = ? AND %s.%s_id IN (-1, ` + dao.GenQuestionMarks(len(vendorSkuIDs)) + ")"
sql = fmt.Sprintf(sql, tableName, fieldPrefix, tableName, fieldPrefix)
} }
var skuInfos []*tStoreSkuBindAndVendorSkuID var skuInfos []*tStoreSkuBindAndVendorSkuID
db2 := dao.WrapDB(db) db2 := dao.WrapDB(db)
if err = dao.GetRows(db2, &skuInfos, sql, utils.DefaultTimeValue, jxStoreID, utils.DefaultTimeValue, skuIDs); err != nil { if err = dao.GetRows(db2, &skuInfos, sql, utils.DefaultTimeValue, jxStoreID, utils.DefaultTimeValue, vendorSkuIDs); err != nil {
globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku info for orderID:%s, error:%v", order.VendorOrderID, err) globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku info for orderID:%s, error:%v", order.VendorOrderID, err)
return err return err
} }