From f5166d59b62903af4131cf7ad3480bf5efd27dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Dec 2019 11:47:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=88=86=E7=B1=BB=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 32 +++++++++++++++++++++++++------ business/model/dao/store_sku.go | 4 ++-- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e075409e9..126662b55 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2140,18 +2140,38 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE } func GetTopCategorysByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCategory []*model.SkuCategory, err error) { - var skuCategory2 []*model.SkuCategory + var ( + skuCategory2 []*model.SkuCategory + skuCategoryMap = make(map[int]*model.SkuCategory) + limit = 10 + ) if len(storeIDs) == 0 { return skuCategory, err } db := dao.GetDB() - skuCategory, err = dao.GetTopCategorysByStoreIDs(db, storeIDs) - if len(skuCategory) < 10 { - j := 10 - len(skuCategory) + skuCategory, err = dao.GetTopCategorysByStoreIDs(db, storeIDs, limit) + //若大于等于10个就不用做下面的操作 + if len(skuCategory) >= limit { + return skuCategory, err + } + if len(skuCategory) > 0 { + for _, v := range skuCategory { + skuCategoryMap[v.ID] = v + } + } + //推荐分类,若不满10个,则填满10个 + if (len(skuCategory) < limit && len(skuCategory) > 0) || len(skuCategory) == 0 { skuCategory2, err = dao.GetCategories(db, -1, 1, nil) if len(skuCategory2) > 0 { - for i := 0; i < j; i++ { - skuCategory = append(skuCategory, skuCategory2[i]) + for _, v := range skuCategory2 { + if skuCategoryMap[v.ID] == nil { + if !strings.Contains(v.Name, "赠品") { + skuCategory = append(skuCategory, v) + } + } + if len(skuCategory) >= limit { + break + } } } } diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index fa160da6b..1eab9015a 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -984,7 +984,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk return storeSkuNameExt, err } -func GetTopCategorysByStoreIDs(db *DaoDB, storeIDs []int) (skuCategory []*model.SkuCategory, err error) { +func GetTopCategorysByStoreIDs(db *DaoDB, storeIDs []int, limit int) (skuCategory []*model.SkuCategory, err error) { sql := ` SELECT DISTINCT t5.* FROM( SELECT d.* @@ -1023,7 +1023,7 @@ func GetTopCategorysByStoreIDs(db *DaoDB, storeIDs []int) (skuCategory []*model. Order by t4.count DESC)t5 LIMIT ? ` - sqlParams = append(sqlParams, time.Now().AddDate(0, -1, 0), 100, 2, utils.DefaultTimeValue, 1, 10) + sqlParams = append(sqlParams, time.Now().AddDate(0, -1, 0), 100, 2, utils.DefaultTimeValue, 1, limit) err = GetRows(db, &skuCategory, sql, sqlParams...) return skuCategory, err }