count
This commit is contained in:
@@ -222,6 +222,21 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
return fields
|
||||
}
|
||||
|
||||
orderType := graphql.NewEnum(graphql.EnumConfig{
|
||||
Name: "OrderType",
|
||||
Description: "排序类型",
|
||||
Values: graphql.EnumValueConfigMap{
|
||||
"ASC": &graphql.EnumValueConfig{
|
||||
Value: "ASC",
|
||||
Description: "升序",
|
||||
},
|
||||
"DESC": &graphql.EnumValueConfig{
|
||||
Value: "DESC",
|
||||
Description: "降序",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
schema, err := graphql.NewSchema(graphql.SchemaConfig{Query: graphql.NewObject(graphql.ObjectConfig{Name: "RootQuery", Fields: graphql.Fields{
|
||||
"categorys": &graphql.Field{
|
||||
Name: "categorys",
|
||||
@@ -353,6 +368,8 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
},
|
||||
}),
|
||||
Args: graphql.FieldConfigArgument{
|
||||
"sort": &graphql.ArgumentConfig{Type: graphql.String, Description: "排序方法"},
|
||||
"order": &graphql.ArgumentConfig{Type: orderType, Description: "排序方向", DefaultValue: "ASC"},
|
||||
"orientation": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选横屏竖屏图像"},
|
||||
"follower": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取指定ID用户的关注列表发布的图像"},
|
||||
"interest": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取指定ID用户的兴趣推荐图像"},
|
||||
@@ -390,6 +407,8 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
Similar int
|
||||
Follower int
|
||||
Orientation string
|
||||
Sort string
|
||||
Order string
|
||||
}
|
||||
mapstructure.Decode(p.Args, &args)
|
||||
|
||||
@@ -411,7 +430,7 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
// 筛选条件
|
||||
for _, format := range argFormat {
|
||||
if p.Args[format] != nil {
|
||||
query = query.Where(fmt.Sprintf(format, " = ?"), p.Args[format])
|
||||
query = query.Where(fmt.Sprintf("%s = ?", format), p.Args[format])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,6 +541,11 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
|
||||
total = len(list)
|
||||
|
||||
var count int64
|
||||
if len(list) > 0 {
|
||||
query = query.Count(&count)
|
||||
}
|
||||
|
||||
// 截取: 分页
|
||||
if args.After != 0 {
|
||||
index := -1
|
||||
@@ -575,12 +599,21 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
query = query.Preload(item)
|
||||
}
|
||||
|
||||
// 排序规则
|
||||
if args.Sort != "" && args.Order != "" {
|
||||
query = query.Order(fmt.Sprintf("%s %s", args.Sort, args.Order))
|
||||
}
|
||||
|
||||
// 输出(游戏截图分类ID为22)
|
||||
if err := query.Where("article_category_top_id = 22").Find(&images).Error; err != nil {
|
||||
fmt.Println("获取图像列表失败", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if total == 0 && count > 0 {
|
||||
total = int(count)
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
"list": images,
|
||||
"total": total,
|
||||
|
Reference in New Issue
Block a user