排序条件
This commit is contained in:
@@ -526,11 +526,20 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
},
|
||||
}),
|
||||
Args: graphql.FieldConfigArgument{
|
||||
"style": &graphql.ArgumentConfig{Type: graphql.String, Description: "按风格筛选游戏"},
|
||||
"device": &graphql.ArgumentConfig{Type: graphql.String, Description: "按平台筛选游戏"},
|
||||
"orientation": &graphql.ArgumentConfig{Type: graphql.String, Description: "按屏幕方向筛选游戏"},
|
||||
"era": &graphql.ArgumentConfig{Type: graphql.String, Description: "按年份筛选游戏"},
|
||||
"category_id": &graphql.ArgumentConfig{Type: graphql.Int, Description: "按分类ID筛选游戏"},
|
||||
"tags": &graphql.ArgumentConfig{Type: graphql.String, Description: "按标签筛选游戏"},
|
||||
"user_id": &graphql.ArgumentConfig{Type: graphql.Int, Description: "按用户ID筛选游戏"},
|
||||
"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: "筛选游戏中更新时间等于指定值的"},
|
||||
"rank": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选游戏中含有指定排名的"},
|
||||
"create_time": &graphql.ArgumentConfig{Type: graphql.DateTime, Description: "按创建时间筛选游戏"},
|
||||
"update_time": &graphql.ArgumentConfig{Type: graphql.DateTime, Description: "按修改时间筛选游戏"},
|
||||
"sort": &graphql.ArgumentConfig{Type: graphql.String, Description: "按指定字段排序游戏"},
|
||||
"order": &graphql.ArgumentConfig{Type: orderType, Description: "排序类型(升序或降序)", DefaultValue: "ASC"},
|
||||
"first": &graphql.ArgumentConfig{Type: graphql.Int, Description: "翻页参数(傳回清單中的前n個元素)"},
|
||||
"last": &graphql.ArgumentConfig{Type: graphql.Int, Description: "翻页参数(傳回清單中的最後n個元素)"},
|
||||
"after": &graphql.ArgumentConfig{Type: graphql.String, Description: "翻页参数(傳回清單中指定遊標之後的元素)"},
|
||||
@@ -541,23 +550,30 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
var total int
|
||||
var err error
|
||||
|
||||
// 获取筛选条件
|
||||
var arg struct {
|
||||
ID int
|
||||
Title string
|
||||
Era string
|
||||
First int
|
||||
Last int
|
||||
After string
|
||||
Before string
|
||||
var query = goqu.Dialect("mysql").From("web_article")
|
||||
|
||||
// 筛选条件
|
||||
for _, format := range []string{"id", "style", "device", "orientation", "era", "category_id", "tags"} {
|
||||
if p.Args[format] != nil {
|
||||
query = query.Where(goqu.C(format).Eq(p.Args[format]))
|
||||
}
|
||||
}
|
||||
|
||||
// 排序条件
|
||||
if p.Args["sort"] != nil {
|
||||
if p.Args["order"].(string) == "ASC" {
|
||||
query = query.Order(goqu.C(p.Args["sort"].(string)).Asc())
|
||||
}
|
||||
if p.Args["order"].(string) == "DESC" {
|
||||
query = query.Order(goqu.C(p.Args["sort"].(string)).Desc())
|
||||
}
|
||||
}
|
||||
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 p.Args["first"] != nil {
|
||||
limit = p.Args["first"].(int)
|
||||
} else if p.Args["last"] != nil {
|
||||
limit = p.Args["last"].(int)
|
||||
}
|
||||
|
||||
if err := db.Limit(limit).Where("category_top_id = 22").Find(&games).Error; err != nil {
|
||||
@@ -610,7 +626,7 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
||||
"content": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中含有指定内容的"},
|
||||
"remark": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中含有指定备注的"},
|
||||
"description": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中含有指定描述的"},
|
||||
"rank": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中含有指定等级的"},
|
||||
"rank": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中含有指定排名的"},
|
||||
"text": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中含有指定文字的"},
|
||||
"create_time": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中创建时间等于指定值的"},
|
||||
"update_time": &graphql.ArgumentConfig{Type: graphql.String, Description: "筛选图像中更新时间等于指定值的"},
|
||||
|
Reference in New Issue
Block a user