|
@@ -736,7 +736,7 @@ func UpdateArticleByRedis() (err error) {
|
|
|
// //for i := 8648; i < 9004; i++ {
|
|
|
// // HandleArticleListByApi(9552)
|
|
|
// //}
|
|
|
-// HandleArticleListByApi(9551)
|
|
|
+// HandleArticleListByApi(10875)
|
|
|
// //UpdateArticleResourceData(9551)
|
|
|
//}
|
|
|
|
|
@@ -864,6 +864,19 @@ func HandleArticleListByApi(artcleId int) (err error) {
|
|
|
item.CategoryIdTwo = exitMap[articleResult.SeriesId]
|
|
|
item.SubCategoryName = articleResult.Series.Name
|
|
|
item.Cover = cover
|
|
|
+
|
|
|
+ {
|
|
|
+ //这两种情况特殊处理
|
|
|
+ if articleResult.Field.Name == "宏观利率" {
|
|
|
+ item.CategoryId = 10070
|
|
|
+ item.CategoryIdTwo = item.CategoryId
|
|
|
+ }
|
|
|
+ if articleResult.Field.Name == "信用" {
|
|
|
+ item.CategoryId = 10082
|
|
|
+ item.CategoryIdTwo = item.CategoryId
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if len(articleResult.Stock) > 0 {
|
|
|
var stock string
|
|
|
for _, vS := range articleResult.Stock {
|
|
@@ -2287,3 +2300,400 @@ func GetYxArticleIdMap(articleIds []int) (mapResp map[int]bool) {
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+//func init() {
|
|
|
+//
|
|
|
+// listarticle, err := models.GetArticleInit13_5()
|
|
|
+// fmt.Println(err)
|
|
|
+// fmt.Println("listarticle", len(listarticle))
|
|
|
+//
|
|
|
+// for _, v := range listarticle {
|
|
|
+// HandleArticleListByApiInit13_5(v.ArticleId)
|
|
|
+// }
|
|
|
+// //HandleArticleListByApiInit13_5(10825)
|
|
|
+//
|
|
|
+//}
|
|
|
+
|
|
|
+// 处理同步过来的文章
|
|
|
+func HandleArticleListByApiInit13_5(artcleId int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg("处理同步策略平台数据失败"+"GetArticleListByApi ErrMsg:"+err.Error()+"artcleId:"+strconv.Itoa(artcleId), 2)
|
|
|
+ go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetArticleListByApi ErrMsg:"+err.Error()+"artcleId:"+strconv.Itoa(artcleId), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var clueApiUrl string
|
|
|
+ clueApiUrl = fmt.Sprint(utils.ApiUrl, "articles/", artcleId)
|
|
|
+ fmt.Println(clueApiUrl)
|
|
|
+
|
|
|
+ authorization := utils.ApiAuthorization
|
|
|
+ body, err := PublicGetDate(clueApiUrl, authorization)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var articleResultDate models.ArticleDetailResultApi
|
|
|
+ err = json.Unmarshal(body, &articleResultDate)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Getres.PublicGetDate Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ item := new(models.CygxShanghaiCompanyLog)
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.Url = clueApiUrl
|
|
|
+ item.Body = ""
|
|
|
+ item.Result = string(body)
|
|
|
+
|
|
|
+ articleResult := articleResultDate.Data
|
|
|
+
|
|
|
+ exitMap := make(map[int]int)
|
|
|
+ categoryIdMap := make(map[int]int)
|
|
|
+ classMap := make(map[int]int)
|
|
|
+ reportMap := make(map[int]int)
|
|
|
+ summaryMap := make(map[int]int)
|
|
|
+ listMap, err := models.GetArticleApiMap()
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("GetlistMap Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ //新旧分类 反向隐射,是否归类,是否是报告,是否是纪要库
|
|
|
+ for _, v := range listMap {
|
|
|
+ exitMap[v.SeriesId] = v.OldId
|
|
|
+ categoryIdMap[v.SeriesId] = v.OldIdMap
|
|
|
+ if v.IsClass == 1 {
|
|
|
+ classMap[v.OldId] = 1
|
|
|
+ }
|
|
|
+ if v.IsReport == 1 {
|
|
|
+ reportMap[v.OldId] = 1
|
|
|
+ }
|
|
|
+ if v.IsSummary == 1 {
|
|
|
+ summaryMap[v.OldId] = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var list []*models.Tactics2
|
|
|
+ var listArticleData []*models.CygxArticleData
|
|
|
+ var listAuthor []*models.CygxArticleAuthor
|
|
|
+ //如果是英文报告 ,或者香港类型那么则不同步 publish_area :all 全部 ;hk 香港
|
|
|
+ if articleResult.TypeId == 9 || articleResult.PublishArea != "all" {
|
|
|
+ // 如果是英文报告,或者是香港报告就进行删除处理
|
|
|
+ err = models.UpdateArticlePublish(artcleId, 0)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("UpdateArticlePublish Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ UpdateArticleResourceData(artcleId) //把数据写入 cygx_resource_data 表
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var cover string
|
|
|
+ if articleResult.Series.Name == "图解市场" {
|
|
|
+ cover = GetArticleCoverByChartFirst(articleResult.Content.Body)
|
|
|
+ } else if articleResult.Series.Name == "行业深度" {
|
|
|
+ cover = articleResult.Cover
|
|
|
+ }
|
|
|
+ fmt.Println(cover)
|
|
|
+ //return
|
|
|
+ //状态等于 2 跟 4 的进行同步 IsActive 为false 软删除的也不同步
|
|
|
+ if exitMap[articleResult.SeriesId] > 0 && (articleResult.PublishStatus == 2 || articleResult.PublishStatus == 4) && articleResult.IsActive {
|
|
|
+ articleResult.PublishDate = time.Date(articleResult.PublishDate.Year(), articleResult.PublishDate.Month(), articleResult.PublishDate.Day(), articleResult.PublishDate.Hour(), articleResult.PublishDate.Minute(), articleResult.PublishDate.Second(), articleResult.PublishDate.Nanosecond(), time.Local)
|
|
|
+ item := new(models.Tactics2)
|
|
|
+ itemArticleData := new(models.CygxArticleData)
|
|
|
+ itemArticleData.ArticleId = articleResult.ArticleId
|
|
|
+ itemArticleData.Cover = articleResult.Cover
|
|
|
+ itemArticleData.CreateTime = time.Now()
|
|
|
+ listArticleData = append(listArticleData, itemArticleData)
|
|
|
+ itemAuthor := new(models.CygxArticleAuthor)
|
|
|
+ item.ArticleId = articleResult.ArticleId
|
|
|
+ item.Title = articleResult.Title
|
|
|
+ item.TitleEn = articleResult.TitleEn
|
|
|
+ item.File = articleResult.File
|
|
|
+ if articleResult.Frequency == "日度" {
|
|
|
+ item.UpdateFrequency = "daily"
|
|
|
+ } else if articleResult.Frequency == "周度" {
|
|
|
+ item.UpdateFrequency = "weekly"
|
|
|
+ } else if articleResult.Frequency == "月度" {
|
|
|
+ item.UpdateFrequency = "monthly"
|
|
|
+ } else if articleResult.Frequency == "季度" {
|
|
|
+ item.UpdateFrequency = "quarterly"
|
|
|
+ } else if articleResult.Frequency == "年度" {
|
|
|
+ item.UpdateFrequency = "yearly"
|
|
|
+ } else {
|
|
|
+ item.UpdateFrequency = "unknow"
|
|
|
+ }
|
|
|
+ item.CreateDate = articleResult.CreateDate
|
|
|
+ item.PublishDate = articleResult.PublishDate.Add(time.Hour * 8)
|
|
|
+ item.PublishStatus = 1
|
|
|
+ item.Body = articleResult.Content.Body
|
|
|
+ item.Abstract = articleResult.Content.Abstract
|
|
|
+ item.Annotation = articleResult.Content.Annotation
|
|
|
+ item.CategoryName = articleResult.Industry.Name
|
|
|
+ item.CategoryId = categoryIdMap[articleResult.SeriesId]
|
|
|
+ item.CategoryIdTwo = exitMap[articleResult.SeriesId]
|
|
|
+ item.SubCategoryName = articleResult.Series.Name
|
|
|
+ item.Cover = cover
|
|
|
+
|
|
|
+ fmt.Println("item.CategoryIdTwo", item.CategoryIdTwo)
|
|
|
+ fmt.Println("item.CategoryId", item.CategoryId)
|
|
|
+
|
|
|
+ {
|
|
|
+ //这两种情况特殊处理
|
|
|
+ if articleResult.Field.Name == "宏观利率" {
|
|
|
+ item.CategoryId = 10070
|
|
|
+ item.CategoryIdTwo = item.CategoryId
|
|
|
+ }
|
|
|
+ if articleResult.Field.Name == "信用" {
|
|
|
+ item.CategoryId = 10082
|
|
|
+ item.CategoryIdTwo = item.CategoryId
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(articleResult.Stock) > 0 {
|
|
|
+ var stock string
|
|
|
+ for _, vS := range articleResult.Stock {
|
|
|
+ stock += vS + "/"
|
|
|
+ }
|
|
|
+ stock = strings.TrimRight(stock, "/")
|
|
|
+ item.Stock = stock
|
|
|
+ }
|
|
|
+ item.FieldName = articleResult.Field.Name
|
|
|
+ item.TypeName = articleResult.Type.Name
|
|
|
+ item.UpdateDate = articleResult.UpdateDate
|
|
|
+ item.CeLueFieldId = articleResult.Field.Id
|
|
|
+ list = append(list, item)
|
|
|
+ itemAuthor.ArticleId = articleResult.ArticleId
|
|
|
+ itemAuthor.Name = articleResult.Author.Name
|
|
|
+ itemAuthor.Mobile = articleResult.Author.PhoneNumber
|
|
|
+ fmt.Println(articleResult.Cover)
|
|
|
+ listAuthor = append(listAuthor, itemAuthor)
|
|
|
+ } else {
|
|
|
+ // 如果这篇文章没有发布,那么就不作处理。
|
|
|
+ err = models.UpdateArticlePublish(artcleId, 0)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("UpdateArticlePublish Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ UpdateArticleResourceData(artcleId) //把数据写入 cygx_resource_data 表
|
|
|
+ //go UpdateResourceData(artcleId, "article", "delete", time.Now().Format(utils.FormatDateTime))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("同步文章条数:", len(list))
|
|
|
+ listCustomArticle, err := models.GetCustomArticleId() //手动归类的文章,不替换文章类型
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("GetTacticsList Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ listGetMatchTypeName, errMatch := models.GetMatchTypeNamenNotNull() //手动归类的文章,不替换文章类型
|
|
|
+ if errMatch != nil {
|
|
|
+ fmt.Println("GetTacticsList Err:", errMatch.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ //mapCategoryIdSet := make(map[int]int)
|
|
|
+ //for _, vMatch := range listGetMatchTypeName {
|
|
|
+ // mapCategoryIdSet[vMatch.CategoryId] = vMatch.CategoryIdSet
|
|
|
+ //}
|
|
|
+ fmt.Println("list len:", len(list))
|
|
|
+ noSummaryArticleIds := "" //非纪要库类型的文章ID
|
|
|
+ listNoSummaryArticleIds := strings.Split(noSummaryArticleIds, ",")
|
|
|
+ for k, v := range list {
|
|
|
+ //同步匹配类型
|
|
|
+ matchTypeName := ""
|
|
|
+ for _, vMatch := range listGetMatchTypeName {
|
|
|
+ if v.CategoryId == vMatch.CategoryId {
|
|
|
+ matchTypeName = vMatch.MatchTypeName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //是否属于纪要库的数据
|
|
|
+ //if _, has := summaryMap[v.CategoryId]; has {
|
|
|
+ // v.IsSummary = 1
|
|
|
+ //}
|
|
|
+ if v.TypeName == "纪要" {
|
|
|
+ v.IsSummary = 1
|
|
|
+ }
|
|
|
+ //排除不属于纪要库类型的文章
|
|
|
+ for _, vArt := range listNoSummaryArticleIds {
|
|
|
+ vArtInt, _ := strconv.Atoi(vArt)
|
|
|
+ if v.ArticleId == vArtInt {
|
|
|
+ v.IsSummary = 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if _, has := reportMap[v.CategoryIdTwo]; has {
|
|
|
+ v.IsReport = 1
|
|
|
+ if _, ok := classMap[v.CategoryIdTwo]; ok {
|
|
|
+ v.IsClass = 1
|
|
|
+ v.ReportType = 1 //是否属于行业报告
|
|
|
+ } else {
|
|
|
+ v.ReportType = 2 //是否属于产业报告
|
|
|
+ }
|
|
|
+ }
|
|
|
+ v.Department = "弘则权益研究"
|
|
|
+ //判断是否已经存在
|
|
|
+ if v.ArticleId < 0 {
|
|
|
+ fmt.Println("AddCygxArticle Err:")
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ var count int
|
|
|
+ count, err = models.GetArticleCountById(v.ArticleId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ fmt.Println("AddCygxArticle Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ v.Body = strings.Replace(v.Body, "http://vmp.hzinsights.com", "https://vmp.hzinsights.com", -1)
|
|
|
+ expertNumStr, expertContentStr, interviewDateStr, _, bodyReturn := BodyAnalysis2(v.Body)
|
|
|
+ if strings.Index(v.Body, "报告全文(") > 0 && strings.Index(v.Body, "PDF格式报告下载.pdf") > 0 {
|
|
|
+ v.Body = strings.Replace(v.Body, "报告全文(", "", -1)
|
|
|
+ v.Body = strings.Replace(v.Body, "PDF格式报告下载.pdf", "", -1)
|
|
|
+ v.Body = strings.Replace(v.Body, "):", "", -1)
|
|
|
+ }
|
|
|
+ var titleNew string
|
|
|
+ titleNew = v.Title
|
|
|
+ // 7资金流向 、11大类资产 、51每日复盘 、80医药周报、9估值研究
|
|
|
+ if v.CategoryId == 7 || v.CategoryId == 11 || v.CategoryId == 51 || v.CategoryId == 9 {
|
|
|
+ if v.UpdateFrequency == "daily" {
|
|
|
+ var daystr string
|
|
|
+ daystr = strconv.Itoa(v.PublishDate.Day())
|
|
|
+ if len(daystr) == 1 {
|
|
|
+ daystr = "0" + daystr
|
|
|
+ }
|
|
|
+ titleNew = v.Title + "(" + strconv.Itoa(v.PublishDate.Year())[2:len(strconv.Itoa(v.PublishDate.Year()))-0] + v.PublishDate.Format("01") + daystr + ")"
|
|
|
+ } else if v.UpdateFrequency == "weekly" {
|
|
|
+ titleNew = v.Title + utils.WeekByDate(v.PublishDate)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if v.CategoryId == 80 {
|
|
|
+ titleNew = v.Title + utils.WeekByDate(v.PublishDate)
|
|
|
+ }
|
|
|
+
|
|
|
+ //类型是综述报告的,不区分是什么系列,统一归类到对应产业的路演精华
|
|
|
+ if articleResult.Type.Name == "综述报告" {
|
|
|
+ detailCategory, err := models.GetdetailByCategoryIdLyjh(v.CategoryIdTwo)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ v.CategoryId = detailCategory.CategoryId
|
|
|
+ v.IsSummary = 0
|
|
|
+ }
|
|
|
+
|
|
|
+ if count > 0 {
|
|
|
+ fmt.Println(k, v.ArticleId, "edit")
|
|
|
+
|
|
|
+ bodyText, _ := GetReportContentTextSubNew(v.Body)
|
|
|
+
|
|
|
+ var isCustom bool
|
|
|
+ updateParams := make(map[string]interface{})
|
|
|
+ //updateParams["Title"] = v.Title
|
|
|
+ updateParams["Title"] = titleNew
|
|
|
+ updateParams["TitleEn"] = v.TitleEn
|
|
|
+ updateParams["UpdateFrequency"] = v.UpdateFrequency
|
|
|
+ updateParams["CreateDate"] = v.CreateDate
|
|
|
+ updateParams["PublishDate"] = v.PublishDate
|
|
|
+ //updateParams["Body"] = html.EscapeString(v.Body)
|
|
|
+ updateParams["Body"] = html.EscapeString(bodyReturn)
|
|
|
+ updateParams["BodyText"] = bodyText
|
|
|
+ updateParams["Abstract"] = html.EscapeString(v.Abstract)
|
|
|
+ updateParams["CategoryName"] = v.CategoryName
|
|
|
+ for _, vCustom := range listCustomArticle {
|
|
|
+ if v.ArticleId == vCustom.ArticleId {
|
|
|
+ fmt.Println("手动归类的文章:" + strconv.Itoa(v.ArticleId))
|
|
|
+ isCustom = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if isCustom == false {
|
|
|
+ updateParams["CategoryId"] = v.CategoryId
|
|
|
+ updateParams["MatchTypeName"] = matchTypeName
|
|
|
+ updateParams["IsSummary"] = v.IsSummary
|
|
|
+ updateParams["IsReport"] = v.IsReport
|
|
|
+ updateParams["ReportType"] = v.ReportType
|
|
|
+ updateParams["SubCategoryName"] = v.SubCategoryName
|
|
|
+ }
|
|
|
+ //updateParams["CategoryId"] = v.CategoryId
|
|
|
+ updateParams["PublishStatus"] = 1
|
|
|
+ updateParams["ExpertBackground"] = expertContentStr
|
|
|
+ updateParams["ExpertNumber"] = expertNumStr
|
|
|
+ updateParams["InterviewDate"] = interviewDateStr
|
|
|
+ //updateParams["IsClass"] = v.IsClass
|
|
|
+ v.Department = "弘则权益研究"
|
|
|
+ updateParams["Department"] = v.Department
|
|
|
+ updateParams["FileLink"] = v.File
|
|
|
+ updateParams["Stock"] = v.Stock
|
|
|
+ updateParams["FieldName"] = v.FieldName
|
|
|
+ updateParams["Annotation"] = v.Annotation
|
|
|
+ updateParams["TypeName"] = v.TypeName
|
|
|
+ updateParams["ModifyTimeByCl"] = v.UpdateDate
|
|
|
+ updateParams["CeLueFieldId"] = v.CeLueFieldId
|
|
|
+ updateParams["Cover"] = v.Cover
|
|
|
+ //whereParam := map[string]interface{}{"article_id": v.ArticleId}
|
|
|
+ //err = models.UpdateByExpr(models.CygxArticle{}, whereParam, updateParams)
|
|
|
+ //if err != nil {
|
|
|
+ // fmt.Println("UpdateByExpr Err:" + err.Error())
|
|
|
+ // return err
|
|
|
+ //}
|
|
|
+ fmt.Println("v.ReportType", v.ReportType)
|
|
|
+
|
|
|
+ //if v.ReportType == 2 {
|
|
|
+ var subjectStr string
|
|
|
+ var industrialManagementIdStr string
|
|
|
+ var industrialSubjectIdStr string
|
|
|
+
|
|
|
+ sliceSubjects := strings.Split(v.Stock, "/")
|
|
|
+ mapManagementForSubject := make(map[string]string)
|
|
|
+ mapIndustrialId := make(map[int]int)
|
|
|
+ if len(sliceSubjects) > 0 {
|
|
|
+ for _, vSubject := range sliceSubjects {
|
|
|
+ sliceKuohao := strings.Split(vSubject, "(") //过滤括号
|
|
|
+ sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
|
|
|
+ subject := sliceXiahuaxian[0]
|
|
|
+ subjectStr += "'" + subject + "',"
|
|
|
+ }
|
|
|
+ //获取该产业下所对应的行业图片
|
|
|
+ detailCategory, errCategory := models.GetdetailByCategoryIdOne(v.CategoryId)
|
|
|
+ if errCategory != nil {
|
|
|
+ fmt.Println("GetdetailByCategoryIdOne Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ subjectStr = strings.TrimRight(subjectStr, ",")
|
|
|
+ if subjectStr != "" {
|
|
|
+ listIndustrial, err := models.GetIndustrialManagementForSubjecName(subjectStr, detailCategory.ChartPermissionId)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("GetIndustrialManagementForSubjecName Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ subjectStr = strings.Replace(subjectStr, "','", "】【", -1)
|
|
|
+ subjectStr = strings.Replace(subjectStr, "'", "", -1)
|
|
|
+ subjectStr = "【" + subjectStr + "】"
|
|
|
+ if len(listIndustrial) > 0 {
|
|
|
+ for _, vIndustrial := range listIndustrial {
|
|
|
+ if _, ok := mapIndustrialId[vIndustrial.IndustrialManagementId]; !ok {
|
|
|
+ industrialManagementIdStr += strconv.Itoa(vIndustrial.IndustrialManagementId) + ","
|
|
|
+ }
|
|
|
+ mapIndustrialId[vIndustrial.IndustrialManagementId] = vIndustrial.IndustrialManagementId
|
|
|
+ industrialSubjectIdStr += strconv.Itoa(vIndustrial.IndustrialSubjectId) + ","
|
|
|
+ mapManagementForSubject[vIndustrial.IndustryName] += vIndustrial.SubjectName + "/"
|
|
|
+ if vIndustrial.LayoutTime == "0000-00-00 00:00:00" {
|
|
|
+ go models.UpdateIndustrialManagementLayoutTime(v.PublishDate.AddDate(0, 0, -10).Format(utils.FormatDateTime), vIndustrial.IndustrialManagementId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ industrialManagementIdStr = strings.TrimRight(industrialManagementIdStr, ",")
|
|
|
+ industrialSubjectIdStr = strings.TrimRight(industrialSubjectIdStr, ",")
|
|
|
+ if industrialManagementIdStr != "" {
|
|
|
+ err = models.ReportArticleClassificationEditNew(artcleId, industrialManagementIdStr, v.ArticleId, industrialSubjectIdStr)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("ReportArticleClassificationEditNew Err:", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //}
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ AddComprehensiveIndustrialSource("Hz", artcleId) // 同步到综合页面的搜索引擎(添加产业资源包)
|
|
|
+
|
|
|
+ AddCygxReportMappingCategoryGroupByArticleId(artcleId)
|
|
|
+ return err
|
|
|
+}
|