industrial_activity_group_management.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package cygx
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type CygxIndustrialActivityGroupManagement struct {
  7. Id int `orm:"column(id);pk" description:"主键ID"`
  8. ActivityId int `description:"活动ID"`
  9. IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
  10. Source int `description:"来源,1 活动,2专项调研"`
  11. CreateTime time.Time `description:"创建时间"`
  12. }
  13. type IndustrialActivityGroupManagementRep struct {
  14. IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
  15. IndustryName string `description:"产业名称"`
  16. ChartPermissionId int `description:"权限id"`
  17. PermissionName string `description:"行业名称"`
  18. }
  19. type IndustryAndSubjectName struct {
  20. IndustryNames string `description:"产业名称"`
  21. SubjectNames string `description:"标的名称"`
  22. TemporaryLabel string `description:"临时标签"`
  23. }
  24. // 列表
  25. func GetIndustrialActivityGroupManagementList(activityId, source int) (items []*IndustrialActivityGroupManagementRep, err error) {
  26. o := orm.NewOrmUsingDB("hz_cygx")
  27. sql := `SELECT
  28. m.chart_permission_id,
  29. m.industrial_management_id,
  30. m.industry_name
  31. FROM
  32. cygx_industrial_activity_group_management AS am
  33. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
  34. WHERE
  35. am.activity_id = ? AND am.source = ?`
  36. _, err = o.Raw(sql, activityId, source).QueryRows(&items)
  37. return
  38. }
  39. // 获取产业关联的活动数量
  40. func GetIndustrialManagementGroupActCount(industrialManagementId int) (count int, err error) {
  41. sqlCount := `SELECT
  42. COUNT( 1 ) AS count
  43. FROM
  44. cygx_industrial_activity_group_management AS am
  45. INNER JOIN cygx_activity AS a ON a.activity_id = am.activity_id
  46. INNER JOIN cygx_industrial_management as m ON m.industrial_management_id = am.industrial_management_id
  47. WHERE
  48. am.industrial_management_id =?
  49. AND a.publish_status = 1 `
  50. o := orm.NewOrmUsingDB("hz_cygx")
  51. err = o.Raw(sqlCount, industrialManagementId).QueryRow(&count)
  52. return
  53. }
  54. func GetActivityIdsByIndustrialManagementId(industrialManagementId string) (activityId string, err error) {
  55. sql := ` SELECT
  56. GROUP_CONCAT( DISTINCT activity_id ORDER BY id ASC SEPARATOR ',' ) AS activityId
  57. FROM
  58. cygx_industrial_activity_group_management WHERE industrial_management_id IN (` + industrialManagementId + `)`
  59. o := orm.NewOrmUsingDB("hz_cygx")
  60. err = o.Raw(sql).QueryRow(&activityId)
  61. return
  62. }
  63. type IndustrialActivityGroupResp struct {
  64. ActivityId int `description:"活动ID"`
  65. IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
  66. IndustryName string `description:"产业名称"`
  67. }
  68. // 列表
  69. func GetIndustrialActivityGroupListByactivityIds(activityIds string) (items []*IndustrialActivityGroupResp, err error) {
  70. o := orm.NewOrmUsingDB("hz_cygx")
  71. sql := `SELECT mg.*,m.industry_name FROM
  72. cygx_industrial_activity_group_management AS mg
  73. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
  74. WHERE 1 = 1
  75. AND mg.activity_id IN (` + activityIds + `) AND mg.source = 1 GROUP BY mg.activity_id,mg.industrial_management_id`
  76. _, err = o.Raw(sql).QueryRows(&items)
  77. return
  78. }
  79. type IndustryActCountGroupByType struct {
  80. ActivityType string `json:"activity_type" description:"活动类型名称"`
  81. ActivityCount int `json:"activity_count" description:"关联的活动数"`
  82. }
  83. // GetIndustryActCountGroupByType 获取产业关联的活动数-根据活动类型分组
  84. func GetIndustryActCountGroupByType(industryId int) (list []*IndustryActCountGroupByType, err error) {
  85. sqlCount := `SELECT
  86. COUNT(1) AS activity_count,
  87. CASE
  88. WHEN a.chart_permission_name LIKE "%研选%" THEN
  89. "研选活动"
  90. ELSE
  91. "弘则活动"
  92. END AS activity_type
  93. FROM
  94. cygx_industrial_activity_group_management AS am
  95. INNER JOIN cygx_activity AS a ON a.activity_id = am.activity_id
  96. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
  97. WHERE
  98. am.industrial_management_id = ? AND a.publish_status = 1
  99. GROUP BY
  100. activity_type `
  101. o := orm.NewOrmUsingDB("hz_cygx")
  102. _, err = o.Raw(sqlCount, industryId).QueryRows(&list)
  103. return
  104. }
  105. // 获取数量
  106. func GetCygxIndustrialActivityGroupManagementCount(condition string, pars []interface{}) (count int, err error) {
  107. sqlCount := ` SELECT COUNT(1) AS count FROM cygx_industrial_activity_group_management as art WHERE 1= 1 `
  108. if condition != "" {
  109. sqlCount += condition
  110. }
  111. o := orm.NewOrmUsingDB("hz_cygx")
  112. err = o.Raw(sqlCount, pars).QueryRow(&count)
  113. return
  114. }
  115. // CygxIndustrialActivityGroupManagement 获取活动与产业关联列表
  116. func GetCygxIndustrialActivityGroupManagementList(condition string, pars []interface{}) (list []*CygxIndustrialActivityGroupManagement, err error) {
  117. o := orm.NewOrmUsingDB("hz_cygx")
  118. sql := `SELECT
  119. *
  120. FROM
  121. cygx_industrial_activity_group_management
  122. WHERE
  123. 1 = 1 `
  124. if condition != `` {
  125. sql += condition
  126. }
  127. _, err = o.Raw(sql, pars).QueryRows(&list)
  128. return
  129. }