diff --git a/api/graphql.go b/api/graphql.go index ecd92e9..bc11221 100644 --- a/api/graphql.go +++ b/api/graphql.go @@ -1049,6 +1049,9 @@ func NewSchema(config Config) (graphql.Schema, error) { goqu.I("web_praise.user_id").Eq(p.Args["praise"]), goqu.I("web_praise.type").Eq(4), )) + //.Select("web_images.id", goqu.L( + // fmt.Sprintf("ROW_NUMBER() OVER(ORDER BY %s %s)", "web_praise.create_time", "DESC"), + //).As("row_num")) } var collect_params []goqu.Expression = []goqu.Expression{ @@ -1205,7 +1208,7 @@ func NewSchema(config Config) (graphql.Schema, error) { } // 如果没有外部排序则使用指定排序(正则sort只能是字母数字下划下) - if p.Args["text"] == nil && p.Args["similar"] == nil && p.Args["interest"] == nil { + if p.Args["text"] == nil && p.Args["similar"] == nil && p.Args["interest"] == nil && p.Args["praise"] == nil { sort := regexp.MustCompile(`[^a-zA-Z0-9_]`).ReplaceAllString(p.Args["sort"].(string), "") order := regexp.MustCompile(`[^a-zA-Z0-9_]`).ReplaceAllString(p.Args["order"].(string), "") query = query.Select("web_images.id", goqu.L( @@ -1213,6 +1216,13 @@ func NewSchema(config Config) (graphql.Schema, error) { ).As("row_num")) } + // 图像按点赞顺序排序 + if p.Args["praise"] != nil { + query = query.Select("web_images.id", goqu.L( + fmt.Sprintf("ROW_NUMBER() OVER(ORDER BY web_images.%s %s)", "create_time", "DESC"), + ).As("row_num")) + } + // 取所有数据的前N条 sql, _, _ := query.Where(goqu.Ex{"article_category_top_id": 22}).ToSQL() fmt.Println(sql)