diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 14fcdcb9b..85152f771 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2161,16 +2161,16 @@ func ReCalculateJxPrice(ctx *jxcontext.Context, storeIDs []int) (err error) { return err } -func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuAndName []*model.SkuAndName, err error) { +func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuAndNameExt []*dao.SkuAndNameExt, err error) { if len(storeIDs) == 0 { - return skuAndName, err + return skuAndNameExt, err } db := dao.GetDB() - skuAndName, err = dao.GetTopSkusByStoreIDs(db, storeIDs) + skuAndNameExt, err = dao.GetTopSkusByStoreIDs(db, storeIDs) if err != nil { return nil, err } - return skuAndName, err + return skuAndNameExt, err } func GetTopCategorysByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCategory []*model.SkuCategory, err error) { diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 861691882..ffa954039 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -109,6 +109,11 @@ type StoreSkuNameInfo struct { UnitPrice int64 } +type SkuAndNameExt struct { + model.SkuName + Skus []*model.Sku `orm:"-" json:"skus,omitempty"` +} + // todo 应该通过需要同步的skuid来驱动同步分类,而不是当前这种分开的逻辑 // 单门店模式厂商适用 // 从store_sku_bind中,得到所有依赖的商家分类信息 @@ -660,7 +665,7 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St return skuList, err } -func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAndName, err error) { +func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndNameExt []*SkuAndNameExt, err error) { sql := ` SELECT t3.* FROM( @@ -689,8 +694,21 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAnd LIMIT ? ` sqlParams = append(sqlParams, 100, 30) - err = GetRows(db, &skuAndName, sql, sqlParams...) - return skuAndName, err + err = GetRows(db, &skuAndNameExt, sql, sqlParams...) + for _, v := range skuAndNameExt { + var skus []*model.Sku + sql2 := ` + SELECT * + FROM sku + WHERE name_id = ? + ` + sqlParams2 := []interface{}{ + v.ID, + } + err = GetRows(db, &skus, sql2, sqlParams2...) + v.Skus = skus + } + return skuAndNameExt, err } func GetTopCategorysByStoreIDs(db *DaoDB, storeIDs []int) (skuCategory []*model.SkuCategory, err error) {