text_list

This commit is contained in:
2024-12-06 13:14:42 +08:00
parent cabe9dc94e
commit 21a8560460

View File

@@ -29,6 +29,7 @@ type Game struct {
PraiseCount int `json:"praise_count" gorm:"column:praise"` PraiseCount int `json:"praise_count" gorm:"column:praise"`
CommentCount int `json:"comment_count" gorm:"column:comment_num"` CommentCount int `json:"comment_count" gorm:"column:comment_num"`
TextCount int `json:"text_count" gorm:"column:text_count"` TextCount int `json:"text_count" gorm:"column:text_count"`
TextList []string `json:"text_list" gorm:"-"`
CreateTime time.Time `json:"create_time"` CreateTime time.Time `json:"create_time"`
UpdateTime time.Time `json:"update_time"` UpdateTime time.Time `json:"update_time"`
} }
@@ -51,6 +52,7 @@ var gameType = graphql.NewObject(graphql.ObjectConfig{
"praise_count": &graphql.Field{Type: graphql.Int, Description: "点赞数"}, "praise_count": &graphql.Field{Type: graphql.Int, Description: "点赞数"},
"collect_count": &graphql.Field{Type: graphql.Int, Description: "收藏数"}, "collect_count": &graphql.Field{Type: graphql.Int, Description: "收藏数"},
"text_count": &graphql.Field{Type: graphql.Int, Description: "文字数量"}, "text_count": &graphql.Field{Type: graphql.Int, Description: "文字数量"},
"text_list": &graphql.Field{Type: graphql.NewList(graphql.String), Description: "文字列表"},
}, },
}) })
@@ -175,9 +177,6 @@ var GameItems = &graphql.Field{
collect = ",CASE WHEN web_collect.id IS NOT NULL THEN TRUE ELSE FALSE END AS is_collect" collect = ",CASE WHEN web_collect.id IS NOT NULL THEN TRUE ELSE FALSE END AS is_collect"
collect_join = fmt.Sprintf("LEFT JOIN web_collect ON web_collect.collect_id = web_article.id AND web_collect.user_id = %d AND web_collect.type = 0", user_id) collect_join = fmt.Sprintf("LEFT JOIN web_collect ON web_collect.collect_id = web_article.id AND web_collect.user_id = %d AND web_collect.type = 0", user_id)
} }
if funk.Contains(fields, "text_count") {
text_count = ",(SELECT COUNT(*) FROM web_images wi WHERE wi.article_id = web_article.id AND wi.text != '') AS text_count"
}
sql = fmt.Sprintf(` sql = fmt.Sprintf(`
WITH RankedArticles AS (%s) WITH RankedArticles AS (%s)
@@ -194,6 +193,24 @@ var GameItems = &graphql.Field{
return nil, err return nil, err
} }
if funk.Contains(fields, "text_list") || funk.Contains(fields, "text_count") {
fmt.Println("获取游戏文字列表")
for index, item := range games {
var images []Image
if err := db.Table("web_images").Where("article_id", item.ID).Find(&images).Error; err != nil {
fmt.Println("获取游戏图片列表失败", err)
return nil, err
}
for _, image := range images {
for _, text := range image.Text {
item.TextList = append(item.TextList, text.Text)
}
}
games[index].TextList = funk.UniqString(item.TextList)
games[index].TextCount = len(item.TextList)
}
}
return map[string]interface{}{ return map[string]interface{}{
"list": games, "list": games,
"total": total, "total": total,