This commit is contained in:
2024-09-04 16:12:18 +08:00
parent 8838b12415
commit c429bb03b1
4 changed files with 64 additions and 28 deletions
+26 -7
View File
@@ -139,14 +139,33 @@ func (r *ArticleDao) GetArticlePageSearch(req requests.GetArticlePage, page, pag
// 作者关联医院
query = query.Preload("ArticleAuthor.BaseHospital")
// 文章标题
if req.ArticleTitle != "" {
query = query.Where("article_title LIKE ?", "%"+req.ArticleTitle+"%")
}
// 搜索关键字
if req.Keyword != "" {
keyword := "%" + req.Keyword + "%" //
// 文章内容
if req.ArticleContent != "" {
query = query.Where("article_content LIKE ?", "%"+req.ArticleContent+"%")
// 标题
orQuery := global.Db.Model(&model.Article{}).Or("article_title LIKE ?", keyword)
// 医院名称
hospitalSubQuery := global.Db.Model(&model.BaseHospital{}).
Select("hospital_id").
Where("hospital_name LIKE ?", keyword)
articleAuthorSubQuery := global.Db.Model(&model.ArticleAuthor{}).
Select("article_id").
Where(gorm.Expr("hospital_id IN (?)", hospitalSubQuery))
orQuery = orQuery.Or(gorm.Expr("article_id IN (?)", articleAuthorSubQuery))
// 作者姓名
subQuery := global.Db.Model(&model.ArticleAuthor{}).
Select("article_id").
Where("author_name LIKE ?", keyword)
orQuery = orQuery.Or(gorm.Expr("article_id IN (?)", subQuery))
// 执行组建
query = query.Where(orQuery)
}
// 文章状态
+27 -8
View File
@@ -139,19 +139,38 @@ func (r *VideoDao) GetVideoPageSearch(req requests.GetVideoPage, page, pageSize
// 作者关联医院
query = query.Preload("VideoAuthor.BaseHospital")
// 文章标题
if req.VideoTitle != "" {
query = query.Where("video_title LIKE ?", "%"+req.VideoTitle+"%")
}
// 视频编号
if req.VideoNo != "" {
query = query.Where("video_no LIKE ?", "%"+req.VideoNo+"%")
}
// 文章内容
if req.VideoContent != "" {
query = query.Where("video_content LIKE ?", "%"+req.VideoContent+"%")
// 搜索关键字
if req.Keyword != "" {
keyword := "%" + req.Keyword + "%" //
// 标题
orQuery := global.Db.Model(&model.Video{}).Or("video_title LIKE ?", keyword)
// 医院名称
hospitalSubQuery := global.Db.Model(&model.BaseHospital{}).
Select("hospital_id").
Where("hospital_name LIKE ?", keyword)
articleAuthorSubQuery := global.Db.Model(&model.VideoAuthor{}).
Select("video_id").
Where(gorm.Expr("hospital_id IN (?)", hospitalSubQuery))
orQuery = orQuery.Or(gorm.Expr("video_id IN (?)", articleAuthorSubQuery))
// 作者姓名
subQuery := global.Db.Model(&model.VideoAuthor{}).
Select("video_id").
Where("author_name LIKE ?", keyword)
orQuery = orQuery.Or(gorm.Expr("video_id IN (?)", subQuery))
// 执行组建
query = query.Where(orQuery)
}
// 文章状态