diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index cf8b3ca9a..cc3aa1f2b 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -136,6 +136,7 @@ func DeleteCategory(categoryID int, isForce bool, userName string) (num int64, e } func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *SkuNamesInfo, err error) { + db := dao.GetDB() sql := ` FROM sku_name t1 LEFT JOIN sku t2 ON t1.id = t2.name_id AND t2.deleted_at = '1970-01-01 00:00:00' @@ -159,8 +160,17 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize sqlParams = append(sqlParams, params["nameID"].(int)) } if params["categoryID"] != nil { - sql += " AND t1.category_id = ?" - sqlParams = append(sqlParams, params["categoryID"].(int)) + cat := &model.SkuCategory{} + cat.ID = params["categoryID"].(int) + if err = dao.GetEntity(db, cat); err != nil { + return nil, err + } + if cat.Level == 1 { + sql += " AND t1.category_id IN (SELECT id FROM sku_category WHERE parent_id = ?)" + } else { + sql += " AND t1.category_id = ?" + } + sqlParams = append(sqlParams, cat.ID) } if params["jdID"] != nil { sql += " AND t1.jd_id = ?" @@ -257,7 +267,6 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize } sqlParams = append(sqlParams, pageSize, offset) skuNamesInfo = &SkuNamesInfo{} - db := dao.GetDB() if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil { countInfo := &struct{ Ct int }{} if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {