Răsfoiți Sursa

Merge branch 'master' of http://8.136.199.33:3000/hongze/hongze_cygx into cygx_7.3_yin_ping

xingzai 2 ani în urmă
părinte
comite
e63ff27806

+ 4 - 4
controllers/activity.go

@@ -3407,7 +3407,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 		}
 		//标签字段关联的产业与标签处理
 		for k2, v2 := range labelList {
-			labelList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName)
+			labelList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName, v2.TemporaryLabel)
 			labelList[k2].ImgUrlBg = v.ImgUrlBgs
 		}
 		list[k].List = labelList
@@ -3452,7 +3452,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 			return
 		}
 		for k2, v2 := range specialList {
-			specialList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName)
+			specialList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName, v2.TemporaryLabel)
 			specialList[k2].ImgUrlBg = "https://hzstatic.hzinsights.com/static/temp/20220426202204/20220426/XDLLsjC9XAAy8LIzQr7GsjrBbtX6.png"
 			specialList[k2].ImgUrlBg = utils.ACTIVITY_ZXDY_ImgUrl3
 		}
@@ -4394,7 +4394,7 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 		}
 		//标签字段关联的产业与标签处理
 		for k2, v2 := range labelList {
-			labelList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName)
+			labelList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName, v2.TemporaryLabel)
 			labelList[k2].Resource = 1
 		}
 		list[k].List = labelList
@@ -4438,7 +4438,7 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 			return
 		}
 		for k2, v2 := range specialList {
-			specialList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName)
+			specialList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName, v2.TemporaryLabel)
 			specialList[k2].Resource = 2
 		}
 

+ 4 - 3
controllers/yidong.go

@@ -85,14 +85,15 @@ func (this *BaseYidongController) Ativitylist() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	Ydtoklen, _ := services.GetYiDongToken()
-	url := "https://services-dev.valueonline.cn/interact/activityManageApi/getRoadshowList?access_token=" + Ydtoklen
+	token, _ := services.GetYiDongToken()
+	//url := "https://services-dev.valueonline.cn/interact/activityManageApi/getRoadshowList?access_token=" + Ydtoklen
+	url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowList?access_token=" + token
 	method := "POST"
 	//payload := strings.NewReader(`{"meetingStatus":"0,1","conveneStartStr":"2022-05-06","conveneEndStr":"2022-05-14",
 	//"lastUpdateTime":"2022-05-08 12:00:00"}`)
 
 	payload := strings.NewReader(`{
-    "meetingStatus": "0,1,2"
+    "meetingStatus": "0"
 }`)
 	client := &http.Client{}
 	req, err := http.NewRequest(method, url, payload)

+ 2 - 1
models/activity.go

