package models import ( "rdluck_tools/orm" "time" ) type Report struct { Id int `description:"报告Id"` AddType int `description:"新增方式:1:新增报告,2:继承报告"` ClassifyIdFirst int `description:"一级分类id"` ClassifyNameFirst string `description:"一级分类名称"` ClassifyIdSecond int `description:"二级分类id"` ClassifyNameSecond 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:已发布"` PublishTime string `description:"发布时间"` Stage int `description:"期数"` MsgIsSend int `description:"消息是否已发送,0:否,1:是"` Content string `description:"内容"` VideoUrl string `description:"音频文件URL"` VideoName string `description:"音频文件名称"` VideoPlaySeconds string `description:"音频播放时长"` ContentSub string `description:"内容前两个章节"` IsShowNewLabel int `description:"是否显示新标签"` IsCurrentDate int `description:"是否当前日期"` ClassifyName string `description:"分类名称"` } type ReportList struct { Id int `description:"报告Id"` AddType int `description:"新增方式:1:新增报告,2:继承报告"` ClassifyIdFirst int `description:"一级分类id"` ClassifyNameFirst string `description:"一级分类名称"` ClassifyIdSecond int `description:"二级分类id"` ClassifyNameSecond 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:已发布"` PublishTime string `description:"发布时间"` Stage int `description:"期数"` MsgIsSend int `description:"消息是否已发送,0:否,1:是"` Content string `description:"内容"` VideoUrl string `description:"音频文件URL"` VideoName string `description:"音频文件名称"` VideoPlaySeconds string `description:"音频播放时长"` ContentSub string `description:"内容前两个章节"` HasPermission int `description:"是否拥有报告权限,1:拥有,0:没有"` TitleType string `description:"标题类型,FICC或者权益"` } type ReportListResp struct { List []*ReportList Paging *PagingItem `description:"分页数据"` } func GetReportListCount(classifyId int) (count int, err error) { o := orm.NewOrm() o.Using("rddp") sql := ` SELECT COUNT(1) AS count FROM report WHERE 1=1 AND state=2 AND classify_id_second=? ` err = o.Raw(sql, classifyId).QueryRow(&count) return } func GetReportList(classifyId, startSize, pageSize int) (items []*ReportList, err error) { o := orm.NewOrm() o.Using("rddp") sql := ` SELECT * FROM report WHERE state=2 AND classify_id_second=? ORDER BY publish_time DESC LIMIT ?,? ` _, err = o.Raw(sql, classifyId, startSize, pageSize).QueryRows(&items) return } func GetReportPermission(userId int, classifyNameSecond string) (count int, err error) { o := orm.NewOrm() sql := ` SELECT COUNT(1) AS count FROM company_report_permission AS crp INNER JOIN chart_permission_chapter_mapping AS cpcm ON crp.chart_permission_id = cpcm.chart_permission_id INNER JOIN chart_permission_search_key_word_mapping AS cskwm ON cskwm.chart_permission_id=crp.chart_permission_id INNER JOIN wx_user wu ON wu.company_id = crp.company_id WHERE wu.user_id = ? AND cpcm.research_type = 'rddp' AND cskwm.from='rddp' AND cskwm.key_word=? ` err = o.Raw(sql, userId, classifyNameSecond).QueryRow(&count) 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:"二级分类名称"` 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:"内容"` VideoUrl string `description:"音频文件URL"` VideoName string `description:"音频文件名称"` VideoPlaySeconds string `description:"音频播放时长"` ContentSub string `description:"内容前两个章节"` IsShowNewLabel int `description:"是否显示新标签"` IsCurrentDate int `description:"是否当前日期"` ClassifyName string `description:"分类名称"` TitleType string `description:"标题类型,FICC或者权益"` } func GetReportById(reportId int) (item *ReportDetail, err error) { o := orm.NewOrm() o.Using("rddp") sql := `SELECT * FROM report WHERE id=?` err = o.Raw(sql, reportId).QueryRow(&item) return } type ReportVarietyList struct { ReportChapterTypeId int } func GetReportVarietyListByUserIdExt(userId int, reportType string) (list []*ReportVarietyList, err error) { o := orm.NewOrm() sql := `SELECT cpcm.report_chapter_type_id FROM company_report_permission crp INNER JOIN chart_permission_chapter_mapping cpcm ON crp.chart_permission_id = cpcm.chart_permission_id INNER JOIN wx_user wu ON wu.company_id = crp.company_id WHERE wu.user_id = ? AND cpcm.research_type = ? GROUP BY cpcm.report_chapter_type_id` _, err = o.Raw(sql, userId, reportType).QueryRows(&list) return } type ReportDetailResp struct { Report *ReportDetail `description:"报告"` RecommendList []*RecommendReport `description:"推荐报告列表"` Status int `description:"状态:0:正常展示,1:报告不存在,2:无权限"` Msg string `description:"提示信息"` } type ReportRecordReq struct { ReportId int `description:"报告Id"` } type RecommendReport struct { Id int `description:"报告Id"` AddType int `description:"新增方式:1:新增报告,2:继承报告"` ClassifyIdFirst int `description:"一级分类id"` ClassifyNameFirst string `description:"一级分类名称"` ClassifyIdSecond int `description:"二级分类id"` ClassifyNameSecond 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:已发布"` PublishTime string `description:"发布时间"` Stage int `description:"期数"` MsgIsSend int `description:"消息是否已发送,0:否,1:是"` Content string `description:"内容"` VideoUrl string `description:"音频文件URL"` VideoName string `description:"音频文件名称"` VideoPlaySeconds string `description:"音频播放时长"` ContentSub string `description:"内容前两个章节"` ClassifyName string `description:"分类名称"` HasPermission int `description:"报告权限:0:无权限,1:有权限"` TitleType string `description:"标题类型,FICC或者权益"` } func GetRecommendList(reportId, reportType int) (items []*RecommendReport, err error) { o := orm.NewOrm() o.Using("rddp") sql := `SELECT * FROM report WHERE state=2 AND id<>? ` if reportType == 1 { sql += ` AND classify_name_first='权益研报' ` } else { sql += ` AND classify_name_first<>'权益研报' ` } sql += ` ORDER BY publish_time DESC LIMIT 3` _, err = o.Raw(sql, reportId).QueryRows(&items) return } func GetReportByCode(reportCode string) (item *Report, err error) { o := orm.NewOrm() o.Using("rddp") sql := `SELECT * FROM report WHERE report_code=?` err = o.Raw(sql, reportCode).QueryRow(&item) return } type ReportShareDetailResp struct { Report *Report `description:"报告"` } type PcReport struct { Id int `description:"报告Id"` AddType int `description:"新增方式:1:新增报告,2:继承报告"` ClassifyIdFirst int `description:"一级分类id"` ClassifyNameFirst string `description:"一级分类名称"` ClassifyIdSecond int `description:"二级分类id"` ClassifyNameSecond 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:已发布"` PublishTime string `description:"发布时间"` Stage int `description:"期数"` MsgIsSend int `description:"消息是否已发送,0:否,1:是"` Content string `json:"-" description:"内容"` VideoUrl string `description:"音频文件URL"` VideoName string `description:"音频文件名称"` VideoPlaySeconds string `description:"音频播放时长"` ContentSub string `json:"-" description:"内容前两个章节"` IsShowNewLabel int `description:"是否显示新标签"` IsCurrentDate int `description:"是否当前日期"` ClassifyName string `description:"分类名称"` TitleType string `description:"标题类型,FICC或者权益"` ReportAuthor } type ReportAuthor struct { ReportAuthor string `description:"报告作者名称"` AuthorTitle string `description:"标题"` AuthorSummaryBase string `description:"基础介绍"` AuthorHeadSmallUrl string `description:"小头像"` AuthorHeadSmallDoubleUrl string `description:"两倍小头像"` AuthorHeadBigUrl string `description:"大头像"` AuthorHeadBigDoubleUrl string `description:"两倍大头像"` AuthorSummaryExt string `description:"扩展介绍"` SpeakerBase string `description:"主讲人"` SpeakerExt string `description:"主讲人"` AuthorHeadSquare string `description:"方形头像"` } func GetReportAuthor(reportAuthor string) (item *ReportAuthor, err error) { o := orm.NewOrm() o.Using("rddp") sql := `SELECT * FROM report_author WHERE report_author=? ` err = o.Raw(sql, reportAuthor).QueryRow(&item) return }