industrial_management.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package models
  2. import (
  3. "rdluck_tools/orm"
  4. "strconv"
  5. )
  6. type IndustrialManagementRep struct {
  7. IndustryName string `description:"产业名称"`
  8. ChartPermissionId int `description:"权限id"`
  9. RecommendedIndex int `description:"推荐指数"`
  10. LayoutTime string `description:"布局时间"`
  11. }
  12. //产业列表 不置顶
  13. func GetIndustrialManagementAll(ChartPermissionId, uid int, orderSrt string) (items []*IndustrialManagement, err error) {
  14. o := orm.NewOrm()
  15. sql := `SELECT
  16. man.*,
  17. art.publish_date AS update_time,(
  18. SELECT COUNT( 1 ) FROM cygx_article_history_record AS rec WHERE rec.user_id = ` + strconv.Itoa(uid) + ` AND rec.article_id = art.article_id ) AS readnum
  19. FROM
  20. cygx_industrial_management AS man
  21. INNER JOIN cygx_report_mapping AS re ON re.chart_permission_id = man.chart_permission_id
  22. INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.industrial_management_id = man.industrial_management_id
  23. INNER JOIN cygx_article AS art ON art.article_id = man_g.article_id
  24. WHERE
  25. man.chart_permission_id = ?
  26. AND man.industrial_management_id NOT IN ( SELECT industrial_management_id FROM cygx_industry_top WHERE user_id = ` + strconv.Itoa(uid) + ` )
  27. AND re.report_type = 2
  28. AND art.is_report = 1
  29. GROUP BY
  30. man.industry_name
  31. ORDER BY ` + orderSrt
  32. _, err = o.Raw(sql, ChartPermissionId).QueryRows(&items)
  33. return
  34. }
  35. //产业列表 -置顶
  36. func GetIndustrialManagementTopAll(ChartPermissionId, uid int) (items []*IndustrialManagement, err error) {
  37. o := orm.NewOrm()
  38. sql := `SELECT
  39. man.*
  40. FROM
  41. cygx_industrial_management AS man
  42. INNER JOIN cygx_industry_top as top ON man.industrial_management_id = top.industrial_management_id
  43. INNER JOIN cygx_report_mapping AS re ON re.chart_permission_id = man.chart_permission_id
  44. INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.industrial_management_id = man.industrial_management_id
  45. INNER JOIN cygx_article AS art ON art.article_id = man_g.article_id
  46. WHERE
  47. man.chart_permission_id = ` + strconv.Itoa(ChartPermissionId) + `
  48. AND top.user_id = ` + strconv.Itoa(uid) + `
  49. AND re.report_type = 2
  50. AND art.is_report = 1
  51. GROUP BY
  52. man.industry_name
  53. ORDER BY
  54. top.create_time DESC`
  55. _, err = o.Raw(sql).QueryRows(&items)
  56. return
  57. }
  58. //标的列表
  59. func GetIndustrialSubjectAll(IndustrialManagementId int) (items []*IndustrialSubject, err error) {
  60. o := orm.NewOrm()
  61. sql := `SELECT * FROM cygx_industrial_subject WHERE industrial_management_id = ? `
  62. _, err = o.Raw(sql, IndustrialManagementId).QueryRows(&items)
  63. return
  64. }
  65. //分析师列表
  66. func GetIndustrialAnalystAll(IndustrialManagementId int) (items []*IndustrialAnalyst, err error) {
  67. o := orm.NewOrm()
  68. sql := `SELECT * FROM cygx_industrial_analyst where industrial_management_id = ? `
  69. _, err = o.Raw(sql, IndustrialManagementId).QueryRows(&items)
  70. return
  71. }
  72. //获取产业数量
  73. func GetIndustrialManagementCount(IndustrialManagementId int) (count int, err error) {
  74. sqlCount := ` SELECT COUNT(1) AS count FROM cygx_industrial_management WHERE industrial_management_id=? `
  75. o := orm.NewOrm()
  76. err = o.Raw(sqlCount, IndustrialManagementId).QueryRow(&count)
  77. return
  78. }
  79. func GetIndustrialManagementDetail(industrialManagementId int) (items *IndustrialManagementRep, err error) {
  80. o := orm.NewOrm()
  81. sql := `SELECT * FROM cygx_industrial_management WHERE industrial_management_id = ?`
  82. err = o.Raw(sql, industrialManagementId).QueryRow(&items)
  83. return
  84. }
  85. //获取该产业下最新的文章详情
  86. func GetIndustrialNewArticleDetail(industrialManagementId int) (item *ArticleDetail, err error) {
  87. o := orm.NewOrm()
  88. sql := `SELECT
  89. *
  90. FROM
  91. cygx_article
  92. WHERE
  93. article_id IN ( SELECT article_id FROM cygx_industrial_article_group_management WHERE industrial_management_id = ? )
  94. ORDER BY
  95. publish_date DESC
  96. LIMIT 0,1`
  97. err = o.Raw(sql, industrialManagementId).QueryRow(&item)
  98. return
  99. }