From e6e8bcfde67f6efc806b779fe613dfd2557e36db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 11:09:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3=E5=95=86?= =?UTF-8?q?=E5=9F=8Etopskus=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 24 +++++++++++++++++++----- business/model/dao/store_sku.go | 4 ++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e8a3f5568..6af502c40 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2314,16 +2314,30 @@ func ReCalculateJxPriceLight(db *dao.DaoDB, ctx *jxcontext.Context, storeID int) return err } -func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameExt []*dao.StoreSkuNameExt, err error) { +func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameExt2 []*dao.StoreSkuNameExt, err error) { + var ( + db = dao.GetDB() + skuMap = make(map[int]*dao.StoreSkuNameExt) + ) if len(storeIDs) == 0 { - return storeSkuNameExt, err + return storeSkuNameExt2, err } - db := dao.GetDB() - storeSkuNameExt, err = dao.GetTopSkusByStoreIDs(db, storeIDs) + storeSkuNameExt, err := dao.GetTopSkusByStoreIDs(db, storeIDs) if err != nil { return nil, err } - return storeSkuNameExt, err + for _, v := range storeSkuNameExt { + if skuMap[v.SkuID] == nil { + skuMap[v.SkuID] = v + } + if skuMap[v.SkuID] != nil && v.Count != 0 { + skuMap[v.SkuID] = v + } + } + for _, v := range skuMap { + storeSkuNameExt2 = append(storeSkuNameExt2, v) + } + return storeSkuNameExt2, err } func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNameAndPlaceList []*dao.SkuNameAndPlace, err error) { diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index f5085ad80..4435ad029 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -148,6 +148,7 @@ type StoreSkuNameExt struct { PendingOpType int8 `json:"pendingOpType"` // 取值同 StoreOpRequest.Type PendingUnitPrice int `json:"pendingUnitPrice"` // 这个是待审核的价格申请 RealMidUnitPrice int `json:"realMidUnitPrice"` + Count int `json:"count"` } // GetStoreSkus用 @@ -967,7 +968,6 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSkuNameExt, err error) { sql := ` - SELECT DISTINCT t1.* FROM( SELECT t1.count, t2.id sku_id, t3.*, t1.store_id, t1.store_name FROM( SELECT SUM(b.count) count,c.id,a.store_id,d.name store_name @@ -1018,7 +1018,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk AND a.status = ? AND a.deleted_at = ? AND (d.type = ? OR d.type = ?) - ORDER BY 1 DESC) t1 + ORDER BY 1 DESC LIMIT ? ` sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue, model.ActSkuDirectDown, model.ActSkuSecKill, 30)