DEBUG: WHERE

This commit is contained in:
2024-07-31 18:44:47 +08:00
parent d2b6c3a0a0
commit 04fa4fda42

View File

@@ -181,6 +181,7 @@ func NewSchema(config Config) (graphql.Schema, error) {
}, },
}), }),
Args: graphql.FieldConfigArgument{ Args: graphql.FieldConfigArgument{
"preference": &graphql.ArgumentConfig{Type: graphql.Int, Description: "按照指定用户ID的偏好推荐图像"},
"similar": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取与指定ID图像相似的图像"}, "similar": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取与指定ID图像相似的图像"},
"id": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取指定ID的图像"}, "id": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取指定ID的图像"},
"width": &graphql.ArgumentConfig{Type: graphql.Int, Description: "筛选图像中指定宽度的"}, "width": &graphql.ArgumentConfig{Type: graphql.Int, Description: "筛选图像中指定宽度的"},
@@ -212,6 +213,7 @@ func NewSchema(config Config) (graphql.Schema, error) {
Before string Before string
Text string Text string
Similar int Similar int
Preference int
} }
mapstructure.Decode(p.Args, &args) mapstructure.Decode(p.Args, &args)
@@ -274,11 +276,15 @@ func NewSchema(config Config) (graphql.Schema, error) {
} }
var id_list []string var id_list []string
// 特殊处理 preference 参数
if args.Preference != 0 {
fmt.Println("preference:", args.Preference)
}
// 特殊处理 similar 参数 // 特殊处理 similar 参数
if args.Similar != 0 { if args.Similar != 0 {
fmt.Println("similar:", args.Similar)
id_list := models.GetSimilarImagesIdList(args.Similar, 200) id_list := models.GetSimilarImagesIdList(args.Similar, 200)
fmt.Println("ids:", id_list)
ids_str := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(id_list)), ","), "[]") ids_str := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(id_list)), ","), "[]")
if ids_str == "" { if ids_str == "" {
return map[string]interface{}{"list": []Image{}, "total": 0}, nil return map[string]interface{}{"list": []Image{}, "total": 0}, nil
@@ -321,10 +327,14 @@ func NewSchema(config Config) (graphql.Schema, error) {
where_str := strings.Join(where, " AND ") where_str := strings.Join(where, " AND ")
if where_str != "" {
where_str = "WHERE " + where_str
}
// 执行查询 // 执行查询
var query strings.Builder var query strings.Builder
query.WriteString(fmt.Sprintf("SELECT %s FROM web_images WHERE %s", fields_str, where_str)) query.WriteString(fmt.Sprintf("SELECT %s FROM web_images %s", fields_str, where_str))
fmt.Println("query:", query.String()) log.Println("query:", query.String())
var images ImageList var images ImageList
if err := connection.Select(&images, query.String()); err != nil { if err := connection.Select(&images, query.String()); err != nil {