games
This commit is contained in:
@@ -349,6 +349,18 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
},
|
||||
})
|
||||
|
||||
game := graphql.NewObject(graphql.ObjectConfig{
|
||||
Name: "Game",
|
||||
Description: "游戏",
|
||||
Fields: graphql.Fields{
|
||||
"id": &graphql.Field{Type: graphql.Int, Description: "游戏ID"},
|
||||
"title": &graphql.Field{Type: graphql.String, Description: "游戏标题"},
|
||||
"era": &graphql.Field{Type: graphql.String, Description: "游戏上线年份"},
|
||||
"create_time": &graphql.Field{Type: graphql.DateTime, Description: "游戏创建时间"},
|
||||
"update_time": &graphql.Field{Type: graphql.DateTime, Description: "游戏更新时间"},
|
||||
},
|
||||
})
|
||||
|
||||
image.AddFieldConfig("user", &graphql.Field{Type: user, Description: "图像所属用户"})
|
||||
image.AddFieldConfig("similars", &graphql.Field{Type: graphql.NewList(image), Description: "相似的图像", Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
return []Image{}, nil
|
||||
@@ -502,6 +514,62 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
}, nil
|
||||
},
|
||||
},
|
||||
"games": &graphql.Field{
|
||||
Name: "games",
|
||||
Description: "游戏列表",
|
||||
Type: graphql.NewObject(graphql.ObjectConfig{
|
||||
Name: "GameConnection",
|
||||
Description: "条件筛选游戏列表",
|
||||
Fields: graphql.Fields{
|
||||
"list": &graphql.Field{Type: graphql.NewList(game), Description: "游戏列表"},
|
||||
//"total": &graphql.Field{Type: graphql.Int, Description: "游戏总数"},
|
||||
},
|
||||
}),
|
||||
Args: graphql.FieldConfigArgument{
|
||||
"id": &graphql.ArgumentConfig{Type: graphql.Int, Description: "筛选游戏中指定ID的"},
|
||||
"title": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选游戏中含有指定标题的"},
|
||||
"era": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选游戏中含有指定年份的"},
|
||||
"create_time": &graphql.ArgumentConfig{Type: graphql.DateTime, Description: "筛选游戏中创建时间等于指定值的"},
|
||||
"update_time": &graphql.ArgumentConfig{Type: graphql.DateTime, Description: "筛选游戏中更新时间等于指定值的"},
|
||||
"first": &graphql.ArgumentConfig{Type: graphql.Int, Description: "翻页参数(傳回清單中的前n個元素)"},
|
||||
"last": &graphql.ArgumentConfig{Type: graphql.Int, Description: "翻页参数(傳回清單中的最後n個元素)"},
|
||||
"after": &graphql.ArgumentConfig{Type: graphql.String, Description: "翻页参数(傳回清單中指定遊標之後的元素)"},
|
||||
"before": &graphql.ArgumentConfig{Type: graphql.String, Description: "翻页参数(傳回清單中指定遊標之前的元素)"},
|
||||
},
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
var games []Game
|
||||
var total int
|
||||
var err error
|
||||
|
||||
// 获取筛选条件
|
||||
var arg struct {
|
||||
ID int
|
||||
Title string
|
||||
Era string
|
||||
First int
|
||||
Last int
|
||||
After string
|
||||
Before string
|
||||
}
|
||||
mapstructure.Decode(p.Args, &arg)
|
||||
|
||||
var limit int = 10
|
||||
if arg.First != 0 {
|
||||
limit = arg.First
|
||||
} else if arg.Last != 0 {
|
||||
limit = arg.Last
|
||||
}
|
||||
|
||||
if err := db.Limit(limit).Where("category_top_id = 22").Find(&games).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
"list": games,
|
||||
"total": total,
|
||||
}, err
|
||||
},
|
||||
},
|
||||
"images": &graphql.Field{
|
||||
Name: "images",
|
||||
Description: "图像列表",
|
||||
@@ -792,11 +860,6 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
goqu.I("web_images.user_id").Eq(goqu.I("web_fans.blogger_id")),
|
||||
goqu.I("web_fans.follower_id").Eq(p.Args["follower"]),
|
||||
))
|
||||
//query = query.Join(
|
||||
// goqu.Dialect("mysql").From("web_fans").Select("web_fans.blogger_id").Where(goqu.Ex{"web_fans.follower_id": p.Args["follower"]}),
|
||||
// goqu.On(goqu.I("web_images.user_id").Eq(goqu.I("web_fans.blogger_id"))),
|
||||
//)
|
||||
//query = query.Where(goqu.L("EXISTS (SELECT 1 FROM web_fans WHERE web_fans.blogger_id = web_images.user_id AND web_fans.follower_id = ?)", p.Args["follower"]))
|
||||
}
|
||||
|
||||
// 数据库中筛选: 按图像主色调颜色筛选
|
||||
@@ -919,7 +982,6 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
|
||||
var find = db.Where("web_images.id IN ?", ids)
|
||||
for _, item := range LoadItem(p.Info.FieldASTs[0].SelectionSet.Selections) {
|
||||
//fmt.Println(index, item)
|
||||
find = find.Preload(item)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user