From 04fa4fda426d0398c77e62accc875544b4ebb6ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A7=89?= Date: Wed, 31 Jul 2024 18:44:47 +0800 Subject: [PATCH] DEBUG: WHERE --- api/graphql.go | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/api/graphql.go b/api/graphql.go index 07793b6..fbc1506 100644 --- a/api/graphql.go +++ b/api/graphql.go @@ -181,6 +181,7 @@ func NewSchema(config Config) (graphql.Schema, error) { }, }), Args: graphql.FieldConfigArgument{ + "preference": &graphql.ArgumentConfig{Type: graphql.Int, Description: "按照指定用户ID的偏好推荐图像"}, "similar": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取与指定ID图像相似的图像"}, "id": &graphql.ArgumentConfig{Type: graphql.Int, Description: "获取指定ID的图像"}, "width": &graphql.ArgumentConfig{Type: graphql.Int, Description: "筛选图像中指定宽度的"}, @@ -206,12 +207,13 @@ func NewSchema(config Config) (graphql.Schema, error) { Resolve: func(p graphql.ResolveParams) (interface{}, error) { // 定义参数结构体 var args struct { - First int - Last int - After string - Before string - Text string - Similar int + First int + Last int + After string + Before string + Text string + Similar int + Preference int } mapstructure.Decode(p.Args, &args) @@ -274,11 +276,15 @@ func NewSchema(config Config) (graphql.Schema, error) { } var id_list []string + + // 特殊处理 preference 参数 + if args.Preference != 0 { + fmt.Println("preference:", args.Preference) + } + // 特殊处理 similar 参数 if args.Similar != 0 { - fmt.Println("similar:", args.Similar) id_list := models.GetSimilarImagesIdList(args.Similar, 200) - fmt.Println("ids:", id_list) ids_str := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(id_list)), ","), "[]") if ids_str == "" { 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 ") + if where_str != "" { + where_str = "WHERE " + where_str + } + // 执行查询 var query strings.Builder - query.WriteString(fmt.Sprintf("SELECT %s FROM web_images WHERE %s", fields_str, where_str)) - fmt.Println("query:", query.String()) + query.WriteString(fmt.Sprintf("SELECT %s FROM web_images %s", fields_str, where_str)) + log.Println("query:", query.String()) var images ImageList if err := connection.Select(&images, query.String()); err != nil {