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)