From 19a34d0274cdfd9f7476bcff96906fe71d6222a0 Mon Sep 17 00:00:00 2001 From: mubai <1609539827@qq.com> Date: Sun, 15 Dec 2024 22:40:59 +0800 Subject: [PATCH] Fix Relate Film --- film/server/logic/IndexLogic.go | 1 + film/server/model/system/Search.go | 6 +++--- server/logic/IndexLogic.go | 1 + server/model/system/Search.go | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/film/server/logic/IndexLogic.go b/film/server/logic/IndexLogic.go index fcd749c..aa5802b 100644 --- a/film/server/logic/IndexLogic.go +++ b/film/server/logic/IndexLogic.go @@ -102,6 +102,7 @@ func (i *IndexLogic) GetCategoryInfo() gin.H { return nav } +// GetNavCategory 获取导航分类信息 func (i *IndexLogic) GetNavCategory() []*system.Category { // 1.获取所有分类信息 tree := system.GetCategoryTree() diff --git a/film/server/model/system/Search.go b/film/server/model/system/Search.go index 8056193..50f7532 100644 --- a/film/server/model/system/Search.go +++ b/film/server/model/system/Search.go @@ -485,9 +485,9 @@ func GetRelateMovieBasicInfo(search SearchInfo, page *Page) []MovieBasicInfo { // 如果处理后的影片名称依旧没有改变 且具有一定长度 则截取部分内容作为搜索条件 if len(name) == len(search.Name) && len(name) > 10 { // 中文字符需截取3的倍数,否则可能乱码 - name = name[:int(math.Ceil(float64(len(name)/5))*3)] + name = name[:int(math.Ceil(float64(len(name))/5)*3)] } - sql = fmt.Sprintf(`select * from %s where (name LIKE "%%%s%%" or sub_title LIKE "%%%[2]s%%") AND cid=%d union`, search.TableName(), name, search.Cid) + sql = fmt.Sprintf(`select * from %s where (name LIKE "%%%s%%" or sub_title LIKE "%%%[2]s%%") AND cid=%d AND search.deleted_at IS NULL union`, search.TableName(), name, search.Cid) // 执行后续匹配内容, 匹配结果过少,减少过滤条件 //sql = fmt.Sprintf(`%s select * from %s where cid=%d AND area="%s" AND language="%s" AND`, sql, search.TableName(), search.Cid, search.Area, search.Language) @@ -514,7 +514,7 @@ func GetRelateMovieBasicInfo(search SearchInfo, page *Page) []MovieBasicInfo { } // 除名称外的相似影片使用随机排序 //sql = fmt.Sprintf("%s ORDER BY RAND() limit %d,%d)", sql, page.Current, page.PageSize) - sql = fmt.Sprintf("%s limit %d,%d)", sql, page.Current, page.PageSize) + sql = fmt.Sprintf("%s AND search.deleted_at IS NULL limit %d,%d)", sql, page.Current, page.PageSize) // 条件拼接完成后加上limit参数 sql = fmt.Sprintf("(%s) limit %d,%d", sql, page.Current, page.PageSize) // 执行sql diff --git a/server/logic/IndexLogic.go b/server/logic/IndexLogic.go index fcd749c..aa5802b 100644 --- a/server/logic/IndexLogic.go +++ b/server/logic/IndexLogic.go @@ -102,6 +102,7 @@ func (i *IndexLogic) GetCategoryInfo() gin.H { return nav } +// GetNavCategory 获取导航分类信息 func (i *IndexLogic) GetNavCategory() []*system.Category { // 1.获取所有分类信息 tree := system.GetCategoryTree() diff --git a/server/model/system/Search.go b/server/model/system/Search.go index 8056193..50f7532 100644 --- a/server/model/system/Search.go +++ b/server/model/system/Search.go @@ -485,9 +485,9 @@ func GetRelateMovieBasicInfo(search SearchInfo, page *Page) []MovieBasicInfo { // 如果处理后的影片名称依旧没有改变 且具有一定长度 则截取部分内容作为搜索条件 if len(name) == len(search.Name) && len(name) > 10 { // 中文字符需截取3的倍数,否则可能乱码 - name = name[:int(math.Ceil(float64(len(name)/5))*3)] + name = name[:int(math.Ceil(float64(len(name))/5)*3)] } - sql = fmt.Sprintf(`select * from %s where (name LIKE "%%%s%%" or sub_title LIKE "%%%[2]s%%") AND cid=%d union`, search.TableName(), name, search.Cid) + sql = fmt.Sprintf(`select * from %s where (name LIKE "%%%s%%" or sub_title LIKE "%%%[2]s%%") AND cid=%d AND search.deleted_at IS NULL union`, search.TableName(), name, search.Cid) // 执行后续匹配内容, 匹配结果过少,减少过滤条件 //sql = fmt.Sprintf(`%s select * from %s where cid=%d AND area="%s" AND language="%s" AND`, sql, search.TableName(), search.Cid, search.Area, search.Language) @@ -514,7 +514,7 @@ func GetRelateMovieBasicInfo(search SearchInfo, page *Page) []MovieBasicInfo { } // 除名称外的相似影片使用随机排序 //sql = fmt.Sprintf("%s ORDER BY RAND() limit %d,%d)", sql, page.Current, page.PageSize) - sql = fmt.Sprintf("%s limit %d,%d)", sql, page.Current, page.PageSize) + sql = fmt.Sprintf("%s AND search.deleted_at IS NULL limit %d,%d)", sql, page.Current, page.PageSize) // 条件拼接完成后加上limit参数 sql = fmt.Sprintf("(%s) limit %d,%d", sql, page.Current, page.PageSize) // 执行sql