12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package services
- import (
- "errors"
- "fmt"
- "hongze/hongze_cygx/models"
- "hongze/hongze_cygx/utils"
- "strings"
- )
- // 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
- }
|