|
@@ -11,6 +11,7 @@ import (
|
|
|
"html"
|
|
|
"io/ioutil"
|
|
|
nhttp "net/http"
|
|
|
+ "net/url"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
@@ -302,15 +303,15 @@ func FixArticleFirstCount(body string) (contentSub string, err error) {
|
|
|
func GetArticleListByApi(cont context.Context) (err error) {
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- fmt.Println("GetArticleListByApi Err:" + err.Error())
|
|
|
- go utils.SendAlarmMsg("获取图表信息失败", 2)
|
|
|
+ //fmt.Println("GetArticleListByApi Err:" + err.Error())
|
|
|
+ go utils.SendAlarmMsg("同步策略平台数据失败", 2)
|
|
|
go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetArticleListByApi ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
}
|
|
|
}()
|
|
|
- url := "https://vmp.hzinsights.com/v2api/articles/mp?take=100&skip=0&publish_status=2,4&order=publish_date&sort=DESC"
|
|
|
+ requestUrl := "https://vmp.hzinsights.com/v2api/articles/mp?take=100&skip=0&publish_status=2,4&order=publish_date&sort=DESC"
|
|
|
method := "GET"
|
|
|
client := &nhttp.Client{}
|
|
|
- req, err := nhttp.NewRequest(method, url, nil)
|
|
|
+ req, err := nhttp.NewRequest(method, requestUrl, nil)
|
|
|
if err != nil {
|
|
|
fmt.Println("GetListApi Err:", err.Error())
|
|
|
return err
|
|
@@ -342,6 +343,12 @@ func GetArticleListByApi(cont context.Context) (err error) {
|
|
|
fmt.Println("GetlistMap Err:", err.Error())
|
|
|
return err
|
|
|
}
|
|
|
+ openIdList, err := models.GetUserRecordListByMobile(4, utils.ArticleTaskClassMobile)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ fmt.Println(openIdList)
|
|
|
//新旧分类 反向隐射,是否归类,是否是报告,是否是纪要库
|
|
|
for _, v := range listMap {
|
|
|
exitMap[v.Id] = v.OldId
|
|
@@ -579,11 +586,78 @@ func GetArticleListByApi(cont context.Context) (err error) {
|
|
|
item.MatchTypeName = matchTypeName
|
|
|
item.Stock = v.Stock
|
|
|
item.FieldName = v.FieldName
|
|
|
- _, err = models.AddCygxArticles(item)
|
|
|
+ newId, err := models.AddCygxArticles(item)
|
|
|
if err != nil {
|
|
|
fmt.Println("AddCygxArticle Err:", err.Error())
|
|
|
return err
|
|
|
}
|
|
|
+ if v.ReportType == 2 {
|
|
|
+ var subjectStr string
|
|
|
+ var industrialManagementIdStr string
|
|
|
+ var industrialSubjectIdStr string
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ sliceSubjects := strings.Split(v.Stock, "/")
|
|
|
+ mapManagementForSubject := make(map[string]string)
|
|
|
+ if len(sliceSubjects) > 0 {
|
|
|
+ for _, vSubject := range sliceSubjects {
|
|
|
+ sliceKuohao := strings.Split(vSubject, "(") //过滤括号
|
|
|
+ sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
|
|
|
+ subject := sliceXiahuaxian[0]
|
|
|
+ subjectStr += "'" + subject + "',"
|
|
|
+ }
|
|
|
+ subjectStr = strings.TrimRight(subjectStr, ",")
|
|
|
+ if subjectStr != "" {
|
|
|
+ listIndustrial, err := models.GetIndustrialManagementForSubjecName(subjectStr)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("AddCygxArticle 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 {
|
|
|
+ industrialManagementIdStr += strconv.Itoa(vIndustrial.IndustrialManagementId) + ","
|
|
|
+ industrialSubjectIdStr += strconv.Itoa(vIndustrial.IndustrialSubjectId) + ","
|
|
|
+ mapManagementForSubject[vIndustrial.IndustryName] += vIndustrial.SubjectName + "/"
|
|
|
+ }
|
|
|
+ industrialManagementIdStr = strings.TrimRight(industrialManagementIdStr, ",")
|
|
|
+ industrialSubjectIdStr = strings.TrimRight(industrialSubjectIdStr, ",")
|
|
|
+ if industrialManagementIdStr != "" {
|
|
|
+ err = models.ReportArticleClassificationEditNew(int(newId), industrialManagementIdStr, v.ArticleId, industrialSubjectIdStr)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("ReportArticleClassificationEditNew Err:", err.Error())
|
|
|
+ //keyword1 = "新报告产业标签:【" + v.FieldName + "】,个股标签:" + subjectStr
|
|
|
+ //keyword2 = "归类失败"
|
|
|
+ //keyword3 = v.Title
|
|
|
+ //keyword4 = v.PublishDate.Format(utils.FormatDateTime)
|
|
|
+ //SendWxMsgWithArticleClassToAdmin(keyword1, keyword2, keyword3, keyword4, openIdList, articleIdInt)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var peoductName string
|
|
|
+ for mk, mv := range mapManagementForSubject {
|
|
|
+ peoductName += "【" + mk + "--" + strings.TrimRight(mv, "/") + "】"
|
|
|
+ }
|
|
|
+ keyword1 = "新报告产业标签:【" + v.FieldName + "】,个股标签:" + subjectStr
|
|
|
+ keyword2 = "已自动关联至以下产业和标的:" + peoductName
|
|
|
+ keyword3 = v.Title
|
|
|
+ keyword4 = v.PublishDate.Format(utils.FormatDateTime)
|
|
|
+ SendWxMsgWithArticleClassToAdmin(keyword1, keyword2, keyword3, keyword4, openIdList, articleIdInt)
|
|
|
+ } else {
|
|
|
+ keyword1 = "新报告产业标签:【" + v.FieldName + "】,个股标签:" + subjectStr
|
|
|
+ keyword2 = "未归类"
|
|
|
+ keyword3 = v.Title
|
|
|
+ keyword4 = v.PublishDate.Format(utils.FormatDateTime)
|
|
|
+ SendWxMsgWithArticleClassToAdmin(keyword1, keyword2, keyword3, keyword4, openIdList, articleIdInt)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return
|
|
@@ -798,3 +872,71 @@ func PushViewRecordNewRedisData(reportViewRecord *ReportViewRecord, companyId in
|
|
|
}
|
|
|
return false
|
|
|
}
|
|
|
+
|
|
|
+//func GetCeLueArticlePv() {
|
|
|
+// sum := 0
|
|
|
+// for i := 0; i <= 450; i++ {
|
|
|
+// if i >= 102 {
|
|
|
+// //GetCeLueArticlePvs(strconv.Itoa(i * 1000))
|
|
|
+// }
|
|
|
+// }
|
|
|
+// fmt.Println(sum)
|
|
|
+//}
|
|
|
+
|
|
|
+//获取策略平台报告阅读数据
|
|
|
+func GetCeLueArticlePv(cont context.Context) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg("同步策略平台阅读数据失败", 2)
|
|
|
+ go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetCeLueArticlePv ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ startTime := time.Now().Add(-time.Minute * 12).Format("2006-01-02 15:04:05")
|
|
|
+ endTime := time.Now().Format("2006-01-02 15:04:05")
|
|
|
+ requestUrl := utils.ApiUrl + "backend/statistics_access?take=1000&skip=0&sort=ASC&mode=all&"
|
|
|
+ encodeData := url.Values{}
|
|
|
+ encodeData.Add("start_dt", startTime)
|
|
|
+ encodeData.Add("end_dt", endTime)
|
|
|
+ encodeStr := encodeData.Encode()
|
|
|
+ requestUrl += encodeStr
|
|
|
+ authorization := utils.ApiAuthorization
|
|
|
+ body, err := PublicGetDate(requestUrl, authorization)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var chartResult models.CeLueArticleResultApi
|
|
|
+ err = json.Unmarshal(body, &chartResult)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range chartResult.Data {
|
|
|
+ //fmt.Println(v.ArticleId)
|
|
|
+ item := new(models.CygxCelueArticleHistoryRecord)
|
|
|
+ item.CelueHistoryId = v.CelueHistoryId
|
|
|
+ item.Mobile = v.Mobile
|
|
|
+ item.ArticleId = v.ArticleId
|
|
|
+ if v.CrmUser != nil {
|
|
|
+ item.RealName = v.CrmUser.RealName
|
|
|
+ }
|
|
|
+ if v.CompanyName != nil {
|
|
|
+ item.CompanyName = v.CompanyName.RealName
|
|
|
+ }
|
|
|
+ item.CreateDateApi = time.Now()
|
|
|
+ item.CreateTime = v.CreateDate
|
|
|
+ count, err := models.GetCeLueArticleCountById(v.CelueHistoryId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if count == 0 {
|
|
|
+ _, err := models.AddCeLueArticle(item)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+
|
|
|
+}
|