瀏覽代碼

no message

xingzai 3 年之前
父節點
當前提交
b6928a185e
共有 3 個文件被更改,包括 113 次插入89 次删除
  1. 5 2
      models/article.go
  2. 67 46
      services/article.go
  3. 41 41
      services/task.go

+ 5 - 2
models/article.go

@@ -545,8 +545,11 @@ type ArticleResultApiSeriesdate struct {
 }
 
 type ArticleApiMap struct {
-	Id    int `description:"新ID"`
-	OldId int `description:"旧Id"`
+	Id        int `description:"新ID"`
+	OldId     int `description:"旧Id"`
+	IsClass   int `description:"是否自动归类,1是,0否"`
+	IsReport  int `description:"是否属于报告,1是,0否"`
+	IsSummary int `description:"是否属于纪要,1是,0否"`
 }
 
 func GetArticleApiMap() (item []*ArticleApiMap, err error) {

+ 67 - 46
services/article.go

@@ -1,7 +1,6 @@
 package services
 
 import (
-	"context"
 	"encoding/json"
 	"fmt"
 	"github.com/PuerkitoBio/goquery"
@@ -272,42 +271,61 @@ func FixArticleContent(articleId int) {
 	}
 }
 
-func GetArticleListByApi(cont context.Context) (err error) {
-	url := "https://vmp.hzinsights.com/v2api/articles/mp?take=100&skip=0&publish_status=1"
+//func GetArticleListByApi(cont context.Context) (err error) {
+func GetArticleListByApi() (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("GetArticleListByApi Err:" + err.Error())
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetArticleListByApi ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+	url := "https://vmp.hzinsights.com/v2api/articles/mp?take=200&skip=0&publish_status=1"
 	method := "GET"
 	client := &nhttp.Client{}
 	req, err := nhttp.NewRequest(method, url, nil)
 	if err != nil {
 		fmt.Println("GetListApi Err:", err.Error())
-		return
+		return err
 	}
 	req.Header.Add("Authorization", "bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkiLCJwaG9uZV9udW1iZXIiOiIxMjM0NTY3ODkiLCJuYW1lIjoi5YW25LuWIiwiZW50cmFuY2UiOiJwYXNzd3dvcmQiLCJpYXQiOjE2MzQ4NzA1OTQsImV4cCI6MTYzNDg3NDE5NH0.tho2L9jsbDPn8ltEGUVDve_nHsh0Kzf6ZrSz0RcZ0ag")
 	res, err := client.Do(req)
 	if err != nil {
 		fmt.Println(err)
-		return
+		return err
 	}
 	defer res.Body.Close()
 	body, err := ioutil.ReadAll(res.Body)
 	if err != nil {
 		fmt.Println("Getres.Body Err:", err.Error())
-		return
+		return err
 	}
 	var pdfResult models.ArticleResultApi
 	err = json.Unmarshal(body, &pdfResult)
 	if err != nil {
 		fmt.Println("Getres.pdfResult Err:", err.Error())
-		return
+		return err
 	}
 	exitMap := 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
+		return err
 	}
-	//新旧分类 反向隐射
+	//新旧分类 反向隐射,是否归类,是否是报告,是否是纪要库
 	for _, v := range listMap {
 		exitMap[v.Id] = v.OldId
+		if v.IsClass == 1 {
+			classMap[v.OldId] = 1
+		}
+		if v.IsReport == 1 {
+			reportMap[v.OldId] = 1
+		}
+		if v.IsSummary == 1 {
+			summaryMap[v.OldId] = 1
+		}
 	}
 	listData := pdfResult.Data
 	var list []*models.Tactics2
@@ -354,13 +372,13 @@ func GetArticleListByApi(cont context.Context) (err error) {
 		count, err = models.GetActivityAuthorCount(v.ArticleId, v.Mobile)
 		if err != nil {
 			fmt.Println("GetCount Err:", err.Error())
-			return
+			return err
 		}
 		if count == 0 {
 			_, err = models.AddCygxActivityAuthor(v)
 			if err != nil {
 				fmt.Println("AddCygxActivityAuthor Err:", err.Error())
-				return
+				return err
 			}
 		}
 	}
@@ -368,29 +386,28 @@ func GetArticleListByApi(cont context.Context) (err error) {
 	listCustomArticle, err := models.GetCustomArticleId() //手动归类的文章,不替换文章类型
 	if err != nil {
 		fmt.Println("GetTacticsList Err:", err.Error())
-		return
+		return err
 	}
 	listGetMatchTypeName, errMatch := models.GetMatchTypeNamenNotNull() //手动归类的文章,不替换文章类型
 	if errMatch != nil {
 		fmt.Println("GetTacticsList Err:", errMatch.Error())
-		return
+		return err
 	}
-
 	fmt.Println("list len:", len(list))
-	summaryCategoryIds := "28,32,45,50,57,62,72,74,79,84,86,88,90,93,95,96" //纪要库的文章类型categoty_id
-	listSummary := strings.Split(summaryCategoryIds, ",")
+	//summaryCategoryIds := "28,32,45,50,57,62,72,74,79,84,86,88,90,93,95,96" //纪要库的文章类型categoty_id
+	//listSummary := strings.Split(summaryCategoryIds, ",")
 	noSummaryArticleIds := "3454,3456,3457,3459,2449,2450,2453,2454,2459,2530,2583,2663,2670,2699,2715,2732,2748,2759,2399,2356,2870,3173,2978,2826,3470" //非纪要库类型的文章ID
 	listNoSummaryArticleIds := strings.Split(noSummaryArticleIds, ",")
-	listPermission, errper := models.GetPermissionMappingCategoryID()
-	if errper != nil {
-		fmt.Println("GetTacticsList Err:", errper.Error())
-		return
-	}
-	summaryMap := make(map[int]int)
-	for _, vSum := range listSummary {
-		vSumInt, _ := strconv.Atoi(vSum)
-		summaryMap[vSumInt] = 1
-	}
+	//listPermission, errper := models.GetPermissionMappingCategoryID()
+	//if errper != nil {
+	//	fmt.Println("GetTacticsList Err:", errper.Error())
+	//	return
+	//}
+	//summaryMap := make(map[int]int)
+	//for _, vSum := range listSummary {
+	//	vSumInt, _ := strconv.Atoi(vSum)
+	//	summaryMap[vSumInt] = 1
+	//}
 	for k, v := range list {
 		//同步匹配类型
 		matchTypeName := ""
@@ -410,35 +427,42 @@ func GetArticleListByApi(cont context.Context) (err error) {
 				v.IsSummary = 0
 			}
 		}
-		for _, vPer := range listPermission {
-			if v.CategoryId == vPer.CategoryId {
-				v.IsReport = 1
-			}
-		}
-		if v.IsReport > 0 {
-			//是否属于策略 策略自动归类
-			//是否属于行业报告 行业报告自动归类
-			if v.CategoryId == 7 || v.CategoryId == 9 || v.CategoryId == 11 || v.CategoryId == 51 || v.CategoryId == 52 || v.CategoryId == 64 || v.CategoryId == 80 || v.CategoryId == 87 {
+
+		if _, has := reportMap[v.CategoryId]; has {
+			v.IsReport = 1
+			if _, ok := classMap[v.CategoryId]; ok {
 				v.IsClass = 1
 				v.ReportType = 1 //是否属于行业报告
 			} else {
 				v.ReportType = 2 //是否属于产业报告
 			}
 		}
+		//for _, vPer := range listPermission {
+		//	if v.CategoryId == vPer.CategoryId {
+		//		v.IsReport = 1
+		//	}
+		//}
+		//if v.IsReport > 0 {
+		//	//是否属于策略 策略自动归类
+		//	//是否属于行业报告 行业报告自动归类
+		//	if v.CategoryId == 7 || v.CategoryId == 9 || v.CategoryId == 11 || v.CategoryId == 51 || v.CategoryId == 52 || v.CategoryId == 64 || v.CategoryId == 80 || v.CategoryId == 87 {
+		//		v.IsClass = 1
+		//		v.ReportType = 1 //是否属于行业报告
+		//	} else {
+		//		v.ReportType = 2 //是否属于产业报告
+		//	}
+		//}
 		v.Department = "弘则权益研究"
-		fmt.Println(k, v.ArticleId)
-		//pDate := publishDate.Add(hh)
-		v.PublishDate = v.PublishDate
 		//判断是否已经存在
 		if v.ArticleId < 0 {
 			fmt.Println("AddCygxArticle Err:")
-			return
+			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
+			return err
 		}
 		v.Body = strings.Replace(v.Body, "http://vmp.hzinsights.com", "https://vmp.hzinsights.com", -1)
 		expertNumStr, expertContentStr, interviewDateStr, fileLink, bodyReturn := BodyAnalysis2(v.Body)
@@ -481,7 +505,6 @@ func GetArticleListByApi(cont context.Context) (err error) {
 			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))
@@ -502,16 +525,14 @@ func GetArticleListByApi(cont context.Context) (err error) {
 			updateParams["ExpertNumber"] = expertNumStr
 			updateParams["InterviewDate"] = interviewDateStr
 			//updateParams["IsClass"] = v.IsClass
-
-			if v.Department != "弘则权益研究" {
-				v.Department = "弘则权益研究"
-			}
+			v.Department = "弘则权益研究"
 			updateParams["Department"] = v.Department
 			updateParams["FileLink"] = fileLink
 			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
 			}
 		} else {
 			fmt.Println(k, v.ArticleId, "add")
@@ -545,7 +566,7 @@ func GetArticleListByApi(cont context.Context) (err error) {
 			_, err = models.AddCygxArticles(item)
 			if err != nil {
 				fmt.Println("AddCygxArticle Err:", err.Error())
-				return
+				return err
 			}
 		}
 	}

+ 41 - 41
services/task.go

@@ -14,47 +14,47 @@ import (
 
 func Task() {
 	fmt.Println("start")
-	if utils.RunMode == "release" && utils.IsTask {
-		//syncTacticsListAddreport := task.NewTask("syncTacticsListAddreport", "0 */5 * * * *", SyncTacticsListAddreport) //同步文章
-		//task.AddTask("syncTacticsListAddreport", syncTacticsListAddreport)
-		getSummarytoEs := task.NewTask("getSummarytoEs", "0 */30 * * * *", GetSummarytoEs) //同步纪要库内容到Es
-		task.AddTask("getSummarytoEs", getSummarytoEs)
-		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */5 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章
-		task.AddTask("getArticleListByApi", getArticleListByApi)
-		//会议提醒模板消息推送
-		sendActivityBeginMsg := task.NewTask("sendActivityBeginMsg", "0 */10 8-22 * * *", SendActivityBeginMsg) //会议前60分钟的提醒
-		task.AddTask("sendActivityBeginMsg", sendActivityBeginMsg)
-		sendActivityBeginMsgMeeting := task.NewTask("sendActivityBeginMsgMeeting", "0 */5 8-22 * * *", SendActivityBeginMsgMeeting) //会议前15分钟的提醒
-		task.AddTask("sendActivityBeginMsgMeeting", sendActivityBeginMsgMeeting)
-
-		//预约外呼名单,会前1小时自动发送邮件给专家组
-		sendEmailFileToExpert := task.NewTask("sendEmailFileToExpert", "0 */5 8-22 * * *", SendEmailFileToExpert) //预约外呼名单,会前1小时自动发送邮件给专家组
-		task.AddTask("sendEmailFileToExpert", sendEmailFileToExpert)
-
-		sendEmailFileForAskMsgResearch := task.NewTask("sendEmailFileForAskMsgResearch", "0 */5 8-22 * * *", SendEmailFileForAskMsgResearch) //研选系列专家电话会,会前1小时将问题列表发送给邮箱
-		task.AddTask("sendEmailFileForAskMsgResearch", sendEmailFileForAskMsgResearch)
-
-		sendEmailFileForAskMsg := task.NewTask("sendEmailFileForAskMsg", "0 */5 8-22 * * *", SendEmailFileForAskMsg) //非研选系列专家电话会,根据主持人姓名,会前15分钟将问题列表发送给至该主持人对应邮箱
-		task.AddTask("sendEmailFileForAskMsg", sendEmailFileForAskMsg)
-
-		sendEmailUserWhiteListChange := task.NewTask("sendEmailUserWhiteListChange", "0 00 17 * * *", SendEmailUserWhiteListChange) //新增 和冻结的客户白名单
-		task.AddTask("sendEmailUserWhiteListChange", sendEmailUserWhiteListChange)
-	}
-
-	if utils.IsTask {
-		//修改任务状
-		updateActivitySattus := task.NewTask("syncTacticsListAddreport", "0 */1 8-22 * * *", UpdateActivitySattus)
-		task.AddTask("updateActivitySattus", updateActivitySattus)
-
-		//更新深 和新的标签
-		updateIndustrialManagementLabel := task.NewTask("updateIndustrialManagementLabel", "0 */30 * * * *", UpdateIndustrialManagementLabel)
-		task.AddTask("updateIndustrialManagementLabel", updateIndustrialManagementLabel)
-
-		//更改对应产业的文章阅读数量
-		chageIndustrialArticleNum := task.NewTask("chageIndustrialArticleNum", "0 01 00 * * *", ChageIndustrialArticleNum) //更改对应产业的文章阅读数量
-		task.AddTask("chageIndustrialArticleNum", chageIndustrialArticleNum)
-	}
-
+	//if utils.RunMode == "release" && utils.IsTask {
+	//	//syncTacticsListAddreport := task.NewTask("syncTacticsListAddreport", "0 */5 * * * *", SyncTacticsListAddreport) //同步文章
+	//	//task.AddTask("syncTacticsListAddreport", syncTacticsListAddreport)
+	//	getSummarytoEs := task.NewTask("getSummarytoEs", "0 */30 * * * *", GetSummarytoEs) //同步纪要库内容到Es
+	//	task.AddTask("getSummarytoEs", getSummarytoEs)
+	//	getArticleListByApi := task.NewTask("getArticleListByApi", "0 */5 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章
+	//	task.AddTask("getArticleListByApi", getArticleListByApi)
+	//	//会议提醒模板消息推送
+	//	sendActivityBeginMsg := task.NewTask("sendActivityBeginMsg", "0 */10 8-22 * * *", SendActivityBeginMsg) //会议前60分钟的提醒
+	//	task.AddTask("sendActivityBeginMsg", sendActivityBeginMsg)
+	//	sendActivityBeginMsgMeeting := task.NewTask("sendActivityBeginMsgMeeting", "0 */5 8-22 * * *", SendActivityBeginMsgMeeting) //会议前15分钟的提醒
+	//	task.AddTask("sendActivityBeginMsgMeeting", sendActivityBeginMsgMeeting)
+	//
+	//	//预约外呼名单,会前1小时自动发送邮件给专家组
+	//	sendEmailFileToExpert := task.NewTask("sendEmailFileToExpert", "0 */5 8-22 * * *", SendEmailFileToExpert) //预约外呼名单,会前1小时自动发送邮件给专家组
+	//	task.AddTask("sendEmailFileToExpert", sendEmailFileToExpert)
+	//
+	//	sendEmailFileForAskMsgResearch := task.NewTask("sendEmailFileForAskMsgResearch", "0 */5 8-22 * * *", SendEmailFileForAskMsgResearch) //研选系列专家电话会,会前1小时将问题列表发送给邮箱
+	//	task.AddTask("sendEmailFileForAskMsgResearch", sendEmailFileForAskMsgResearch)
+	//
+	//	sendEmailFileForAskMsg := task.NewTask("sendEmailFileForAskMsg", "0 */5 8-22 * * *", SendEmailFileForAskMsg) //非研选系列专家电话会,根据主持人姓名,会前15分钟将问题列表发送给至该主持人对应邮箱
+	//	task.AddTask("sendEmailFileForAskMsg", sendEmailFileForAskMsg)
+	//
+	//	sendEmailUserWhiteListChange := task.NewTask("sendEmailUserWhiteListChange", "0 00 17 * * *", SendEmailUserWhiteListChange) //新增 和冻结的客户白名单
+	//	task.AddTask("sendEmailUserWhiteListChange", sendEmailUserWhiteListChange)
+	//}
+	//
+	//if utils.IsTask {
+	//	//修改任务状
+	//	updateActivitySattus := task.NewTask("syncTacticsListAddreport", "0 */1 8-22 * * *", UpdateActivitySattus)
+	//	task.AddTask("updateActivitySattus", updateActivitySattus)
+	//
+	//	//更新深 和新的标签
+	//	updateIndustrialManagementLabel := task.NewTask("updateIndustrialManagementLabel", "0 */30 * * * *", UpdateIndustrialManagementLabel)
+	//	task.AddTask("updateIndustrialManagementLabel", updateIndustrialManagementLabel)
+	//
+	//	//更改对应产业的文章阅读数量
+	//	chageIndustrialArticleNum := task.NewTask("chageIndustrialArticleNum", "0 01 00 * * *", ChageIndustrialArticleNum) //更改对应产业的文章阅读数量
+	//	task.AddTask("chageIndustrialArticleNum", chageIndustrialArticleNum)
+	//}
+	GetArticleListByApi()
 	//GetAddpArticle() //同步日度点评数据
 	task.StartTask()
 	fmt.Println("end")