123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329 |
- package models
- import (
- "eta/eta_mini_api/utils"
- "github.com/beego/beego/v2/client/orm"
- "time"
- )
- type UnionReport struct {
- Id int `description:"报告ID"`
- Title string `description:"报告标题"`
- Abstract string `description:"摘要"`
- PublishTime time.Time `description:"发布时间"`
- ReportSource int `description:"报告来源:1-report表;2-outside_report表"`
- ReportFile string `description:"报告附件"`
- ClassifyIdFirst int `description:"一级分类ID"`
- ClassifyIdSecond int `description:"二级分类ID"`
- ClassifyIdThird int `description:"三级分类ID"`
- Author string `description:"作者"`
- }
- type UnionReportItem struct {
- Id int `description:"报告ID"`
- Title string `description:"报告标题"`
- Abstract string `description:"摘要"`
- PublishTime string `description:"发布时间"`
- ReportSource int `description:"报告来源:1-report表;2-outside_report表"`
- ReportFile string `description:"报告附件"`
- ClassifyId int `description:"分类ID"`
- ClassifyName string `description:"分类名称"`
- Author string `description:"作者"`
- }
- func GetReportAndOutsideReportCount(reportCond, outsideCond string, reportPars, outsidePars []interface{}) (total int, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `SELECT COUNT(*) AS total
- FROM (
- (
- SELECT
- r.id AS id
- FROM
- report r
- WHERE
- r.state IN (2,6) ` + reportCond + `
- )
- UNION
- (
- SELECT
- o.outside_report_id AS id
- FROM
- outside_report o
- INNER JOIN
- outside_report_attachment oa
- ON
- o.outside_report_id = oa.outside_report_id
- WHERE
- oa.title LIKE '%.pdf%' AND oa.create_time = (
- SELECT MAX(oa2.create_time)
- FROM outside_report_attachment oa2
- WHERE oa2.outside_report_id = o.outside_report_id AND oa2.title LIKE '%.pdf%'
- ) ` + outsideCond + `
- )
- ) AS t`
- //sql = fmt.Sprintf(sql, reportCond, outsideCond)
- err = o.Raw(sql, reportPars, outsidePars).QueryRow(&total)
- return
- }
- // GetReportAndOutsideReportByCondition 查询报告及外部中PDF的报告
- func GetReportAndOutsideReportByCondition(reportCond, outsideCond string, reportPars, outsidePars []interface{}, startSize, pageSize int) (items []*UnionReport, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `(
- SELECT
- r.id AS id,
- r.title AS title,
- r.abstract AS abstract,
- r.publish_time AS publish_time,
- 1 AS report_source,
- detail_pdf_url AS report_file,
- r.classify_id_first,
- r.classify_id_second,
- r.classify_id_third,
- r.author
- FROM
- report r
- WHERE
- r.state IN (2,6) ` + reportCond + `
- )
- UNION
- (
- SELECT
- o.outside_report_id AS id,
- o.title AS title,
- o.abstract AS abstract,
- o.modify_time AS publish_time,
- 2 AS report_source,
- oa.url AS report_file,
- o.classify_id AS classify_name_first,
- o.classify_id AS classify_name_second,
- o.classify_id AS classify_name_third,
- o.sys_user_name AS author
- FROM
- outside_report o
- INNER JOIN
- outside_report_attachment oa
- ON
- o.outside_report_id = oa.outside_report_id
- WHERE
- oa.title LIKE '%.pdf%' AND oa.create_time = (
- SELECT MAX(oa2.create_time)
- FROM outside_report_attachment oa2
- WHERE oa2.outside_report_id = o.outside_report_id AND oa2.title LIKE '%.pdf%'
- ) ` + outsideCond + `
- )
- ORDER BY publish_time DESC LIMIT ?,?`
- //sql = fmt.Sprintf(sql, reportCond, outsideCond)
- _, err = o.Raw(sql, reportPars, outsidePars, startSize, pageSize).QueryRows(&items)
- return
- }
- type Report struct {
- Id int `orm:"pk" description:"报告Id"`
- AddType int `description:"新增方式:1:新增报告,2:继承报告"`
- ClassifyIdFirst int `description:"一级分类id"`
- ClassifyNameFirst string `description:"一级分类名称"`
- ClassifyIdSecond int `description:"二级分类id"`
- ClassifyNameSecond string `description:"二级分类名称"`
- ClassifyIdThird int `description:"三级分类id"`
- ClassifyNameThird string `description:"三级分类名称"`
- Title string `description:"标题"`
- Abstract string `description:"摘要"`
- Author string `description:"作者"`
- Frequency string `description:"频度"`
- CreateTime string `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- State int `description:"1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过"`
- PublishTime time.Time `description:"发布时间"`
- Stage int `description:"期数"`
- MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
- ThsMsgIsSend int `description:"客户群消息是否已发送,0:否,1:是"`
- Content string `description:"内容"`
- VideoUrl string `description:"音频文件URL"`
- VideoName string `description:"音频文件名称"`
- VideoPlaySeconds string `description:"音频播放时长"`
- VideoSize string `description:"音频文件大小,单位M"`
- ContentSub string `description:"内容前两个章节"`
- ReportCode string `description:"报告唯一编码"`
- ReportVersion int `description:"1:旧版,2:新版"`
- HasChapter int `description:"是否有章节 0-否 1-是"`
- ChapterType string `description:"章节类型 day-晨报 week-周报"`
- OldReportId int `description:"research_report表ID, 大于0则表示该报告为老后台同步过来的"`
- MsgSendTime time.Time `description:"模版消息发送时间"`
- AdminId int `description:"创建者账号"`
- AdminRealName string `description:"创建者姓名"`
- ApproveTime time.Time `description:"审批时间"`
- ApproveId int `description:"审批ID"`
- DetailImgUrl string `description:"报告详情长图地址"`
- DetailPdfUrl string `description:"报告详情PDF地址"`
- ContentStruct string `description:"内容组件"`
- LastModifyAdminId int `description:"最后更新人ID"`
- LastModifyAdminName string `description:"最后更新人姓名"`
- ContentModifyTime time.Time `description:"内容更新时间"`
- Pv int `description:"pv"`
- Uv int `description:"uv"`
- HeadImg string `description:"报告头图地址"`
- EndImg string `description:"报告尾图地址"`
- CanvasColor string `description:"画布颜色"`
- NeedSplice int `description:"是否拼接版头版位的标记,主要是为了兼容历史报告。0-不需要 1-需要"`
- HeadResourceId int `description:"版头资源ID"`
- EndResourceId int `description:"版尾资源ID"`
- CollaborateType int8 `description:"协作方式,1:个人,2:多人协作。默认:1"`
- ReportLayout int8 `description:"报告布局,1:常规布局,2:智能布局。默认:1"`
- IsPublicPublish int8 `description:"是否公开发布,1:是,2:否"`
- ReportCreateTime time.Time `description:"报告时间创建时间"`
- InheritReportId int `description:"待继承的报告ID"`
- VoiceGenerateType int `description:"音频生成方式,0:系统生成,1:人工上传"`
- }
- func (m *Report) GetItemById(id int) (item *Report, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `SELECT * FROM report WHERE id = ? LIMIT 1`
- err = o.Raw(sql, id).QueryRow(&item)
- return
- }
- type ReportDetail struct {
- Id int `description:"报告Id"`
- AddType int `description:"新增方式:1:新增报告,2:继承报告"`
- ClassifyIdFirst int `description:"一级分类id"`
- ClassifyNameFirst string `description:"一级分类名称"`
- ClassifyIdSecond int `description:"二级分类id"`
- ClassifyNameSecond string `description:"二级分类名称"`
- ClassifyIdThird int `description:"三级分类id"`
- ClassifyNameThird string `description:"三级分类名称"`
- Title string `description:"标题"`
- Abstract string `description:"摘要"`
- Author string `description:"作者"`
- Frequency string `description:"频度"`
- CreateTime string `description:"创建时间"`
- ModifyTime string `description:"修改时间"`
- State int `description:"1:未发布,2:已发布"`
- PublishTime string `description:"发布时间"`
- Stage int `description:"期数"`
- MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
- Content string `description:"内容"`
- ChapterContent []*ReportChapter `description:"章节内容"`
- VideoUrl string `description:"音频文件URL"`
- VideoName string `description:"音频文件名称"`
- VideoPlaySeconds string `description:"音频播放时长"`
- VideoSize string `description:"音频文件大小,单位M"`
- ContentSub string `description:"内容前两个章节"`
- IsShowNewLabel int `description:"是否显示新标签"`
- IsCurrentDate int `description:"是否当前日期"`
- ClassifyName string `description:"分类名称"`
- TitleType string `description:"标题类型,FICC或者权益"`
- IsPublic bool `description:"是否是公共报告 "`
- HeadResourceId int `description:"版头资源库id"`
- EndResourceId int `description:"版尾资源库id"`
- HeadResource *SmartReportResource `description:"版头资源库"`
- EndResource *SmartReportResource `description:"版尾资源库"`
- CollaborateType int `description:"合作类型, 1:个人,2:多人协作"`
- ReportLayout int `description:"报告布局, 1:常规布局,2:智能布局"`
- HasChapter int `description:"是否有章节: 0-否 1-是"`
- }
- type ReportChapter struct {
- Title string `description:"章节标题"`
- Content string `description:"章节内容"`
- }
- func GetReportChapterList(reportId int) (items []*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(&items)
- return
- }
- func GetReportById(reportId int) (item *ReportDetail, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `SELECT * FROM report WHERE (state=2 OR state=6) AND id=?`
- err = o.Raw(sql, reportId).QueryRow(&item)
- return
- }
- type SmartReportResource struct {
- ResourceId int `description:"资源库id"`
- ImgUrl string `description:"图片url"`
- Type int `description:"资源类型:1-版头 2-版尾"`
- Style string `description:"版图样式"`
- }
- func GetSmartReportResourceById(resourceId int) (item *SmartReportResource, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `SELECT * FROM smart_report_resource WHERE resource_id=?`
- err = o.Raw(sql, resourceId).QueryRow(&item)
- return
- }
- type OutsideReport struct {
- OutsideReportId int `description:"报告ID"`
- Title string `description:"标题"`
- Abstract string `description:"摘要"`
- ClassifyId int `description:"分类ID"`
- ClassifyName string `description:"分类名称"`
- SysUserId int `description:"创建人ID"`
- SysUserName string `description:"创建人姓名"`
- ReportFile string `description:"报告附件"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- }
- func GetOutsideReportById(reportId int) (item *OutsideReport, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `SELECT
- o.outside_report_id,
- o.title,
- o.abstract,
- o.create_time,
- o.modify_time,
- o.classify_id,
- o.classify_name,
- o.sys_user_id,
- o.sys_user_name,
- oa.url AS report_file
- FROM
- outside_report o
- INNER JOIN
- outside_report_attachment oa
- ON
- o.outside_report_id = oa.outside_report_id
- WHERE
- o.outside_report_id = ?
- AND oa.title LIKE '%.pdf%'
- AND oa.create_time = (
- SELECT MAX(oa2.create_time)
- FROM outside_report_attachment oa2
- WHERE oa2.outside_report_id = o.outside_report_id AND oa2.title LIKE '%.pdf%'
- )
- LIMIT 1`
- err = o.Raw(sql, reportId).QueryRow(&item)
- return
- }
- type OutsideReportItem struct {
- OutsideReportId int `description:"报告ID"`
- Title string `description:"标题"`
- Abstract string `description:"摘要"`
- ClassifyId int `description:"分类ID"`
- ClassifyName string `description:"分类名称"`
- Author string `description:"作者"`
- ReportFile string `description:"报告附件"`
- CreateTime string `description:"创建时间"`
- ModifyTime string `description:"修改时间"`
- Status int `description:"报告权限:0-无权限;1-有权限"`
- }
- func (m *OutsideReport) Format2Item() (item *OutsideReportItem) {
- item = new(OutsideReportItem)
- item.OutsideReportId = m.OutsideReportId
- item.Title = m.Title
- item.Abstract = m.Abstract
- item.ClassifyId = m.ClassifyId
- item.ClassifyName = m.ClassifyName
- item.Author = m.SysUserName
- item.ReportFile = m.ReportFile
- item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, m.CreateTime)
- item.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, m.ModifyTime)
- return
- }
|