industrial_activity_group_subject.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package cygx
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type CygxIndustrialActivityGroupSubject struct {
  7. Id int `orm:"column(id);pk" description:"主键ID"`
  8. ActivityId int `description:"活动ID"`
  9. IndustrialSubjectId int `description:"cygx_industrial_subject表的文章ID"`
  10. Source int `description:"来源,1 活动,2专项调研"`
  11. CreateTime time.Time `description:"创建时间"`
  12. }
  13. type SubjectActivityGroupManagementRep struct {
  14. IndustrialSubjectId int `description:"产业id"`
  15. SubjectName string `description:"标的名称"`
  16. ActivityId int `description:"活动ID"`
  17. }
  18. // 列表
  19. func GetSubjectActivityGroupManagementList(activityId, source int) (items []*SubjectActivityGroupManagementRep, err error) {
  20. o := orm.NewOrmUsingDB("hz_cygx")
  21. sql := `SELECT
  22. s.subject_name,
  23. s.industrial_subject_id
  24. FROM
  25. cygx_industrial_activity_group_subject AS ag
  26. INNER JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = ag.industrial_subject_id
  27. WHERE
  28. ag.activity_id = ? AND ag.source = ?`
  29. _, err = o.Raw(sql, activityId, source).QueryRows(&items)
  30. return
  31. }
  32. // 列表
  33. func GetSubjectActivityGroupManagementListBySubjectId(subjectId, source int) (items []*SubjectActivityGroupManagementRep, err error) {
  34. o := orm.NewOrmUsingDB("hz_cygx")
  35. sql := `SELECT
  36. ag.activity_id,
  37. s.subject_name,
  38. s.industrial_subject_id
  39. FROM
  40. cygx_industrial_activity_group_subject AS ag
  41. INNER JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = ag.industrial_subject_id
  42. WHERE
  43. ag.industrial_subject_id = ? AND ag.source = ?`
  44. _, err = o.Raw(sql, subjectId, source).QueryRows(&items)
  45. return
  46. }
  47. func GetActivityIdsByIndustrialSubjectId(industrialSubjectId string) (activityId string, err error) {
  48. sql := ` SELECT
  49. GROUP_CONCAT( DISTINCT activity_id ORDER BY id ASC SEPARATOR ',' ) AS activity_id
  50. FROM
  51. cygx_industrial_activity_group_subject WHERE industrial_subject_id IN (` + industrialSubjectId + `)`
  52. o := orm.NewOrmUsingDB("hz_cygx")
  53. err = o.Raw(sql).QueryRow(&activityId)
  54. return
  55. }
  56. type SubjectlActivityGroupResp struct {
  57. ActivityId int `description:"活动ID"`
  58. IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
  59. IndustrialSubjectId int `description:"标的id"`
  60. SubjectName string `description:"标的名称"`
  61. }
  62. // 列表
  63. func GetSubjectActivityGroupListByactivityIds(activityIds string) (items []*SubjectlActivityGroupResp, err error) {
  64. o := orm.NewOrmUsingDB("hz_cygx")
  65. sql := `SELECT
  66. sg.*,
  67. s.subject_name,
  68. s.industrial_management_id
  69. FROM
  70. cygx_industrial_activity_group_subject AS sg
  71. INNER JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = sg.industrial_subject_id
  72. WHERE
  73. 1 = 1
  74. AND sg.activity_id IN (` + activityIds + `) GROUP BY sg.activity_id,sg.industrial_subject_id`
  75. _, err = o.Raw(sql).QueryRows(&items)
  76. return
  77. }
  78. type IndustrySubjectActCountGroupByType struct {
  79. ActivityType string `json:"activity_type" description:"活动类型名称"`
  80. ActivityCount int `json:"activity_count" description:"关联的活动数"`
  81. }
  82. // GetIndustrySubjectActCountGroupByType 获取标的关联的活动数-根据活动类型分组
  83. func GetIndustrySubjectActCountGroupByType(subjectId int) (list []*IndustrySubjectActCountGroupByType, err error) {
  84. sqlCount := `SELECT
  85. COUNT(1) AS activity_count,
  86. CASE
  87. WHEN a.chart_permission_id = 31 THEN
  88. "研选活动"
  89. ELSE
  90. "弘则活动"
  91. END AS activity_type
  92. FROM
  93. cygx_industrial_activity_group_subject AS gsub
  94. INNER JOIN cygx_activity AS a ON a.activity_id = gsub.activity_id
  95. INNER JOIN cygx_industrial_subject AS sub ON sub.industrial_subject_id = gsub.industrial_subject_id
  96. WHERE
  97. gsub.industrial_subject_id = ? AND a.publish_status = 1
  98. GROUP BY
  99. activity_type`
  100. o := orm.NewOrmUsingDB("hz_cygx")
  101. _, err = o.Raw(sqlCount, subjectId).QueryRows(&list)
  102. return
  103. }