From 89a036f0ac5abf116d0d52223f6099fa1f24a287 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Mon, 7 Jun 2021 18:08:32 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store_sku.go | 33 ++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e46d68b57..e2002e31d 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1116,10 +1116,11 @@ func GetStoresSkusSaleInfoNew(ctx *jxcontext.Context, vendorIDs, storeIDs, skuID } sql := ` SELECT SQL_CALC_FOUND_ROWS t1.* FROM ( - SELECT d.id store_id, d.name store_name, c.id sku_id, e.name sku_name, a.vendor_id, SUM(a.count) sale_count - FROM order_sku a - LEFT JOIN goods_order b ON a.vendor_id = b.vendor_id AND a.vendor_order_id = b.vendor_order_id - LEFT JOIN sku c ON IF(a.jx_sku_id = 0, a.sku_id, a.jx_sku_id) = c.id + SELECT d.id store_id, d.name store_name, c.id sku_id, e.name sku_name, a.vendor_id, SUM(IFNULL(a.count,0)) sale_count + FROM store_sku_bind t + LEFT JOIN order_sku a ON t.sku_id = IF(a.jx_sku_id = 0, a.sku_id, a.jx_sku_id) + LEFT JOIN goods_order b ON t.store_id = IF(b.jx_store_id = 0, b.store_id, b.jx_store_id) AND a.vendor_id = b.vendor_id AND a.vendor_order_id = b.vendor_order_id + LEFT JOIN sku c ON t.sku_id = c.id LEFT JOIN sku_name e ON e.id = c.name_id LEFT JOIN store d ON IF(b.jx_store_id = 0, b.store_id, b.jx_store_id) = d.id WHERE a.order_created_at > ? AND a.order_created_at < ? @@ -1145,15 +1146,23 @@ func GetStoresSkusSaleInfoNew(ctx *jxcontext.Context, vendorIDs, storeIDs, skuID sql += " AND (e.name LIKE ? OR d.name LIKE ? OR d.id = ? OR a.vendor_order_id = ?)" sqlParams = append(sqlParams, "%"+keyword+"%", "%"+keyword+"%", keyword, keyword) } - sql += " GROUP BY 1, 2, 3, 4, 5)t1 WHERE 1 = 1" - if saleCountBegin != 0 { - sql += " AND t1.sale_count >= ?" - sqlParams = append(sqlParams, saleCountBegin) - } - if saleCountEnd != 0 { - sql += " AND t1.sale_count <= ?" - sqlParams = append(sqlParams, saleCountEnd) + sql += " GROUP BY 1, 2, 3, 4, 5" + if saleCountBegin != 0 || saleCountEnd != 0 { + sql += " HAVING" + if saleCountBegin != 0 { + sql += " sale_count >= ?" + sqlParams = append(sqlParams, saleCountBegin) + } + if saleCountBegin != 0 && saleCountEnd != 0 { + sql += " AND" + } + if saleCountEnd != 0 { + sql += " sale_count <= ?" + sqlParams = append(sqlParams, saleCountEnd) + } } + + sql += " )t1 WHERE 1 = 1" if sortType != 0 { if sortType > 0 { sql += " ORDER BY t1.sale_count"