home.go 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. "strconv"
  6. )
  7. type HomeArtAndChartListResp struct {
  8. Paging *paging.PagingItem
  9. List []*HomeArticle `description:"文章列表"`
  10. ChartList []*HomeChartListResp `description:"图表列表"`
  11. }
  12. type HomeArticleListResp struct {
  13. Paging *paging.PagingItem
  14. List []*ArticleListResp `description:"文章列表"`
  15. }
  16. type ReportBillboardListResp struct {
  17. List []*ArticleListResp `description:"文章列表"`
  18. }
  19. type HomeArticle struct {
  20. ArticleId int `description:"文章id"`
  21. Title string `description:"标题"`
  22. TitleEn string `description:"英文标题 "`
  23. PublishDate string `description:"发布时间"`
  24. Body string `description:"内容"`
  25. BodyHtml string `description:"内容带有HTML标签"`
  26. Abstract string `description:"摘要"`
  27. CategoryName string `description:"一级分类"`
  28. SubCategoryName string `description:"二级分类"`
  29. IsResearch bool `description:"是否属于研选"`
  30. Pv int `description:"PV"`
  31. ImgUrlPc string `description:"图片链接"`
  32. CategoryId string `description:"文章分类"`
  33. HttpUrl string `description:"文章链接跳转地址"`
  34. IsNeedJump bool `description:"是否需要跳转链接地址"`
  35. Source int `description:"来源 1:文章, 2:图表"`
  36. Annotation string `description:"核心观点"`
  37. ArticleTypeId int `description:"文章类型ID判断是否是研选使用"`
  38. HomeType int `description:"数据类型:0-纪要(默认); 1-微路演音频"`
  39. Readnum int `description:"阅读数量"`
  40. IsRed bool `description:"是否标红"`
  41. Resource int `description:"来源类型,1:文章、2:产品内测"`
  42. MicroAudio *MicroAudioUnionList `description:"微路演音频"`
  43. List []*IndustrialManagementIdInt
  44. IsCollect bool `description:"本人是否收藏"`
  45. CollectNum int `description:"收藏人数"`
  46. ReportId int `description:"FICC研报ID"`
  47. }
  48. type ArticleListResp struct {
  49. ArticleId int `description:"文章id"`
  50. Title string `description:"标题"`
  51. TitleEn string `description:"英文标题 "`
  52. PublishDate string `description:"发布时间"`
  53. Body string `description:"内容"`
  54. Abstract string `description:"摘要"`
  55. ExpertBackground string `description:"专家背景"`
  56. IsResearch bool `description:"是否属于研选"`
  57. Pv int `description:"PV"`
  58. ImgUrlPc string `description:"图片链接"`
  59. CategoryId string `description:"文章分类"`
  60. HttpUrl string `description:"文章链接跳转地址"`
  61. IsNeedJump bool `description:"是否需要跳转链接地址"`
  62. Source int `description:"来源 1:文章, 2:图表"`
  63. Annotation string `description:"核心观点"`
  64. ChartPermissionName string `description:"权限名称"`
  65. ArticleTypeId int `description:"文章类型ID判断是否是研选使用"`
  66. BodyImg string `description:"文章封面图片"`
  67. DepartmentId int `description:"作者Id"`
  68. NickName string `description:"作者昵称"`
  69. IsCollect bool `description:"本人是否收藏"`
  70. IsRed bool `description:"是否标红"`
  71. CollectNum int `description:"收藏人数"`
  72. MyCollectNum int `description:"我收藏的数量"`
  73. Resource int `description:"来源类型,1:文章、2:产品内测"`
  74. Cover string `description:"封面图片"`
  75. BodyHighlight []string `description:"搜索高亮展示结果"`
  76. IsSpecial int `description:"是否为研选专栏"`
  77. IndustryTags string `description:"研选专栏行业标签"`
  78. CompanyTags string `description:"研选专栏公司标签"`
  79. SpecialColumnId int `description:"专栏栏目id"`
  80. SpecialType int `description:"专栏类型 1:笔记,2:观点"`
  81. List []*IndustrialManagementIdInt
  82. TopTime int `description:"置顶时间"`
  83. ReportId int `description:"FICC研报ID"`
  84. SubCategoryName string `description:"二级分类"`
  85. }
  86. type HomeChartListResp struct {
  87. ChartId int `description:"图表ID"`
  88. Title string `description:"标题"`
  89. TitleEn string `description:"英文标题 "`
  90. CreateDate string `description:"创建时间"`
  91. PtagName string `description:"父类名称"`
  92. CtagName string `description:"子类名称"`
  93. PtagNameTwo string `description:"父类名称"`
  94. CtagNameTwo string `description:"子类名称"`
  95. CtagNamePc string `description:"Pc端所有的分类名称"`
  96. BodyHtml string `orm:"column(cover)";description:"图片链接"`
  97. HttpUrl string `orm:"column(iframe)";description:"文章链接跳转地址"`
  98. IsNeedJump bool `description:"是否需要跳转链接地址"`
  99. IsTop bool `description:"是否置顶"`
  100. NumTop int `description:"置顶数量"`
  101. Source int `description:"来源 1:文章, 2:图表"`
  102. LabelList []*LabelList `description:"图表标签列表"`
  103. }
  104. type LabelList struct {
  105. PtagName string `description:"父类名称"`
  106. CtagName string `description:"子类名称"`
  107. }
  108. func GetHomeCount(condition string, pars []interface{}) (count int, err error) {
  109. o := orm.NewOrm()
  110. sql := `SELECT COUNT(1) AS count
  111. FROM cygx_article AS a
  112. WHERE a.publish_status=1 `
  113. if condition != "" {
  114. sql += condition
  115. }
  116. err = o.Raw(sql, pars).QueryRow(&count)
  117. return
  118. }
  119. func GetHomeList(condition string, pars []interface{}, startSize, pageSize int) (items []*HomeArticle, err error) {
  120. o := orm.NewOrm()
  121. sql := ` SELECT * ,(SELECT count(1) FROM cygx_article_history_record_newpv as h WHERE h.article_id = a.article_id ) as pv
  122. FROM cygx_article AS a
  123. WHERE a.publish_status=1 `
  124. if condition != "" {
  125. sql += condition
  126. }
  127. sql += ` ORDER BY publish_date DESC,article_id DESC LIMIT ?,? `
  128. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  129. return
  130. }
  131. func GetHomeListNew(condition string, pars []interface{}, startSize, pageSize int) (items []*ArticleListResp, err error) {
  132. o := orm.NewOrm()
  133. sql := ` SELECT * ,(SELECT count(1) FROM cygx_article_history_record_newpv as h WHERE h.article_id = a.article_id ) as pv
  134. FROM cygx_article AS a
  135. WHERE a.publish_status=1 `
  136. if condition != "" {
  137. sql += condition
  138. }
  139. sql += ` ORDER BY publish_date DESC,article_id DESC LIMIT ?,? `
  140. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  141. return
  142. }
  143. // 获取产业报告列表
  144. func GetReportIndustrialList(condition string, pars []interface{}, categoryId, industrialManagementId, userId, startSize, pageSize int) (items []*HomeArticle, err error) {
  145. o := orm.NewOrm()
  146. sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_article_history_record AS rec WHERE rec.user_id = ` + strconv.Itoa(userId) + ` AND rec.article_id = a.article_id ) AS readnum
  147. FROM
  148. cygx_article AS a
  149. INNER JOIN cygx_industrial_article_group_management as man_g ON man_g.article_id = a.article_id
  150. WHERE
  151. a.publish_status = 1
  152. AND category_id IN (SELECT
  153. category_id
  154. FROM
  155. cygx_report_mapping
  156. WHERE
  157. chart_permission_id = any( SELECT chart_permission_id FROM cygx_report_mapping WHERE category_id = ` + strconv.Itoa(categoryId) + ` )
  158. AND match_type_name = any( SELECT match_type_name FROM cygx_report_mapping WHERE category_id = ` + strconv.Itoa(categoryId) + ` ) )
  159. AND a.is_class = 1
  160. AND man_g.industrial_management_id = ?` + condition
  161. sql += ` GROUP BY a.article_id ORDER BY publish_date DESC LIMIT ?,? `
  162. _, err = o.Raw(sql, pars, industrialManagementId, startSize, pageSize).QueryRows(&items)
  163. return
  164. }
  165. func GetHomeListPublic(condition string, pars []interface{}, startSize, pageSize int) (items []*ArticleListResp, err error) {
  166. o := orm.NewOrm()
  167. sql := ` SELECT *
  168. FROM cygx_article AS a
  169. WHERE a.publish_status=1 `
  170. if condition != "" {
  171. sql += condition
  172. }
  173. sql += ` ORDER BY publish_date DESC,article_id DESC LIMIT ?,? `
  174. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  175. return
  176. }
  177. func GetReportTacticsList(condition string, pars []interface{}, userId, startSize, pageSize int) (items []*HomeArticle, err error) {
  178. o := orm.NewOrm()
  179. sql := ` SELECT *
  180. FROM cygx_article AS a
  181. WHERE a.publish_status=1 `
  182. if condition != "" {
  183. sql += condition
  184. }
  185. sql += ` ORDER BY publish_date DESC LIMIT ?,? `
  186. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  187. return
  188. }