合并join
This commit is contained in:
@@ -704,42 +704,33 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
|||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var collect_params []goqu.Expression = []goqu.Expression{
|
||||||
|
goqu.I("web_images.id").Eq(goqu.I("web_collect.image_id")),
|
||||||
|
}
|
||||||
|
|
||||||
// 数据库中筛选:用户收藏的截图
|
// 数据库中筛选:用户收藏的截图
|
||||||
if p.Args["collect"] != nil {
|
if p.Args["collect"] != nil {
|
||||||
query = query.Join(goqu.T("web_collect"), goqu.On(
|
collect_params = append(collect_params, goqu.I("web_collect.user_id").Eq(p.Args["collect"]))
|
||||||
goqu.I("web_images.id").Eq(goqu.I("web_collect.image_id")),
|
|
||||||
goqu.I("web_collect.user_id").Eq(p.Args["collect"]),
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 数据库中筛选:收藏夹中的截图
|
// 数据库中筛选:收藏夹中的截图
|
||||||
if p.Args["collect_id"] != nil {
|
if p.Args["collect_id"] != nil {
|
||||||
query = query.Join(goqu.T("web_collect"), goqu.On(
|
collect_params = append(collect_params, goqu.I("web_collect.collect_id").Eq(p.Args["collect_id"]))
|
||||||
goqu.I("web_images.id").Eq(goqu.I("web_collect.image_id")),
|
|
||||||
goqu.I("web_collect.collect_id").Eq(p.Args["collect_id"]),
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 数据库中筛选:收藏夹中的截图
|
// 数据库中筛选:收藏夹中的截图
|
||||||
if p.Args["explorer_id"] != nil {
|
if p.Args["explorer_id"] != nil {
|
||||||
query = query.Join(goqu.T("web_collect"), goqu.On(
|
collect_params = append(collect_params, goqu.I("web_collect.explorer_id").Eq(p.Args["explorer_id"]))
|
||||||
goqu.I("web_images.id").Eq(goqu.I("web_collect.image_id")),
|
}
|
||||||
goqu.I("web_collect.explorer_id").Eq(p.Args["explorer_id"]),
|
|
||||||
))
|
if len(collect_params) > 1 {
|
||||||
|
query = query.Join(goqu.T("web_collect"), goqu.On(collect_params...))
|
||||||
}
|
}
|
||||||
|
|
||||||
var conditions []goqu.Expression = []goqu.Expression{
|
var conditions []goqu.Expression = []goqu.Expression{
|
||||||
goqu.I("web_images.article_id").Eq(goqu.I("web_article.id")),
|
goqu.I("web_images.article_id").Eq(goqu.I("web_article.id")),
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按游戏标签筛选图像
|
|
||||||
if p.Args["article_tags"] != nil {
|
|
||||||
tags := strings.Split(strings.ReplaceAll(p.Args["article_tags"].(string), " ", ""), ", ")
|
|
||||||
for _, tag := range tags {
|
|
||||||
conditions = append(conditions, goqu.L("MATCH(web_article.tags) AGAINST (? IN NATURAL LANGUAGE MODE)", tag))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 按游戏风格筛选图像
|
// 按游戏风格筛选图像
|
||||||
if p.Args["style"] != nil {
|
if p.Args["style"] != nil {
|
||||||
conditions = append(conditions, goqu.I("web_article.style").Eq(p.Args["style"]))
|
conditions = append(conditions, goqu.I("web_article.style").Eq(p.Args["style"]))
|
||||||
@@ -766,6 +757,14 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
|||||||
conditions = append(conditions, goqu.I("web_article.category_id").In(category_ids))
|
conditions = append(conditions, goqu.I("web_article.category_id").In(category_ids))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 按游戏标签筛选图像
|
||||||
|
if p.Args["article_tags"] != nil {
|
||||||
|
tags := strings.Split(strings.ReplaceAll(p.Args["article_tags"].(string), " ", ""), ", ")
|
||||||
|
for _, tag := range tags {
|
||||||
|
conditions = append(conditions, goqu.L("MATCH(web_article.tags) AGAINST (? IN NATURAL LANGUAGE MODE)", tag))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if len(conditions) > 1 {
|
if len(conditions) > 1 {
|
||||||
query = query.Join(goqu.T("web_article"), goqu.On(conditions...))
|
query = query.Join(goqu.T("web_article"), goqu.On(conditions...))
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user