This commit is contained in:
wucongxing8150 2024-09-04 16:12:18 +08:00
parent 8838b12415
commit c429bb03b1
4 changed files with 64 additions and 28 deletions

View File

@ -139,14 +139,33 @@ func (r *ArticleDao) GetArticlePageSearch(req requests.GetArticlePage, page, pag
// 作者关联医院 // 作者关联医院
query = query.Preload("ArticleAuthor.BaseHospital") query = query.Preload("ArticleAuthor.BaseHospital")
// 文章标题 // 搜索关键字
if req.ArticleTitle != "" { if req.Keyword != "" {
query = query.Where("article_title LIKE ?", "%"+req.ArticleTitle+"%") keyword := "%" + req.Keyword + "%" //
}
// 文章内容 // 标题
if req.ArticleContent != "" { orQuery := global.Db.Model(&model.Article{}).Or("article_title LIKE ?", keyword)
query = query.Where("article_content LIKE ?", "%"+req.ArticleContent+"%")
// 医院名称
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)
} }
// 文章状态 // 文章状态

View File

@ -139,19 +139,38 @@ func (r *VideoDao) GetVideoPageSearch(req requests.GetVideoPage, page, pageSize
// 作者关联医院 // 作者关联医院
query = query.Preload("VideoAuthor.BaseHospital") query = query.Preload("VideoAuthor.BaseHospital")
// 文章标题
if req.VideoTitle != "" {
query = query.Where("video_title LIKE ?", "%"+req.VideoTitle+"%")
}
// 视频编号 // 视频编号
if req.VideoNo != "" { if req.VideoNo != "" {
query = query.Where("video_no LIKE ?", "%"+req.VideoNo+"%") query = query.Where("video_no LIKE ?", "%"+req.VideoNo+"%")
} }
// 文章内容 // 搜索关键字
if req.VideoContent != "" { if req.Keyword != "" {
query = query.Where("video_content LIKE ?", "%"+req.VideoContent+"%") 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)
} }
// 文章状态 // 文章状态

View File

@ -8,12 +8,11 @@ type ArticleRequest struct {
// GetArticlePage 获取图文列表-分页 // GetArticlePage 获取图文列表-分页
type GetArticlePage struct { type GetArticlePage struct {
Page int `json:"page" form:"page" label:"页码"` Page int `json:"page" form:"page" label:"页码"`
PageSize int `json:"page_size" form:"page_size" label:"每页个数"` PageSize int `json:"page_size" form:"page_size" label:"每页个数"`
ArticleTitle string `json:"article_title" form:"article_title" label:"文章标题"` ArticleStatus *int `json:"article_status" form:"article_status" label:"文章状态"` // 1:正常 2:禁用)
ArticleStatus *int `json:"article_status" form:"article_status" label:"文章状态"` // 1:正常 2:禁用) Keyword string `json:"keyword" form:"keyword" label:"搜索关键字"`
ArticleContent string `json:"article_content" form:"article_content" label:"文章内容"` Order *GetArticlePageOrder `json:"order" form:"order" label:"排序"`
Order *GetArticlePageOrder `json:"order" form:"order" label:"排序"`
} }
// GetArticlePageOrder 获取图文列表-分页-排序条件 // GetArticlePageOrder 获取图文列表-分页-排序条件

View File

@ -8,13 +8,12 @@ type VideoRequest struct {
// GetVideoPage 获取视频列表-分页 // GetVideoPage 获取视频列表-分页
type GetVideoPage struct { type GetVideoPage struct {
Page int `json:"page" form:"page" label:"页码"` Page int `json:"page" form:"page" label:"页码"`
PageSize int `json:"page_size" form:"page_size" label:"每页个数"` PageSize int `json:"page_size" form:"page_size" label:"每页个数"`
VideoTitle string `json:"video_title" form:"Video_title" label:"视频标题"` Keyword string `json:"keyword" form:"keyword" label:"搜索关键字"`
VideoStatus *int `json:"video_status" form:"Video_status" label:"视频状态"` // 1:正常 2:禁用) VideoStatus *int `json:"video_status" form:"Video_status" label:"视频状态"` // 1:正常 2:禁用)
VideoNo string `json:"video_no" form:"video_no" label:"视频编号"` // (保利) VideoNo string `json:"video_no" form:"video_no" label:"视频编号"` // (保利)
VideoContent string `json:"video_content" form:"Video_content" label:"视频内容"` Order *GetVideoPageOrder `json:"order" form:"order" label:"排序"`
Order *GetVideoPageOrder `json:"order" form:"order" label:"排序"`
} }
// GetVideoPageOrder 获取视频列表-分页-排序条件 // GetVideoPageOrder 获取视频列表-分页-排序条件