industrial_article_group_management.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package cygx
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type CygxIndustrialArticleGroupManagement struct {
  7. Id int `orm:"column(id);pk" description:"主键ID"`
  8. CygxArticleId int `description:"cygx_article表的主键ID"`
  9. ArticleId int `description:"cygx_article表的文章ID"`
  10. IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
  11. CreateTime time.Time `description:"创建时间"`
  12. }
  13. //新增
  14. func AddCygxIndustrialArticleGroupManagement(item *CygxIndustrialArticleGroupManagement) (newId int64, err error) {
  15. o := orm.NewOrm()
  16. _, err = o.Insert(item)
  17. if err != nil {
  18. return
  19. }
  20. return
  21. }
  22. //列表
  23. func GetIndustrialArticleGroupManagementList(articleId int) (items []*IndustrialActivityGroupManagementRep, err error) {
  24. o := orm.NewOrm()
  25. sql := `SELECT
  26. p.permission_name,
  27. p.chart_permission_id,
  28. m.industrial_management_id,
  29. m.industry_name
  30. FROM
  31. cygx_industrial_article_group_management AS am
  32. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
  33. INNER JOIN chart_permission AS p ON p.chart_permission_id = m.chart_permission_id
  34. WHERE
  35. am.article_id = ?`
  36. _, err = o.Raw(sql, articleId).QueryRows(&items)
  37. return
  38. }
  39. //通过名称获取详情
  40. func GetIndustrialManagemenDetailByAaticle(articleId int) (item *CygxIndustrialArticleGroupManagement, err error) {
  41. o := orm.NewOrm()
  42. sql := `SELECT * FROM cygx_industrial_article_group_management WHERE article_id = ? `
  43. err = o.Raw(sql, articleId).QueryRow(&item)
  44. return
  45. }
  46. func GetArticleIdsByIndustrialManagementId(industrialManagementId string) (articleId string, err error) {
  47. sql := ` SELECT
  48. GROUP_CONCAT( DISTINCT article_id ORDER BY id ASC SEPARATOR ',' ) AS articleId
  49. FROM
  50. cygx_industrial_article_group_management WHERE industrial_management_id IN (` + industrialManagementId + `)`
  51. o := orm.NewOrm()
  52. err = o.Raw(sql).QueryRow(&articleId)
  53. return
  54. }
  55. type ArticleIndustrialSubjectNameResp struct {
  56. ArticleId int `description:"文章id"`
  57. IndustryName string `description:"产业名称"`
  58. SubjectNameStr string `description:"关联标的"`
  59. IndustrialManagementId int `description:"产业id"`
  60. }
  61. //通过文章ID获取所关联的产业与标的
  62. func GetCygxArticleIndustrialSubjectName(articleIds string) (items []*ArticleIndustrialSubjectNameResp, err error) {
  63. o := orm.NewOrm()
  64. sql := ` SELECT
  65. art.article_id,
  66. (
  67. SELECT
  68. GROUP_CONCAT( DISTINCT s.subject_name SEPARATOR '/' )
  69. FROM
  70. cygx_industrial_subject AS s
  71. WHERE
  72. s.industrial_subject_id IN ( SELECT industrial_subject_id FROM cygx_industrial_article_group_subject AS sg WHERE sg.article_id = art.article_id )
  73. ) AS subject_name_str,
  74. (
  75. SELECT
  76. GROUP_CONCAT( DISTINCT man.industry_name SEPARATOR '/' )
  77. FROM
  78. cygx_industrial_management AS man
  79. WHERE
  80. man.industrial_management_id IN ( SELECT industrial_management_id FROM cygx_industrial_article_group_management AS man_g WHERE man_g.article_id = art.article_id )
  81. ) AS industry_name
  82. FROM
  83. cygx_article AS art
  84. WHERE art.article_id IN(` + articleIds + `)`
  85. _, err = o.Raw(sql).QueryRows(&items)
  86. return
  87. }
  88. type IndustrialArticleGroupResp struct {
  89. ArticleId int `description:"活动ID"`
  90. IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
  91. IndustryName string `description:"产业名称"`
  92. }
  93. //通过id 获取详情
  94. func GetIndustrialManagemenDetailByAaticleID(articleId int) (items []*ArticleIndustrialSubjectNameResp, err error) {
  95. o := orm.NewOrm()
  96. sql := `SELECT
  97. article_id,
  98. m.industrial_management_id,
  99. industry_name
  100. FROM
  101. cygx_industrial_article_group_management AS mg
  102. INNER JOIN cygx_industrial_management AS m ON mg.industrial_management_id = m.industrial_management_id
  103. WHERE
  104. mg.article_id = ? `
  105. _, err = o.Raw(sql, articleId).QueryRows(&items)
  106. return
  107. }
  108. //列表
  109. func GetIndustrialArticleGroupListByarticleIds(articleIds string) (items []*IndustrialArticleGroupResp, err error) {
  110. o := orm.NewOrm()
  111. sql := `SELECT mg.*,m.industry_name FROM
  112. cygx_industrial_article_group_management AS mg
  113. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
  114. WHERE 1 = 1
  115. AND mg.article_id IN (` + articleIds + `) GROUP BY mg.article_id,mg.industrial_management_id`
  116. _, err = o.Raw(sql).QueryRows(&items)
  117. return
  118. }