@@ -605,12 +605,13 @@ type CygxActivityLabelList struct {
 	ActivityId        int    `description:"活动ID "`
 	IsShowSubjectName int    `description:"小程序内是否展示标的名称 1是 ,0否 默认0 "`
 	Resource          int    `description:"位置 ,1:活动 ,2:专项产业调研"`
+	TemporaryLabel    string `description:"临时标签"`
 }
 
 //主题列表
 func GetActivityLabelListAll(condition, sortTime string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityLabelList, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT	label,is_show_subject_name, MAX( art.activity_time ) AS timesort, MIn( art.activity_time ) AS mintimesort 
+	sql := `SELECT	label,temporary_label,is_show_subject_name, MAX( art.activity_time ) AS timesort, MIn( art.activity_time ) AS mintimesort 
 		FROM cygx_activity as art WHERE 1= 1 `
 	if condition != "" {
 		sql += condition

+ 3 - 3
models/activity_signup.go

@@ -565,9 +565,9 @@ func UpdateCygxActivitySignup(wxUser *WxUserItem) (err error) {
 }
 
 //UpdateCygxActivitySignupisMeet 修改易董的活动,用户已到会
-func UpdateCygxActivitySignupisMeet(yidongActivityId, mobile string) (err error) {
+func UpdateCygxActivitySignupisMeet(activityId int, mobile string) (err error) {
 	o := orm.NewOrm()
-	sql := `UPDATE cygx_activity_signup SET is_meeting=1 WHERE yidong_activity_id=?  AND mobile = ? `
-	_, err = o.Raw(sql, yidongActivityId, mobile).Exec()
+	sql := `UPDATE cygx_activity_signup SET is_meeting=1 WHERE activity_id=?  AND mobile = ? `
+	_, err = o.Raw(sql, activityId, mobile).Exec()
 	return
 }

+ 12 - 3
models/article.go

@@ -43,6 +43,7 @@ type CygxArticle struct {
 	VideoPlaySeconds string `description:"音频播放时长"`
 	Stock            string `description:"个股标签"`
 	FieldName        string `description:"产业标签"`
+	Annotation       string `description:"核心观点"`
 }
 
 type CygxArticleEs struct {
@@ -524,6 +525,7 @@ type ArticleResultApidate struct {
 	Type          ArticleResultApiType     `json:"type"`
 	Stock         []string                 `json:"stock"`
 	Field         ArticleField             `json:"field"`
+	Corpus        Corpus                   `json:"corpus"`
 }
 
 type ArticleField struct {
@@ -533,13 +535,20 @@ type ArticleField struct {
 	IndustryId  int    `json:"industry_id"`
 }
 
+type Corpus struct {
+	Id        int    `json:"id"`
+	ArticleId int    `json:"article_id"`
+	Corpus    string `json:"corpus"`
+}
+
 type ArticleSeries struct {
 	Name string `json:"name"`
 }
 type ArticleResultApiContent struct {
-	ArticleId int    `json:"id"`
-	Body      string `json:"body"`
-	Abstract  string `json:"abstract"`
+	ArticleId  int    `json:"id"`
+	Body       string `json:"body"`
+	Abstract   string `json:"abstract"`
+	Annotation string `json:"annotation"`
 }
 
 type ArticleResultApiAuthor struct {

+ 1 - 0
models/db.go

@@ -117,6 +117,7 @@ func init() {
 		new(CygxIndustrialActivityGroupManagement),
 		new(CygxIndustrialActivityGroupSubject),
 		new(CygxActivityVoiceHistory),
+		new(CygxThreeApiLog),
 	)
 	// 记录ORM查询日志
 	orm.Debug = true

+ 30 - 0
models/three_api_log.go

@@ -0,0 +1,30 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxThreeApiLog struct {
+	Id         int       `orm:"column(id);pk"`
+	Url        string    `description:"链接"`
+	Body       string    `description:"请求参数"`
+	Result     string    `description:"返回参数"`
+	CreateTime time.Time `description:"活动模板,带P标签"`
+	Source     int       `description:"来源1,易董"`
+}
+
+//添加日志记录
+func AddCygxThreeApiLog(item *CygxThreeApiLog) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+//三十天之后的日志自行删除
+func DeleteCygxThreeApiLog() (err error) {
+	o := orm.NewOrm()
+	sql := `DELETE FROM cygx_three_api_log WHERE  DATE_SUB(CURDATE(), INTERVAL 30 DAY) > date(create_time)`
+	_, err = o.Raw(sql).Exec()
+	return
+}

+ 6 - 3
services/activity.go

@@ -750,7 +750,7 @@ func LabelStr(label string) (labelNew string) {
 }
 
 //5.3版本活动标签字符串处理
-func LabelStrV5(label string, isShowSubjectName int) (labelNew string) {
+func LabelStrV5(label string, isShowSubjectName int, temporaryLabel string) (labelNew string) {
 	slicebr := strings.Split(label, "-")
 	if len(slicebr) > 1 {
 		if isShowSubjectName == 1 {
@@ -761,6 +761,9 @@ func LabelStrV5(label string, isShowSubjectName int) (labelNew string) {
 	} else {
 		labelNew = label
 	}
+	if temporaryLabel != "" {
+		labelNew = temporaryLabel
+	}
 	return labelNew
 }
 
@@ -1307,8 +1310,8 @@ func DoActivityOnenIdWxTemplateMsg(cont context.Context) (err error) {
 		return err
 	}
 	first := "近期所有行业活动预告,欢迎参与"
-	keyword1 := "--"
-	keyword2 := "--"
+	keyword1 := "下周活动预告"
+	keyword2 := "已发布"
 	keyword3 := ""
 	keyword4 := "点击查看下周活动列表"
 	SendActivityOnenIdWxTemplateMsg(first, keyword1, keyword2, keyword3, keyword4, openidPowerList)

+ 33 - 23
services/article.go

@@ -670,6 +670,11 @@ func GetArticleListByApi(cont context.Context) (err error) {
 	return
 }
 
+//func init() {
+//
+//	HandleArticleListByApi(7214)
+//}
+
 //处理同步过来的文章
 func HandleArticleListByApi(artcleId int) (err error) {
 	defer func() {
@@ -751,8 +756,9 @@ func HandleArticleListByApi(artcleId int) (err error) {
 		item.CreateDate = articleResult.CreateDate
 		item.PublishDate = articleResult.PublishDate.Add(time.Hour * 8)
 		item.PublishStatus = 1
-		item.Body = articleResult.Content.Body
+		item.Body = articleResult.Corpus.Corpus
 		item.Abstract = articleResult.Content.Abstract
+		item.Annotation = articleResult.Content.Annotation
 		item.CategoryName = articleResult.Industry.Name
 		item.CategoryId = exitMap[articleResult.SeriesId]
 		item.SubCategoryName = articleResult.Series.Name
@@ -772,7 +778,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 		listAuthor = append(listAuthor, itemAuthor)
 	} else {
 		// 如果这篇文章没有发布,那么就不作处理。
-		err = models.UpdateArticlePublish(0, artcleId)
+		err = models.UpdateArticlePublish(artcleId, 0)
 		if err != nil {
 			fmt.Println("UpdateArticlePublish Err:", err.Error())
 			return err
@@ -918,6 +924,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 			updateParams["FileLink"] = v.File
 			updateParams["Stock"] = v.Stock
 			updateParams["FieldName"] = v.FieldName
+			updateParams["Annotation"] = v.Annotation
 			whereParam := map[string]interface{}{"article_id": v.ArticleId}
 			err = models.UpdateByExpr(models.CygxArticle{}, whereParam, updateParams)
 			if err != nil {
@@ -956,6 +963,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 			item.MatchTypeName = matchTypeName
 			item.Stock = v.Stock
 			item.FieldName = v.FieldName
+			item.Annotation = v.Annotation
 			newId, err := models.AddCygxArticles(item)
 			if err != nil {
 				fmt.Println("AddCygxArticle Err:", err.Error())
@@ -1555,9 +1563,7 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 		}
 
 		//获取提交过推送规则的用户的 openid 并推送模版消息
-		openIditem := new(models.OpenIdList)
-		first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
-		keyword1 := "所属赛道:" + industryName
+
 		//mapActivityUserId := make(map[int]string)
 		//if articleInfo.IsSummary == 1 {
 		//	sliceSubjectId, _ := models.GetSubjectIds(articleId)
@@ -1590,24 +1596,28 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 		//	//	mapAlreadySend[openIditem.UserId] = openIditem.UserId
 		//	//}
 		//}
-		var ids []string
-		for k, _ := range mapUserIdChooseSendTypeNoPermission {
-			ids = append(ids, strconv.Itoa(k))
-		}
-		if len(ids) > 0 {
-			idStr := strings.Join(ids, ",")
-			openidIlist, err := models.GetCygxXzsChooseSendOpenIdByUserIds(idStr)
-			if err != nil {
-				return err
-			}
-			for _, item := range openidIlist {
-				openIditem.OpenId = item.OpenId
-				openIditem.UserId = item.UserId
-				if _, ok := mapAlreadySend[openIditem.UserId]; !ok {
-					SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
-				}
-			}
-		}
+
+		//openIditem := new(models.OpenIdList)
+		//first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
+		//keyword1 := "所属赛道:" + industryName
+		//var ids []string
+		//for k, _ := range mapUserIdChooseSendTypeNoPermission {
+		//	ids = append(ids, strconv.Itoa(k))
+		//}
+		//if len(ids) > 0 {
+		//	idStr := strings.Join(ids, ",")
+		//	openidIlist, err := models.GetCygxXzsChooseSendOpenIdByUserIds(idStr)
+		//	if err != nil {
+		//		return err
+		//	}
+		//	for _, item := range openidIlist {
+		//		openIditem.OpenId = item.OpenId
+		//		openIditem.UserId = item.UserId
+		//		if _, ok := mapAlreadySend[openIditem.UserId]; !ok {
+		//			SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
+		//		}
+		//	}
+		//}
 	}
 	utils.Rc.Put(cacheKey, articleId, time.Hour*12)
 	return

+ 45 - 19
services/yidong.go

@@ -179,9 +179,11 @@ func GetYiDongToken() (token string, err error) {
 
 //获取易董活动列表
 func GetYiDongActivity(cont context.Context) (err error) {
+	//func GetYiDongActivity() (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
+			go utils.SendAlarmMsg("获取易董活动列表失败:"+err.Error(), 2)
 			utils.FileLog.Info(err.Error())
 		}
 	}()
@@ -215,8 +217,16 @@ func GetYiDongActivity(cont context.Context) (err error) {
 		utils.FileLog.Info(err.Error())
 		return
 	}
-	fmt.Println(body)
-	utils.FileLog.Info(string(body))
+
+	//添加请求日志记录
+	itemApiLog := new(models.CygxThreeApiLog)
+	itemApiLog.CreateTime = time.Now()
+	itemApiLog.Source = 1
+	itemApiLog.Url = url
+	itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
+	itemApiLog.Result = string(body)
+	go models.AddCygxThreeApiLog(itemApiLog)
+
 	err = json.Unmarshal(body, &ApifoxModal)
 	if err != nil {
 		fmt.Println("Getres.PublicGetDate Err:", err.Error())
@@ -227,6 +237,7 @@ func GetYiDongActivity(cont context.Context) (err error) {
 	if err != nil {
 		fmt.Println(err)
 		utils.FileLog.Info(string(err.Error()))
+		return
 	}
 	mapOldYiDong := make(map[string]string)
 	mapOldYiDongBody := make(map[string]string)
@@ -234,18 +245,24 @@ func GetYiDongActivity(cont context.Context) (err error) {
 		mapOldYiDong[v.YidongActivityId] = v.YidongActivityId
 		mapOldYiDongBody[v.YidongActivityId] = fmt.Sprint(v.ActivityName, v.Label, v.ChartPermissionId, v.ActivityTime, v.YidongActivityEndTime, v.DistinguishedGuest)
 	}
-	fmt.Println(mapOldYiDongBody)
 	var itemsAdd []*models.CygxActivity
 	if len(ApifoxModal.Result) > 0 {
 		actList := ApifoxModal.Result
 		for _, v := range actList {
+			//同步有效性 1有效,0失效
+			if v.SyncFlag == "0" {
+				continue
+			}
 			var item = new(models.CygxActivity)
 			item.YidongActivityId = v.ID
 			item.ActivityTypeId = 3
 			item.ActivityTypeName = "公司调研电话会"
-			item.ActivityName = v.CompanyInfo + v.Title
-			item.Label = v.CompanyInfo
-			item.TemporaryLabel = v.CompanyInfo
+			sliceCompanyInfo := strings.Split(v.Title, "(")
+			companyInfo := sliceCompanyInfo[0]
+			item.ActivityName = v.Title
+			item.LastUpdatedTime = time.Now()
+			item.Label = companyInfo
+			item.TemporaryLabel = companyInfo
 			item.ChartPermissionId = GetActivityTypeIdWithYiDong(v.IndustrySwName)
 			item.ChartPermissionName = GetActivityTypeNameWithYiDong(v.IndustrySwName)
 			item.ChartPermissionNames = GetActivityTypeNameWithYiDong(v.IndustrySwName)
@@ -263,28 +280,29 @@ func GetYiDongActivity(cont context.Context) (err error) {
 			}
 			detailList := detailYidng.Resultdetail.GuestPersonList
 			for _, vdetail := range detailList {
-				item.DistinguishedGuest += vdetail.PersonName + ","
+				item.DistinguishedGuest += vdetail.PersonName + " " + vdetail.JobName + ","
 			}
 			item.DistinguishedGuest = strings.TrimRight(item.DistinguishedGuest, ",")
-			item.Body = "<p>" + "【" + v.CompanyInfo + v.Title + "】" + "<p>时间:" + v.Start + "</p>嘉宾:" + item.DistinguishedGuest + "</p>"
+			item.Body = "<p>" + "【" + v.Title + "】" + "<p>时间:" + v.Start + "</p>嘉宾:" + item.DistinguishedGuest + "</p>"
+			//fmt.Println(item.Body)
+			//return err
 			if mapOldYiDong[v.ID] == "" {
 				itemsAdd = append(itemsAdd, item)
 				newId, err := models.AddCygxActivity(item)
 				if err != nil {
 					fmt.Println(err)
 					utils.FileLog.Info(string(err.Error()))
+					return err
 				}
 
 				//把公司名称当做标的 对活动进行产业标的的关联
-				YidongActivityGroup(v.CompanyInfo, int(newId))
+				YidongActivityGroup(companyInfo, int(newId))
 			} else {
 				//如果内容主体有做变更,就修改内容
-				if mapOldYiDongBody[v.ID] != fmt.Sprint(item.ActivityName, item.Label, item.ChartPermissionId, item.ActivityTime, item.YidongActivityEndTime, item.DistinguishedGuest) {
-					//fmt.Println("修改")
-					//fmt.Println(mapOldYiDongBody[v.ID])
-					//fmt.Println(fmt.Sprint(item.ActivityName, item.Label, item.ChartPermissionId, item.ActivityTime, item.DistinguishedGuest))
+				if mapOldYiDongBody[v.ID] != fmt.Sprint(item.ActivityName+"12", item.Label, item.ChartPermissionId, item.ActivityTime, item.YidongActivityEndTime, item.DistinguishedGuest) {
 					updateParams := make(map[string]interface{})
 					updateParams["ActivityName"] = item.ActivityName
+					updateParams["Body"] = item.Body
 					updateParams["Label"] = item.Label
 					updateParams["TemporaryLabel"] = item.TemporaryLabel
 					updateParams["DistinguishedGuest"] = item.DistinguishedGuest
@@ -298,6 +316,7 @@ func GetYiDongActivity(cont context.Context) (err error) {
 					updateParams["ActivityJoinType"] = item.ActivityJoinType
 					updateParams["YidongSignUpStart"] = item.YidongSignUpStart
 					updateParams["YidongSignUpEnd"] = item.YidongSignUpEnd
+					updateParams["LastUpdatedTime"] = time.Now()
 					whereParam := map[string]interface{}{"yidong_activity_id": item.YidongActivityId}
 					err = models.UpdateByExpr(models.CygxActivity{}, whereParam, updateParams)
 					if err != nil {
@@ -344,7 +363,16 @@ func GetYiDongActivityDetail(activityId string) (detail *models.ApifoxModaldetai
 		utils.FileLog.Info(err.Error())
 		return
 	}
-	utils.FileLog.Info(string(body))
+
+	//添加请求日志记录
+	itemApiLog := new(models.CygxThreeApiLog)
+	itemApiLog.CreateTime = time.Now()
+	itemApiLog.Source = 1
+	itemApiLog.Url = url
+	itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
+	itemApiLog.Result = string(body)
+	go models.AddCygxThreeApiLog(itemApiLog)
+
 	err = json.Unmarshal(body, &ApifoxModal)
 	if err != nil {
 		fmt.Println("Getres.PublicGetDate Err:", err.Error())
@@ -360,6 +388,7 @@ func GetYiDongCreateUserInfo(user *models.WxUserItem) (userTgc string, err error
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
+			go utils.SendAlarmMsg("生成用户相关信息接口 获取用户tgc失败:"+err.Error(), 2)
 			utils.FileLog.Info(err.Error())
 		}
 	}()
@@ -395,8 +424,6 @@ func GetYiDongCreateUserInfo(user *models.WxUserItem) (userTgc string, err error
 		utils.FileLog.Info(err.Error())
 		return
 	}
-	utils.FileLog.Info(string(body))
-	fmt.Println(string(body))
 	err = json.Unmarshal(body, &ApifoxModal)
 	if err != nil {
 		fmt.Println("Getres.PublicGetDate Err:", err.Error())
@@ -464,7 +491,7 @@ func GetYiDongActivityMeeting(cont context.Context) (err error) {
 		fmt.Println("GetActivityListByYidong Err:", err.Error())
 		return err
 	}
-	fmt.Println(artivityListYidong)
+	//return err
 	if len(artivityListYidong) == 0 {
 		return err
 	}
@@ -530,7 +557,7 @@ func GetYiDongActivityMeeting(cont context.Context) (err error) {
 			}
 			for _, vresult := range ApifoxModal.Result {
 				if vresult.EndTime != "" {
-					err = models.UpdateCygxActivitySignupisMeet(v.YidongActivityId, vresult.PersonTelephone)
+					err = models.UpdateCygxActivitySignupisMeet(v.ActivityId, vresult.PersonTelephone)
 					if err != nil {
 						fmt.Println("UpdateCygxActivitySignupisMeet Err:", err.Error())
 						return err
@@ -578,7 +605,6 @@ func YidongActivityGroup(subjectName string, activityId int) (err error) {
 			subjectActivityItems = append(subjectActivityItems, subjectActivityItem)
 			mapSubjectName[v.SubjectName] = v.SubjectName
 		}
-		fmt.Println(v)
 	}
 	err = models.AddCygxActiuvityGroupMulti(industrialActivityItems, subjectActivityItems)
 	if err != nil {

+ 9 - 0
utils/common.go

@@ -723,3 +723,12 @@ func StrDateTimeToWeek(strTime string) string {
 	staweek_int := startday.Weekday().String()
 	return WeekDayMap[staweek_int]
 }
+
+//ReplaceSpaceAndWrap 去除空格跟换行
+func ReplaceSpaceAndWrap(str string) string {
+	// 去除空格
+	str = strings.Replace(str, " ", "", -1)
+	// 去除换行符
+	str = strings.Replace(str, "\n", "", -1)
+	return str
+}