package media import ( logger "eta/eta_mini_ht_api/common/component/log" "eta/eta_mini_ht_api/common/exception" "eta/eta_mini_ht_api/common/utils/page" "eta/eta_mini_ht_api/controllers" "eta/eta_mini_ht_api/service/media" ) type MediaController struct { controllers.ListController } // Search 搜索报告列表 // @Description 搜索报告列表 // @Success 200 {object} // @router /search [get] func (m *MediaController) Search(mediaType string, key string) { controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) { result = m.InitWrapData("分页搜索媒体列表失败") if key == "" { err = exception.New(exception.SearchKeyEmptyError) m.FailedResult("分页搜索报告列表失败", result) return } if mediaType == "" || !m.CheckMediaType(mediaType) { err = exception.New(exception.MediaTypeError) m.FailedResult("分页查询媒体列表失败", result) return } pageRes := page.Page{ Current: m.PageInfo.Current, PageSize: m.PageInfo.PageSize, } if m.PageInfo.LatestId == 0 { pageRes.Total, pageRes.LatestId = media.SearchMaxMediaId(mediaType, key) m.PageInfo.LatestId = pageRes.LatestId } else { pageRes.LatestId = m.PageInfo.LatestId pageRes.Total = m.PageInfo.Total } pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize) list, err := media.SearchMediaList(mediaType, key, m.PageInfo) if err != nil { m.FailedResult("分页搜索报告列表失败", result) return } reports := new(page.PageResult) reports.Data = list reports.Page = pageRes m.SuccessResult("分页搜索报告列表成功", reports, result) return }) } // List 获取媒体列表 // @Description 获取媒体列表 // @Success 200 {object} // @router /list [get] func (m *MediaController) List(mediaType string, permissionIds string) { controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) { result = m.InitWrapData("分页查询媒体列表失败") if mediaType == "" || !m.CheckMediaType(mediaType) { err = exception.New(exception.MediaTypeError) m.FailedResult("分页查询媒体列表失败", result) return } permissionIdList, err := m.TransPermissionIds(permissionIds) if err != nil { logger.Error("品种列表解析错误:%v", err) m.FailedResult("分页查询媒体列表失败", result) err = exception.New(exception.QueryReportPageFailed) return } pageRes := page.Page{ Current: m.PageInfo.Current, PageSize: m.PageInfo.PageSize, } var mediaIds []int if m.PageInfo.LatestId == 0 { pageRes.Total, pageRes.LatestId, mediaIds = media.GetTotalPageCountByPermissionIds(mediaType, permissionIdList) m.PageInfo.LatestId = pageRes.LatestId m.PageInfo.Total = pageRes.Total } else { pageRes.LatestId = m.PageInfo.LatestId pageRes.Total = m.PageInfo.Total } pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize) list, err := media.GetMediaPageByIds(mediaType, m.PageInfo, mediaIds) if err != nil { m.FailedResult("分页查询媒体列表失败", result) return } mediaList := new(page.PageResult) mediaList.Data = list mediaList.Page = pageRes m.SuccessResult("分页查询媒体列表成功", mediaList, result) return }) } // GetMedia 获取媒体详情 // @Description 获取媒体详情 // @Success 200 {object} // @router /media [get] func (m *MediaController) GetMedia(mediaType string, mediaId int) { controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) { result = m.InitWrapData("获取媒体详情失败") if mediaType == "" || !m.CheckMediaType(mediaType) { err = exception.New(exception.MediaTypeError) m.FailedResult("获取媒体详情失败", result) return } meidaDetail, err := media.GetMediaById(mediaType, mediaId) if err != nil { m.FailedResult("获取媒体详情失败", result) return } m.SuccessResult("获取媒体详情成功", meidaDetail, result) return }) }