diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 2cdd38056..76875d07a 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -196,9 +196,9 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O var sql string if globals.OrderUseNewTable || jxStoreID == globals.DebugStoreID { - skuIDs := make([]int64, len(orderSkus)) + vendorSkuIDs := make([]int64, len(orderSkus)) for k, v := range orderSkus { - skuIDs[k] = utils.Str2Int64(v.VendorSkuID) + vendorSkuIDs[k] = utils.Str2Int64(v.VendorSkuID) } if order.VendorID == model.VendorIDELM { // todo 临时用 sql = ` @@ -206,26 +206,23 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O 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 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 { - vendorSkuIDField := "" - if order.VendorID == model.VendorIDJD { - vendorSkuIDField = " t1.jd_id " - } 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)) + tableName := "t2" + if model.MultiStoresVendorMap[order.VendorID] == 1 { + tableName = "t1" } - 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 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 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) return err }