industrial_activity_group_management.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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.NewOrm()
  27. sql := `SELECT
  28. p.permission_name,
  29. p.chart_permission_id,
  30. m.industrial_management_id,
  31. m.industry_name
  32. FROM
  33. cygx_industrial_activity_group_management AS am
  34. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
  35. INNER JOIN chart_permission AS p ON p.chart_permission_id = m.chart_permission_id
  36. WHERE
  37. am.activity_id = ? AND am.source = ?`
  38. _, err = o.Raw(sql, activityId, source).QueryRows(&items)
  39. return
  40. }
  41. // 获取产业关联的活动数量
  42. func GetIndustrialManagementGroupActCount(industrialManagementId int) (count int, err error) {
  43. sqlCount := `SELECT
  44. COUNT( 1 ) AS count
  45. FROM
  46. cygx_industrial_activity_group_management AS am
  47. INNER JOIN cygx_activity AS a ON a.activity_id = am.activity_id
  48. INNER JOIN cygx_industrial_management as m ON m.industrial_management_id = am.industrial_management_id
  49. WHERE
  50. am.industrial_management_id =?
  51. AND a.publish_status = 1 `
  52. o := orm.NewOrm()
  53. err = o.Raw(sqlCount, industrialManagementId).QueryRow(&count)
  54. return
  55. }
  56. func GetActivityIdsByIndustrialManagementId(industrialManagementId string) (activityId string, err error) {
  57. sql := ` SELECT
  58. GROUP_CONCAT( DISTINCT activity_id ORDER BY id ASC SEPARATOR ',' ) AS activityId
  59. FROM
  60. cygx_industrial_activity_group_management WHERE industrial_management_id IN (` + industrialManagementId + `)`
  61. o := orm.NewOrm()
  62. err = o.Raw(sql).QueryRow(&activityId)
  63. return
  64. }
  65. type IndustrialActivityGroupResp struct {
  66. ActivityId int `description:"活动ID"`
  67. IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
  68. IndustryName string `description:"产业名称"`
  69. }
  70. // 列表
  71. func GetIndustrialActivityGroupListByactivityIds(activityIds string) (items []*IndustrialActivityGroupResp, err error) {
  72. o := orm.NewOrm()
  73. sql := `SELECT mg.*,m.industry_name FROM
  74. cygx_industrial_activity_group_management AS mg
  75. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
  76. WHERE 1 = 1
  77. AND mg.activity_id IN (` + activityIds + `) AND mg.source = 1 GROUP BY mg.activity_id,mg.industrial_management_id`
  78. _, err = o.Raw(sql).QueryRows(&items)
  79. return
  80. }
  81. type IndustryActCountGroupByType struct {
  82. ActivityType string `json:"activity_type" description:"活动类型名称"`
  83. ActivityCount int `json:"activity_count" description:"关联的活动数"`
  84. }
  85. // GetIndustryActCountGroupByType 获取产业关联的活动数-根据活动类型分组
  86. func GetIndustryActCountGroupByType(industryId int) (list []*IndustryActCountGroupByType, err error) {
  87. sqlCount := `SELECT
  88. COUNT(1) AS activity_count,
  89. CASE
  90. WHEN a.chart_permission_name LIKE "%研选%" THEN
  91. "研选活动"
  92. ELSE
  93. "弘则活动"
  94. END AS activity_type
  95. FROM
  96. cygx_industrial_activity_group_management AS am
  97. INNER JOIN cygx_activity AS a ON a.activity_id = am.activity_id
  98. INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
  99. WHERE
  100. am.industrial_management_id = ? AND a.publish_status = 1
  101. GROUP BY
  102. activity_type `
  103. o := orm.NewOrm()
  104. _, err = o.Raw(sqlCount, industryId).QueryRows(&list)
  105. return
  106. }
  107. // 获取数量
  108. func GetCygxIndustrialActivityGroupManagementCount(condition string, pars []interface{}) (count int, err error) {
  109. sqlCount := ` SELECT COUNT(1) AS count FROM cygx_industrial_activity_group_management as art WHERE 1= 1 `
  110. if condition != "" {
  111. sqlCount += condition
  112. }
  113. o := orm.NewOrm()
  114. err = o.Raw(sqlCount, pars).QueryRow(&count)
  115. return
  116. }
  117. // CygxIndustrialActivityGroupManagement 获取活动与产业关联列表
  118. func GetCygxIndustrialActivityGroupManagementList(condition string, pars []interface{}) (list []*CygxIndustrialActivityGroupManagement, err error) {
  119. sql := `SELECT
  120. *
  121. FROM
  122. cygx_industrial_activity_group_management
  123. WHERE
  124. 1 = 1 `
  125. if condition != `` {
  126. sql += condition
  127. }
  128. _, err = orm.NewOrm().Raw(sql, pars).QueryRows(&list)
  129. return
  130. }