123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package cygx
- import (
- "github.com/beego/beego/v2/client/orm"
- "hongze/hz_crm_api/utils"
- "time"
- )
- type CygxIndustrialActivityGroupManagement struct {
- Id int `orm:"column(id);pk" description:"主键ID"`
- ActivityId int `description:"活动ID"`
- IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
- Source int `description:"来源,1 活动,2专项调研"`
- CreateTime time.Time `description:"创建时间"`
- }
- type IndustrialActivityGroupManagementRep struct {
- IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
- IndustryName string `description:"产业名称"`
- ChartPermissionId int `description:"权限id"`
- PermissionName string `description:"行业名称"`
- ActivityId int `description:"活动ID"`
- }
- type IndustryAndSubjectName struct {
- IndustryNames string `description:"产业名称"`
- SubjectNames string `description:"标的名称"`
- TemporaryLabel string `description:"临时标签"`
- }
- // 列表
- func GetIndustrialActivityGroupManagementList(activityId, source int) (items []*IndustrialActivityGroupManagementRep, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT
- m.chart_permission_id,
- m.industrial_management_id,
- m.industry_name
- FROM
- cygx_industrial_activity_group_management AS am
- INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
- WHERE
- am.activity_id = ? AND am.source = ?`
- _, err = o.Raw(sql, activityId, source).QueryRows(&items)
- return
- }
- // 根据产业ID获取关联的对应活动
- func GetIndustrialActivityGroupManagementListByIndustriaId(industrialId, source int) (items []*IndustrialActivityGroupManagementRep, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT
- am.activity_id
- FROM
- cygx_industrial_activity_group_management AS am
- INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
- WHERE
- am.industrial_management_id = ? AND am.source = ?`
- _, err = o.Raw(sql, industrialId, source).QueryRows(&items)
- return
- }
- // 获取产业关联的活动数量
- func GetIndustrialManagementGroupActCount(industrialManagementId int) (count int, err error) {
- sqlCount := `SELECT
- COUNT( 1 ) AS count
- FROM
- cygx_industrial_activity_group_management AS am
- INNER JOIN cygx_activity AS a ON a.activity_id = am.activity_id
- INNER JOIN cygx_industrial_management as m ON m.industrial_management_id = am.industrial_management_id
- WHERE
- am.industrial_management_id =?
- AND a.publish_status = 1 `
- o := orm.NewOrmUsingDB("hz_cygx")
- err = o.Raw(sqlCount, industrialManagementId).QueryRow(&count)
- return
- }
- func GetActivityIdsByIndustrialManagementId(industrialManagementId string) (activityId string, err error) {
- sql := ` SELECT
- GROUP_CONCAT( DISTINCT activity_id ORDER BY id ASC SEPARATOR ',' ) AS activityId
- FROM
- cygx_industrial_activity_group_management WHERE industrial_management_id IN (` + industrialManagementId + `)`
- o := orm.NewOrmUsingDB("hz_cygx")
- err = o.Raw(sql).QueryRow(&activityId)
- return
- }
- type IndustrialActivityGroupResp struct {
- ActivityId int `description:"活动ID"`
- IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
- IndustryName string `description:"产业名称"`
- }
- // 列表
- func GetIndustrialActivityGroupListByactivityIds(activityIds string) (items []*IndustrialActivityGroupResp, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT mg.*,m.industry_name FROM
- cygx_industrial_activity_group_management AS mg
- INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
- WHERE 1 = 1
- AND mg.activity_id IN (` + activityIds + `) AND mg.source = 1 GROUP BY mg.activity_id,mg.industrial_management_id`
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- // 列表
- func GetIndustrialActivityGroupListByactivityIdsArr(activityIds []int, source int) (items []*IndustrialActivityGroupResp, err error) {
- lenArr := len(activityIds)
- if lenArr == 0 {
- return
- }
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT mg.*,m.industry_name FROM
- cygx_industrial_activity_group_management AS mg
- INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
- WHERE 1 = 1
- AND mg.activity_id IN (` + utils.GetOrmInReplace(lenArr) + `) AND mg.source = ? GROUP BY mg.activity_id,mg.industrial_management_id`
- _, err = o.Raw(sql, activityIds, source).QueryRows(&items)
- return
- }
- type IndustryActCountGroupByType struct {
- ActivityType string `json:"activity_type" description:"活动类型名称"`
- ActivityCount int `json:"activity_count" description:"关联的活动数"`
- }
- // GetIndustryActCountGroupByType 获取产业关联的活动数-根据活动类型分组
- func GetIndustryActCountGroupByType(industryId int) (list []*IndustryActCountGroupByType, err error) {
- sqlCount := `SELECT
- COUNT(1) AS activity_count,
- CASE
- WHEN a.chart_permission_name LIKE "%研选%" THEN
- "研选活动"
- ELSE
- "弘则活动"
- END AS activity_type
- FROM
- cygx_industrial_activity_group_management AS am
- INNER JOIN cygx_activity AS a ON a.activity_id = am.activity_id
- INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
- WHERE
- am.industrial_management_id = ? AND a.publish_status = 1
- GROUP BY
- activity_type `
- o := orm.NewOrmUsingDB("hz_cygx")
- _, err = o.Raw(sqlCount, industryId).QueryRows(&list)
- return
- }
- // 获取数量
- func GetCygxIndustrialActivityGroupManagementCount(condition string, pars []interface{}) (count int, err error) {
- sqlCount := ` SELECT COUNT(1) AS count FROM cygx_industrial_activity_group_management as art WHERE 1= 1 `
- if condition != "" {
- sqlCount += condition
- }
- o := orm.NewOrmUsingDB("hz_cygx")
- err = o.Raw(sqlCount, pars).QueryRow(&count)
- return
- }
- // CygxIndustrialActivityGroupManagement 获取活动与产业关联列表
- func GetCygxIndustrialActivityGroupManagementList(condition string, pars []interface{}) (list []*CygxIndustrialActivityGroupManagement, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT
- *
- FROM
- cygx_industrial_activity_group_management
- WHERE
- 1 = 1 `
- if condition != `` {
- sql += condition
- }
- _, err = o.Raw(sql, pars).QueryRows(&list)
- return
- }
|