package models import ( "rdluck_tools/orm" ) type ReportMapping struct { CategoryId int `description:"分类ID"` SubCategoryName string `description:"主题"` MatchTypeName string `description:"分类名称"` IsRed bool `description:"是否标红"` } type ReportMappingHome struct { CategoryId int `description:"分类ID"` SubCategoryName string `description:"主题名称"` MatchTypeName string `description:"匹配类型"` IsRed bool `description:"是否标红"` } type TradeReportMapping struct { CategoryId int `description:"分类ID"` SubCategoryName string `description:"主题名称"` MatchTypeName string `description:"匹配类型"` IsRed bool `description:"是否标红"` UpdateTime string `description:"更新时间"` Readnum int `description:"阅读数量"` } type ReportMappingResp struct { List []*ReportMapping } type ReportMappingHomeResp struct { List []*ReportMappingHome } type TradeReportMappingResp struct { List []*TradeReportMapping } //获取策略下面的所有分类 func GetReportMappingStrategyAll() (items []*ReportMapping, err error) { o := orm.NewOrm() sql := `SELECT * FROM cygx_report_mapping WHERE report_type=1 AND chart_permission_id=23 ORDER BY sort ASC ` _, err = o.Raw(sql).QueryRows(&items) return } //获取策略下面的所有分类 func GetReportMappingStrategyHomeAll() (items []*ReportMappingHome, err error) { o := orm.NewOrm() sql := `SELECT re.category_id,re.sub_category_name,re.match_type_name FROM cygx_report_mapping AS re INNER JOIN cygx_article AS art ON art.category_id = re.category_id WHERE re.report_type = 1 AND re.chart_permission_id = 23 GROUP BY re.match_type_name ORDER BY sort DESC , art.publish_date DESC` _, err = o.Raw(sql).QueryRows(&items) return } //行业列表 func GetTradeAll(ChartPermissionId int) (items []*TradeReportMapping, err error) { o := orm.NewOrm() sql := `SELECT MAX( art.publish_date ) AS update_time, re.category_id, re.sub_category_name, re.match_type_name FROM cygx_report_mapping AS re INNER JOIN cygx_article AS art ON re.category_id = art.category_id WHERE re.chart_permission_id =? AND re.report_type = 1 AND art.is_class = 1 AND re.category_id NOT IN (67) GROUP BY art.category_id ORDER BY update_time DESC` _, err = o.Raw(sql, ChartPermissionId).QueryRows(&items) return } type IndustrialToArticleCategoryRep struct { CategoryId int `description:"分类ID"` MatchTypeName string `description:"匹配类型"` IsRed bool `description:"是否标红"` } type IndustrialToArticleCategoryListRep struct { LayoutTime string `description:"布局时间"` IndustryName string `description:"产业名称"` IndustrialManagementId int `description:"产业D"` List []*IndustrialToArticleCategoryRep } //通过分类ID获取详情 func GetdetailByCategoryId(categoryId int) (item *ReportMapping, err error) { o := orm.NewOrm() sql := `SELECT * FROM cygx_report_mapping WHERE report_type=1 AND category_id=? ` err = o.Raw(sql, categoryId).QueryRow(&item) return } //判断该分类下最新的文章用户是否阅读 func CheckThisCategoryNewArticleIsRead(uid, categoryId int) (count int, err error) { o := orm.NewOrm() sql := `SELECT COUNT(1) count FROM cygx_article_history_record WHERE user_id = ? AND article_id = ( SELECT article_id FROM cygx_article WHERE category_id = ? AND is_class = 1 AND is_report = 1 AND is_filter = 0 ORDER BY publish_date DESC LIMIT 1)` err = o.Raw(sql, uid, categoryId).QueryRow(&count) return }