diff --git a/api/gorse.go b/api/gorse.go index 5cee3d6..9d5c26c 100644 --- a/api/gorse.go +++ b/api/gorse.go @@ -92,14 +92,13 @@ func PutPraises(page int) error { // 获取推荐ID func GetRecommend(user_id int, category string) ([]int, error) { var ctx context.Context = context.Background() + var ids []int data, err := gorse.GetItemLatestWithCategory(ctx, fmt.Sprintf("%d", user_id), category, 100, 0) if err != nil { fmt.Println("获取推荐失败", err) - return nil, err + return ids, err } - - var ids []int for _, item := range data { id, _ := strconv.Atoi(item.Id) ids = append(ids, id) diff --git a/api/graphql.go b/api/graphql.go index a61d73a..b53440d 100644 --- a/api/graphql.go +++ b/api/graphql.go @@ -635,16 +635,17 @@ func NewSchema(config Config) (graphql.Schema, error) { // 筛选:兴趣推荐 if p.Args["interest"] != nil { + fmt.Println("interest:", p.Args["interest"]) user_id := p.Args["interest"].(int) list, err := GetRecommend(user_id, "image") if err != nil { fmt.Println("GetRecommend 获取兴趣推荐失败", err) - return nil, err + return map[string]interface{}{"list": []Image{}, "total": 0}, nil } - fmt.Println("Interest:", user_id, list) if len(list) == 0 { return map[string]interface{}{"list": []Image{}, "total": 0}, nil } + fmt.Println("Interest:", user_id, list) query = query.Where(goqu.Ex{"web_images.id": goqu.Op{"in": list}}).Select("web_images.id", goqu.L( fmt.Sprintf("ROW_NUMBER() OVER(ORDER BY FIELD(%s, %s))", "web_images.id", regexp.MustCompile(`[\[\]]`).ReplaceAllString(strings.Join(strings.Fields(fmt.Sprint(list)), ", "), "")), ).As("row_num"))