123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package services
- import (
- "errors"
- "fmt"
- "hongze/hongze_clpt/models"
- "hongze/hongze_clpt/utils"
- "strings"
- )
- // GetArticleGroupSubjectMap 获取文章所关联的标的
- func GetArticleGroupSubjectMap(articleIds []int) (mapResp map[int][]*models.IndustrialSubject, subjectMap map[int]string, err error) {
- lenArticleIds := len(articleIds)
- if lenArticleIds == 0 {
- return
- }
- var condition string
- var pars []interface{}
- condition = ` AND g.article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `)`
- pars = append(pars, articleIds)
- list, e := models.GetArticleGroupSubjectList(pars, condition)
- if e != nil {
- err = errors.New("GetArticleGroupSubjectList " + e.Error())
- return
- }
- listMap := make(map[int][]*models.IndustrialSubject)
- subMap := make(map[int]string)
- mapName := make(map[int]int)
- if len(list) > 0 {
- for _, v := range list {
- item := models.IndustrialSubject{
- IndustrialSubjectId: v.IndustrialSubjectId,
- IndustrialManagementId: v.IndustrialManagementId,
- SubjectName: v.SubjectName,
- }
- listMap[v.ArticleId] = append(listMap[v.ArticleId], &item)
- subMap[v.IndustrialSubjectId] = v.SubjectName
- mapName[v.IndustrialSubjectId] = v.IndustrialManagementId
- }
- }
- mapResp = listMap
- subjectMap = subMap
- return
- }
- // GetArticleGroupSubjectMapByIndustrialManagementId 通过文章ID,产业;获取文章所关联的标的
- func GetArticleGroupSubjectMapByIndustrialManagementId(articleIds []int, industrialManagementId int) (mapResp map[int][]*models.CygxIndustrialSubject) {
- var err error
- lenArticleIds := len(articleIds)
- if lenArticleIds == 0 {
- return
- }
- defer func() {
- if err != nil {
- go utils.SendAlarmMsg(fmt.Sprint("通过文章ID,产业;获取文章所关联的标的失败 ,GetArticleGroupSubjectMapByIndustrialManagementId err"+err.Error(), "articleIds:", articleIds), 2)
- }
- }()
- mapSubject := make(map[string]int)
- listSub, e := models.GetcygxIndustrialSubject(industrialManagementId)
- if e != nil {
- err = errors.New("GetcygxIndustrialSubject, Err: " + e.Error())
- return
- }
- for _, v := range listSub {
- mapSubject[v.SubjectName] = v.IndustrialSubjectId
- }
- var condition string
- var pars []interface{}
- condition += ` AND article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `) `
- pars = append(pars, articleIds)
- articleList, e := models.GetArticleList(condition, pars)
- if e != nil {
- err = errors.New("GetArticleList, Err: " + e.Error())
- return
- }
- listMap := make(map[int][]*models.CygxIndustrialSubject, 0)
- for _, v := range articleList {
- sliceSubjects := strings.Split(v.Stock, "/")
- for _, vSubject := range sliceSubjects {
- sliceKuohao := strings.Split(vSubject, "(") //过滤括号
- sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
- subject := sliceXiahuaxian[0]
- if mapSubject[subject] == 0 {
- continue
- }
- item := models.CygxIndustrialSubject{
- IndustrialSubjectId: mapSubject[subject],
- IndustrialManagementId: industrialManagementId,
- SubjectName: subject,
- }
- listMap[v.ArticleId] = append(listMap[v.ArticleId], &item)
- }
- }
- //condition = ` AND g.article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `) AND s.industrial_management_id = ? `
- //pars = append(pars, articleIds, industrialManagementId)
- //list, e := models.GetArticleGroupSubjectList(pars, condition)
- //if e != nil {
- // err = errors.New("GetArticleGroupSubjectList " + e.Error())
- // return
- //}
- //
- //if len(list) > 0 {
- // for _, v := range list {
- // item := models.CygxIndustrialSubject{
- // IndustrialSubjectId: v.IndustrialSubjectId,
- // IndustrialManagementId: v.IndustrialManagementId,
- // SubjectName: v.SubjectName,
- // }
- // listMap[v.ArticleId] = append(listMap[v.ArticleId], &item)
- // }
- //}
- mapResp = listMap
- return
- }
|