diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 3d2b783c7..f5395e136 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -65,22 +65,6 @@ func QueryOrders(db *DaoDB, vendorOrderID string, actIDs, vendorIDs []int, store SELECT a.*,b.id order_sku_id, b.store_sub_id, b.store_sub_name, b.count, b.vendor_sku_id, b.sku_id, b.jx_sku_id, b.sku_name, b.shop_price sku_shop_price, b.vendor_price sku_vendor_price, b.sale_price sku_sale_price, b.earning_price sku_earning_price, b.weight, b.sku_type, b.promotion_type FROM goods_order a JOIN order_sku b ON a.vendor_order_id = b.vendor_order_id - ` - if len(actIDs) > 0 { - sql += ` - JOIN (SELECT t1.begin_at,t1.end_at, t2.act_id,t2.store_id, t2.sku_id - FROM act t1 - JOIN act_store_sku t2 ON t2.act_id = t1.id - WHERE t1.status = 1 - AND t1.id IN (` + GenQuestionMarks(len(actIDs)) + `) - )s - ON s.store_id = a.store_id - AND s.sku_id = b.sku_id - AND a.order_created_at BETWEEN s.begin_at AND s.end_at - ` - sqlParams = append(sqlParams, actIDs) - } - sql += ` WHERE 1=1 ` if vendorOrderID != "" { @@ -99,6 +83,21 @@ func QueryOrders(db *DaoDB, vendorOrderID string, actIDs, vendorIDs []int, store sql += " AND a.order_created_at BETWEEN ? and ?" sqlParams = append(sqlParams, fromDate, toDate) } + if len(actIDs) > 0 { + sql += ` + AND a.vendor_order_id IN + (SELECT b.vendor_order_id + FROM act t1 + JOIN act_store_sku t2 ON t2.act_id = t1.id + JOIN order_sku b ON b.sku_id = t2.sku_id + WHERE t1.status = 1 + AND t1.id IN (` + GenQuestionMarks(len(actIDs)) + `) + AND t2.store_id = a.store_id + AND a.order_created_at BETWEEN t1.begin_at AND t1.end_at + ) + ` + sqlParams = append(sqlParams, actIDs) + } err = GetRows(db, &orderNewList, sql, sqlParams...) if len(orderNewList) > 0 { orderNewMap = make(map[string][]*model.OrderSku)