123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- package models
- import (
- "eta/eta_mobile/utils"
- "github.com/beego/beego/v2/client/orm"
- "time"
- )
- // ReportChapter 报告章节
- type ReportChapter struct {
- ReportChapterId int `orm:"column(report_chapter_id);pk" description:"报告章节ID"`
- ReportId int `description:"报告ID"`
- ReportType string `description:"报告类型 day-晨报 week-周报"`
- ClassifyIdFirst int `description:"一级分类id"`
- ClassifyNameFirst string `description:"一级分类名称"`
- TypeId int `description:"品种ID"`
- TypeName string `description:"品种名称"`
- Title string `description:"标题"`
- Abstract string `description:"摘要"`
- AddType int `description:"新增方式:1:新增报告,2:继承报告"`
- Author string `description:"作者"`
- Content string `description:"内容"`
- ContentSub string `description:"内容前两个章节"`
- Stage int `description:"期数"`
- Trend string `description:"趋势观点"`
- Sort int `description:"排序: 数值越小越靠前"`
- IsEdit int `description:"是否已编辑 0-待编辑 1-已编辑"`
- PublishState int `description:"发布状态 1-待发布,2-已发布"`
- PublishTime time.Time `description:"发布时间"`
- VideoUrl string `description:"音频文件URL"`
- VideoName string `description:"音频文件名称"`
- VideoPlaySeconds string `description:"音频播放时长"`
- VideoSize string `description:"音频文件大小,单位M"`
- VideoKind int `description:"音频生成方式:1,手动上传,2:自动生成"`
- CreateTime string `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- }
- type ReportChapterResp struct {
- ReportChapterId int `description:"报告章节ID"`
- ReportId int `description:"报告ID"`
- ReportType string `description:"报告类型 day-晨报 week-周报"`
- TypeId int `description:"品种ID"`
- TypeName string `description:"品种名称"`
- TypeEditImg string `description:"后台编辑时的图片"`
- Title string `description:"标题"`
- Abstract string `description:"摘要"`
- Author string `description:"作者"`
- Content string `description:"内容"`
- ContentSub string `description:"内容前两个章节"`
- Stage int `description:"期数"`
- Trend string `description:"趋势观点"`
- Sort int `description:"排序: 数值越小越靠前"`
- IsEdit int `description:"是否已编辑 0-待编辑 1-已编辑"`
- PublishState int `description:"发布状态 1-待发布,2-已发布"`
- VideoUrl string `description:"音频文件URL"`
- VideoName string `description:"音频文件名称"`
- VideoPlaySeconds string `description:"音频播放时长"`
- VideoSize string `description:"音频文件大小,单位M"`
- VideoKind int `description:"音频生成方式:1,手动上传,2:自动生成"`
- PublishTime string `description:"发布时间"`
- CreateTime string `description:"创建时间"`
- ModifyTime string `description:"修改时间"`
- }
- // GetChapterListByReportId 根据ReportId获取章节列表
- func GetChapterListByReportId(reportId int) (list []*ReportChapter, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT * FROM report_chapter WHERE report_id = ? ORDER BY sort ASC`
- _, err = o.Raw(sql, reportId).QueryRows(&list)
- return
- }
- // GetPublishedChapterListByReportId 根据ReportId获取已发布章节列表
- func GetPublishedChapterListByReportId(reportId int) (list []*ReportChapter, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT * FROM report_chapter WHERE report_id = ? AND publish_state = 2 ORDER BY sort ASC`
- _, err = o.Raw(sql, reportId).QueryRows(&list)
- return
- }
- // EditReportChapterReq 编辑报告章节请求体
- type EditReportChapterReq struct {
- ReportChapterId int `description:"报告章节ID"`
- Title string `description:"标题"`
- AddType int `description:"新增方式:1:新增报告,2:继承报告"`
- Author string `description:"作者"`
- Content string `description:"内容"`
- TickerList []EditTickList `description:"指标信息"`
- CreateTime string `description:"发布时间"`
- VideoUrl string `description:"音频文件URL"`
- VideoName string `description:"音频文件名称"`
- VideoPlaySeconds string `description:"音频播放时长"`
- VideoSize string `description:"音频文件大小,单位M"`
- }
- type EditTickList struct {
- Label string
- Ticker string
- Sort int
- }
- // GetReportChapterInfoById 根据主键获取报告章节
- func GetReportChapterInfoById(reportChapterId int) (item *ReportChapter, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT * FROM report_chapter WHERE report_chapter_id = ? `
- err = o.Raw(sql, reportChapterId).QueryRow(&item)
- return
- }
- // GetLastPublishedReportChapter 获取上一篇已发表的晨周报章节
- func GetLastPublishedReportChapter(typeId int, reportType string) (item *ReportChapter, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT * FROM report_chapter WHERE publish_state = 2 AND type_id = ? AND report_type = ? ORDER BY report_chapter_id DESC limit 1 `
- err = o.Raw(sql, typeId, reportType).QueryRow(&item)
- return
- }
- // UpdateChapter 更新报表章节
- func (chapterInfo *ReportChapter) UpdateChapter(cols []string) (err error) {
- o := orm.NewOrmUsingDB("rddp")
- _, err = o.Update(chapterInfo, cols...)
- return
- }
- // EditChapterTrendTagReq 编辑章节趋势标签请求体
- type EditChapterTrendTagReq struct {
- ReportChapterId int `description:"章节ID"`
- Trend string `description:"趋势"`
- }
- // UpdateChapterAndTicker 更新章节及ticker
- func UpdateChapterAndTicker(chapterInfo *ReportChapter, updateCols []string, tickerList []*ReportChapterTicker) (err error) {
- o := orm.NewOrmUsingDB("rddp")
- to, err := o.Begin()
- if err != nil {
- return
- }
- defer func() {
- if err != nil {
- _ = to.Rollback()
- } else {
- _ = to.Commit()
- }
- }()
- // 更新章节
- if err = chapterInfo.UpdateChapter(updateCols); err != nil {
- return
- }
- // 清空并新增章节ticker
- if err = ClearReportChapterTicker(chapterInfo.ReportChapterId); err != nil {
- return
- }
- tickerLen := len(tickerList)
- if tickerLen > 0 {
- for i := 0; i < tickerLen; i++ {
- _, tmpErr := InsertChapterTicker(tickerList[i])
- if tmpErr != nil {
- return
- }
- }
- }
- return
- }
- // ReportChapterVideoList 报告章节音频列表
- type ReportChapterVideoList struct {
- ReportId int `description:"报告ID"`
- ReportChapterId int `description:"报告章节ID"`
- VideoUrl string `description:"音频文件URL"`
- VideoName string `description:"音频文件名称"`
- VideoPlaySeconds string `description:"音频播放时长"`
- }
- // GetReportChapterVideoList 获取报告章节音频列表
- func GetReportChapterVideoList(reportId int) (list []*ReportChapterVideoList, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT
- report_id,
- report_chapter_id,
- video_url,
- video_name,
- video_play_seconds
- FROM
- report_chapter
- WHERE
- report_id = ? AND publish_state = 2 AND video_url != ""
- ORDER BY
- report_chapter_id ASC `
- _, err = o.Raw(sql, reportId).QueryRows(&list)
- return
- }
- // GetReportChapterVideoListByReportIds 根据报告ID集合获取报告章节音频列表
- func GetReportChapterVideoListByReportIds(reportIds []string) (list []*ReportChapterVideoList, err error) {
- if len(reportIds) == 0 {
- return
- }
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT
- report_id,
- report_chapter_id,
- video_url,
- video_name,
- video_play_seconds
- FROM
- report_chapter
- WHERE
- report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `) AND publish_state = 2 AND video_url != ""
- ORDER BY
- report_chapter_id ASC `
- _, err = o.Raw(sql, reportIds).QueryRows(&list)
- return
- }
- // GetReportChapterVideoListByChapterIds 根据章节ID集合获取报告章节音频列表
- func GetReportChapterVideoListByChapterIds(chapterIds string) (list []*ReportChapterVideoList, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT
- report_id,
- report_chapter_id,
- video_url,
- video_name,
- video_play_seconds
- FROM
- report_chapter
- WHERE
- report_chapter_id IN (` + chapterIds + `) AND publish_state = 2
- ORDER BY
- report_chapter_id ASC `
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // PublishReportChapterReq 发布报告章节请求体
- type PublishReportChapterReq struct {
- ReportChapterId int `description:"报告章节ID"`
- Title string `description:"标题"`
- AddType int `description:"新增方式:1:新增报告,2:继承报告"`
- Author string `description:"作者"`
- Content string `description:"内容"`
- TickerList []EditTickList `description:"指标信息"`
- CreateTime string `description:"发布时间"`
- PublishReport int `description:"是否同时发布报告"`
- VideoUrl string `description:"音频文件URL"`
- VideoName string `description:"音频文件名称"`
- VideoPlaySeconds string `description:"音频播放时长"`
- VideoSize string `description:"音频文件大小,单位M"`
- }
- // CountPublishedChapterNum 获取报告已发布的章节数
- func CountPublishedChapterNum(reportId int) (count int, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT COUNT(1) AS ct FROM report_chapter WHERE report_id = ? AND publish_state = 2 `
- err = o.Raw(sql, reportId).QueryRow(&count)
- return
- }
- // GetChapterListByReportId 根据ReportId获取章节列表
- func GetChapterListByChapterIds(chapterIds string) (list []*ReportChapter, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT * FROM report_chapter WHERE report_chapter_id IN (` + chapterIds + `) ORDER BY sort ASC`
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // GetChapterSimpleListByChapterIds 根据章节ID获取章节列表
- func GetChapterSimpleListByChapterIds(chapterIds string) (list []*ReportChapter, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT report_id, report_chapter_id, title, type_name, create_time, IF(publish_time,publish_time,create_time) as publish_time FROM report_chapter WHERE report_chapter_id IN (` + chapterIds + `) ORDER BY publish_time desc, sort ASC`
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // GetChapterSimpleListByReportIds 根据ReportId获取章节列表
- func GetChapterSimpleListByReportIds(reportIds string) (list []*ReportChapter, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT report_id, report_chapter_id, title, type_name, create_time, IF(publish_time,publish_time,create_time) as publish_time FROM report_chapter WHERE publish_state = 2 and report_id IN (` + reportIds + `) ORDER BY publish_time desc, sort ASC`
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // UpdateReportChapterTypeNameByTypeId 更新章节类型名称
- func UpdateReportChapterTypeNameByTypeId(typeId int, typeName string) (err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `UPDATE report_chapter SET type_name = ? WHERE type_id = ?`
- _, err = o.Raw(sql, typeName, typeId).Exec()
- return
- }
- // CountReportChapterByTypeId 通过章节类型ID获取章节数
- func CountReportChapterByTypeId(typeId int) (count int, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := ` SELECT COUNT(1) AS ct FROM report_chapter WHERE type_id = ?`
- err = o.Raw(sql, typeId).QueryRow(&count)
- return
- }
|