package cygx import ( "github.com/beego/beego/v2/client/orm" "time" ) type CygxIndustrialArticleGroupManagement struct { Id int `orm:"column(id);pk" description:"主键ID"` CygxArticleId int `description:"cygx_article表的主键ID"` ArticleId int `description:"cygx_article表的文章ID"` IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"` CreateTime time.Time `description:"创建时间"` } //新增 func AddCygxIndustrialArticleGroupManagement(item *CygxIndustrialArticleGroupManagement) (newId int64, err error) { o := orm.NewOrm() _, err = o.Insert(item) if err != nil { return } return } //列表 func GetIndustrialArticleGroupManagementList(articleId int) (items []*IndustrialActivityGroupManagementRep, err error) { o := orm.NewOrm() sql := `SELECT p.permission_name, p.chart_permission_id, m.industrial_management_id, m.industry_name FROM cygx_industrial_article_group_management AS am INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id INNER JOIN chart_permission AS p ON p.chart_permission_id = m.chart_permission_id WHERE am.article_id = ?` _, err = o.Raw(sql, articleId).QueryRows(&items) return } //通过名称获取详情 func GetIndustrialManagemenDetailByAaticle(articleId int) (item *CygxIndustrialArticleGroupManagement, err error) { o := orm.NewOrm() sql := `SELECT * FROM cygx_industrial_article_group_management WHERE article_id = ? ` err = o.Raw(sql, articleId).QueryRow(&item) return } func GetArticleIdsByIndustrialManagementId(industrialManagementId string) (articleId string, err error) { sql := ` SELECT GROUP_CONCAT( DISTINCT article_id ORDER BY id ASC SEPARATOR ',' ) AS articleId FROM cygx_industrial_article_group_management WHERE industrial_management_id IN (` + industrialManagementId + `)` o := orm.NewOrm() err = o.Raw(sql).QueryRow(&articleId) return } type ArticleIndustrialSubjectNameResp struct { ArticleId int `description:"文章id"` IndustryName string `description:"产业名称"` SubjectNameStr string `description:"关联标的"` IndustrialManagementId int `description:"产业id"` } //通过文章ID获取所关联的产业与标的 func GetCygxArticleIndustrialSubjectName(articleIds string) (items []*ArticleIndustrialSubjectNameResp, err error) { o := orm.NewOrm() sql := ` SELECT art.article_id, ( SELECT GROUP_CONCAT( DISTINCT s.subject_name SEPARATOR '/' ) FROM cygx_industrial_subject AS s WHERE s.industrial_subject_id IN ( SELECT industrial_subject_id FROM cygx_industrial_article_group_subject AS sg WHERE sg.article_id = art.article_id ) ) AS subject_name_str, ( SELECT GROUP_CONCAT( DISTINCT man.industry_name SEPARATOR '/' ) FROM cygx_industrial_management AS man WHERE 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 ) ) AS industry_name FROM cygx_article AS art WHERE art.article_id IN(` + articleIds + `)` _, err = o.Raw(sql).QueryRows(&items) return } type IndustrialArticleGroupResp struct { ArticleId int `description:"活动ID"` IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"` IndustryName string `description:"产业名称"` } //通过id 获取详情 func GetIndustrialManagemenDetailByAaticleID(articleId int) (items []*ArticleIndustrialSubjectNameResp, err error) { o := orm.NewOrm() sql := `SELECT article_id, m.industrial_management_id, industry_name FROM cygx_industrial_article_group_management AS mg INNER JOIN cygx_industrial_management AS m ON mg.industrial_management_id = m.industrial_management_id WHERE mg.article_id = ? ` _, err = o.Raw(sql, articleId).QueryRows(&items) return } //列表 func GetIndustrialArticleGroupListByarticleIds(articleIds string) (items []*IndustrialArticleGroupResp, err error) { o := orm.NewOrm() sql := `SELECT mg.*,m.industry_name FROM cygx_industrial_article_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.article_id IN (` + articleIds + `) GROUP BY mg.article_id,mg.industrial_management_id` _, err = o.Raw(sql).QueryRows(&items) return }