123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- package cygx
- import (
- "github.com/beego/beego/v2/client/orm"
- "hongze/hz_crm_api/utils"
- "strconv"
- "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.NewOrmUsingDB("hz_cygx")
- _, err = o.Insert(item)
- if err != nil {
- return
- }
- return
- }
- // 列表
- func GetIndustrialArticleGroupManagementList(articleId 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_article_group_management AS am
- INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = am.industrial_management_id
- WHERE
- am.article_id = ?`
- _, err = o.Raw(sql, articleId).QueryRows(&items)
- return
- }
- type IndustrialArticleGroupManagementRep struct {
- IndustrialManagementId int `description:"cygx_industrial_management表的主键ID"`
- IndustryName string `description:"产业名称"`
- ChartPermissionId int `description:"权限id"`
- PermissionName string `description:"行业名称"`
- ArticleId int `description:"cygx_article表的文章ID"`
- }
- // 列表
- func GetIndustrialArticleGroupManagementListByindustrialId(articleId int) (items []*IndustrialArticleGroupManagementRep, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT
- am.article_id
- FROM
- cygx_industrial_article_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 = ?`
- _, err = o.Raw(sql, articleId).QueryRows(&items)
- return
- }
- // 通过名称获取详情
- func GetIndustrialManagemenDetailByAaticle(articleId int) (item *CygxIndustrialArticleGroupManagement, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- 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.NewOrmUsingDB("hz_cygx")
- 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.NewOrmUsingDB("hz_cygx")
- 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.NewOrmUsingDB("hz_cygx")
- 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.NewOrmUsingDB("hz_cygx")
- 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
- }
- // 根据文章ID数组获取关联的产业列表
- func GetIndustrialArticleGroupListByarticleIdsArr(articleIds []int) (items []*IndustrialArticleGroupResp, err error) {
- lenArr := len(articleIds)
- if lenArr == 0 {
- return
- }
- o := orm.NewOrmUsingDB("hz_cygx")
- 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 (` + utils.GetOrmInReplace(lenArr) + `) GROUP BY mg.article_id,mg.industrial_management_id`
- _, err = o.Raw(sql, articleIds).QueryRows(&items)
- return
- }
- // 用户收藏榜start
- type IndustrialManagementHotResp struct {
- IndustrialManagementId int `orm:"column(industrial_management_id);pk" description:"产业id"`
- IndustryName string `description:"产业名称"`
- IsFollw bool `description:"是否关注"`
- FllowNum int `description:"关注数量"`
- IsNew bool `description:"是否新标签"`
- IsHot bool `description:"是否新标签"`
- IsRed bool `description:"是否标记红点"`
- Readnum int `description:"阅读数量"`
- PublishDate string `description:"发布时间"`
- MinReportTime string `description:"报告最早发布时间"`
- ArticleReadNum int `description:"文章阅读数量"`
- Source int `description:"来源 1:弘则资源包(报告)、2:研选主题(报告)"`
- IndustrialSubjectList []*CygxIndustrialSubject `description:"标的列表"`
- }
- // 产业与文章关联列表
- func GetSearchResourceList(userId int, condition string, startSize, pageSize int) (items []*IndustrialManagementHotResp, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT
- m.industry_name,
- m.industrial_management_id,
- MAX( a.publish_date ) as publish_date_order,
- MIN(a.publish_date) AS min_report_time,
- date_format( MAX( a.publish_date ), '%Y-%m-%d' ) AS publish_date,
- (SELECT COUNT(1) FROM cygx_article_history_record AS rec WHERE rec.user_id = ` + strconv.Itoa(userId) + ` AND rec.article_id=a.article_id) AS readnum
- FROM
- cygx_industrial_management AS m
- INNER JOIN cygx_industrial_article_group_management AS mg ON mg.industrial_management_id = m.industrial_management_id
- INNER JOIN cygx_article AS a ON a.article_id = mg.article_id AND a.article_type != 'lyjh'
- WHERE
- 1 = 1
- AND publish_status = 1 ` + condition + ` GROUP BY m.industrial_management_id ORDER BY publish_date_order DESC `
- if startSize > 0 || pageSize > 0 {
- sql += ` LIMIT ` + strconv.Itoa(startSize) + "," + strconv.Itoa(pageSize)
- }
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
|