xingzai 2 lat temu
rodzic
commit
e2c202a8d8
3 zmienionych plików z 97 dodań i 153 usunięć
  1. 1 0
      models/article.go
  2. 95 152
      services/article.go
  3. 1 1
      services/wx_template_msg.go

+ 1 - 0
models/article.go

@@ -166,6 +166,7 @@ type ArticleDetail struct {
 	IsShowFollowButton      bool   `description:"是否展示关注取关按钮"`
 	IsFollowButton          bool   `description:"是否关注"`
 	IsRoadShow              bool   `description:"是否是路演精华"`
+	ReportType              int    `description:"报告类型,1行业报告,2产业报告,0无"`
 }
 
 type ArticleDetailFileLink struct {

+ 95 - 152
services/article.go

@@ -674,16 +674,17 @@ func GetArticleListByApi(cont context.Context) (err error) {
 	return
 }
 
-//func init() {
-//allList, err := models.GetArticleAll()
-//
-//fmt.Println(err)
-//for _, v := range allList {
-//	HandleArticleListByApi(v.ArticleId)
-//}
-//HandleArticleListByApi(7930)
+func init() {
+	// allList, err := models.GetArticleAll()
+	//
+	// fmt.Println(err)
+	//
+	//	for _, v := range allList {
+	//		HandleArticleListByApi(v.ArticleId)
+	//	}
+	HandleArticleListByApi(8340)
 
-//}
+}
 
 // 处理同步过来的文章
 func HandleArticleListByApi(artcleId int) (err error) {
@@ -1165,7 +1166,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 }
 
 //func init() {
-//	DoArticleOnenIdWxTemplateMsg(8081)
+//	DoArticleOnenIdWxTemplateMsg(4042)
 //}
 
 // 过滤策略平台报告,研选报告重复推送,以及权限勾选的推送
@@ -1225,74 +1226,76 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 	if chartPermissionId == utils.CE_LUE_ID || chartPermissionId == utils.GU_SHOU_ID {
 		industryName = reportMapDetail.SubCategoryName
 	} else {
-		detailIndustryNameList, err := models.GetIndustrialManagemenDetailByAaticleID(articleId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			return err
-		}
-		//如果不存在关联的产业则不推送
-		if len(detailIndustryNameList) == 0 {
-			return err
-		}
-		for _, v := range detailIndustryNameList {
-			industryName += v.IndustryName + ","
-			industrialManagementId += strconv.Itoa(v.IndustrialManagementId) + ","
-		}
-		industryName = strings.TrimRight(industryName, ",")
-		industrialManagementId = strings.TrimRight(industrialManagementId, ",")
-
-		//处理勾选了全部行业赛道的用户
-		var allIn string
-		allIn = DoXzsChooseSend(reportMapDetail.ChartPermissionName)
-		if allIn != "" {
-			allInList, err := models.GetCygxXzsChooseSendByAllIn(allIn)
+		if articleInfo.ReportType == 2 {
+			detailIndustryNameList, err := models.GetIndustrialManagemenDetailByAaticleID(articleId)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				return err
 			}
-			if len(allInList) > 0 {
-				var allInUserId string
-				for _, v := range allInList {
-					allInUserId += strconv.Itoa(v.UserId) + ","
-				}
-				allInUserId = strings.TrimRight(allInUserId, ",")
-
-				userFllowIndustrialList, err := models.GetUserFllowIndustrialListByUserIdAndIndustrial(allInUserId, industrialManagementId)
-				if err != nil && err.Error() != utils.ErrNoRow() {
-					return err
-				}
-				mapUserFllowed := make(map[string]int)
-				for _, v := range userFllowIndustrialList {
-					//用户ID与其关注的产业组成唯一索引,判断是否存在,如果不存在就进行自动关注
-					mapUserFllowed[fmt.Sprint("uid:", v.UserId, "_Industrial:", v.IndustrialManagementId)] = v.UserId
-				}
-				//获取这些allIN用户的的信息进行遍历生成需要插入的数据
-				userList, err := models.GetWxUserListByUserIds(allInUserId)
+			//如果不存在关联的产业则不推送
+			if len(detailIndustryNameList) == 0 {
+				return err
+			}
+			for _, v := range detailIndustryNameList {
+				industryName += v.IndustryName + ","
+				industrialManagementId += strconv.Itoa(v.IndustrialManagementId) + ","
+			}
+			industryName = strings.TrimRight(industryName, ",")
+			industrialManagementId = strings.TrimRight(industrialManagementId, ",")
+
+			//处理勾选了全部行业赛道的用户
+			var allIn string
+			allIn = DoXzsChooseSend(reportMapDetail.ChartPermissionName)
+			if allIn != "" {
+				allInList, err := models.GetCygxXzsChooseSendByAllIn(allIn)
 				if err != nil && err.Error() != utils.ErrNoRow() {
 					return err
 				}
-				var industryFllowItems []*models.CygxIndustryFllow
-				for _, v := range detailIndustryNameList {
-					for _, vUser := range userList {
-						//如果用户这个用户没有关注这个产业就进行自动关注
-						if mapUserFllowed[fmt.Sprint("uid:", vUser.UserId, "_Industrial:", v.IndustrialManagementId)] == 0 {
-							item := new(models.CygxIndustryFllow)
-							item.IndustrialManagementId = v.IndustrialManagementId
-							item.UserId = vUser.UserId
-							item.Email = vUser.Email
-							item.Mobile = vUser.Mobile
-							item.RealName = vUser.RealName
-							item.CompanyId = vUser.CompanyId
-							item.CompanyName = vUser.CompanyName
-							item.Source = 3
-							item.Type = 1
-							item.CreateTime = time.Now()
-							item.ModifyTime = time.Now()
-							industryFllowItems = append(industryFllowItems, item)
+				if len(allInList) > 0 {
+					var allInUserId string
+					for _, v := range allInList {
+						allInUserId += strconv.Itoa(v.UserId) + ","
+					}
+					allInUserId = strings.TrimRight(allInUserId, ",")
+
+					userFllowIndustrialList, err := models.GetUserFllowIndustrialListByUserIdAndIndustrial(allInUserId, industrialManagementId)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						return err
+					}
+					mapUserFllowed := make(map[string]int)
+					for _, v := range userFllowIndustrialList {
+						//用户ID与其关注的产业组成唯一索引,判断是否存在,如果不存在就进行自动关注
+						mapUserFllowed[fmt.Sprint("uid:", v.UserId, "_Industrial:", v.IndustrialManagementId)] = v.UserId
+					}
+					//获取这些allIN用户的的信息进行遍历生成需要插入的数据
+					userList, err := models.GetWxUserListByUserIds(allInUserId)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						return err
+					}
+					var industryFllowItems []*models.CygxIndustryFllow
+					for _, v := range detailIndustryNameList {
+						for _, vUser := range userList {
+							//如果用户这个用户没有关注这个产业就进行自动关注
+							if mapUserFllowed[fmt.Sprint("uid:", vUser.UserId, "_Industrial:", v.IndustrialManagementId)] == 0 {
+								item := new(models.CygxIndustryFllow)
+								item.IndustrialManagementId = v.IndustrialManagementId
+								item.UserId = vUser.UserId
+								item.Email = vUser.Email
+								item.Mobile = vUser.Mobile
+								item.RealName = vUser.RealName
+								item.CompanyId = vUser.CompanyId
+								item.CompanyName = vUser.CompanyName
+								item.Source = 3
+								item.Type = 1
+								item.CreateTime = time.Now()
+								item.ModifyTime = time.Now()
+								industryFllowItems = append(industryFllowItems, item)
+							}
 						}
 					}
-				}
-				err = models.AddCygxIndustryFllowMulti(industryFllowItems)
-				if err != nil {
-					go utils.SendAlarmMsg("用户关注全部赛道,出现新赛道批量添加失败 ,AddCygxIndustryFllowMulti ErrMsg:"+err.Error(), 2)
+					err = models.AddCygxIndustryFllowMulti(industryFllowItems)
+					if err != nil {
+						go utils.SendAlarmMsg("用户关注全部赛道,出现新赛道批量添加失败 ,AddCygxIndustryFllowMulti ErrMsg:"+err.Error(), 2)
+					}
 				}
 			}
 		}
@@ -1318,7 +1321,20 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 	if err != nil {
 		return err
 	}
-	//return
+
+	//行业综述报告,对所有开通了对应行业权限的客户都推送。
+	if articleInfo.ReportType == 1 {
+		for _, item := range openidPowerList {
+			first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
+			keyword1 := "所属赛道:" + articleInfo.SubCategoryName
+			openIditem := new(models.OpenIdList)
+			openIditem.OpenId = item.OpenId
+			openIditem.UserId = item.UserId
+			SendWxMsgWithArticleUpdate(first, keyword1, articleInfo.Title, articleInfo.PublishDate, articleInfo.Abstract, openIditem, articleId)
+		}
+		return err
+	}
+
 	for _, v := range openidPowerList {
 		mapOpenidPower[v.UserId] = v.OpenId
 	}
@@ -1453,27 +1469,23 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 			if mapOpenidPushed[k] != "" {
 				continue
 			}
-			chooseSendtList, err := models.GetCygxXzsChooseSend()
-			if err != nil {
-				return err
-			}
 			mapUserIdChooseSendType := make(map[int]int)
-			for _, v := range chooseSendtList {
-				if v.IsRefuse == 1 {
+			for _, vS := range chooseSendtList {
+				if vS.IsRefuse == 1 {
 					continue
 				}
 				//获取选择主客观赛道的用户
 				if reportMapDetail.PermissionType == 1 {
-					if v.IsSubjective == 1 {
-						mapUserIdChooseSendType[v.UserId] = v.UserId
+					if vS.IsSubjective == 1 {
+						mapUserIdChooseSendType[vS.UserId] = vS.UserId
 					}
 				} else if reportMapDetail.PermissionType == 2 {
-					if v.IsObjective == 1 {
-						mapUserIdChooseSendType[v.UserId] = v.UserId
+					if vS.IsObjective == 1 {
+						mapUserIdChooseSendType[vS.UserId] = vS.UserId
 					}
 				} else {
-					if v.IsSubjective == 1 || v.IsObjective == 1 {
-						mapUserIdChooseSendType[v.UserId] = v.UserId
+					if vS.IsSubjective == 1 || vS.IsObjective == 1 {
+						mapUserIdChooseSendType[vS.UserId] = vS.UserId
 					}
 				}
 			}
@@ -1519,14 +1531,6 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 						}
 					}
 				}
-				//fmt.Println("openIditem.UserId:", openIditem.UserId)
-				//if _,ok := mapActivityUserId[openIditem.UserId]; ok{
-				//	first = "您预约的调研,有关联的纪要发布/更新了"
-				//	keyword1 = industryName
-				//	SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
-				//	delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
-				//	mapAlreadySend[openIditem.UserId] = openIditem.UserId
-				//}
 			}
 
 			//如果有权限而且小助手没有提交过信息的 就做正常推送
@@ -1543,63 +1547,6 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 				mapAlreadySend[openIditem.UserId] = openIditem.UserId
 			}
 		}
-
-		//获取提交过推送规则的用户的 openid 并推送模版消息
-
-		//mapActivityUserId := make(map[int]string)
-		//if articleInfo.IsSummary == 1 {
-		//	sliceSubjectId, _ := models.GetSubjectIds(articleId)
-		//	if sliceSubjectId != ""{
-		//		appointmentList, err := models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
-		//		if err != nil {
-		//			fmt.Println("GetCygxAppointmentSummaryListBySubjectId Err:", err.Error())
-		//			return err
-		//		}
-		//		if len(appointmentList) > 0 {
-		//			for _, v := range appointmentList {
-		//				fmt.Println("mapActivityUserId:", v.UserId)
-		//				mapActivityUserId[v.UserId] += v.ActivityName + ","
-		//				first = "您预约的调研,有关联的纪要发布/更新了"
-		//				keyword1 = industryName
-		//				if _, ok := mapAlreadySend[openIditem.UserId]; !ok{
-		//					SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
-		//					delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
-		//					mapAlreadySend[openIditem.UserId] = openIditem.UserId
-		//				}
-		//			}
-		//		}
-		//	}
-		//	//fmt.Println("openIditem.UserId:", openIditem.UserId)
-		//	//if _,ok := mapActivityUserId[openIditem.UserId]; ok{
-		//	//	first = "您预约的调研,有关联的纪要发布/更新了"
-		//	//	keyword1 = industryName
-		//	//	SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
-		//	//	delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
-		//	//	mapAlreadySend[openIditem.UserId] = openIditem.UserId
-		//	//}
-		//}
-
-		//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
@@ -1994,10 +1941,6 @@ func GetReportLinkToArticleid(reportLink string) (articleId int, err error) {
 	return
 }
 
-//func init() {
-//	GetArticleStockMap()
-//}
-
 // GetArticleStockMap 获取个股标签所对应的文章ID
 func GetArticleStockMap() (mapResp map[string]int, err error) {
 	defer func() {

+ 1 - 1
services/wx_template_msg.go

@@ -625,7 +625,7 @@ func SendWxMsgWithArticleUpdate(first, keyWord1, keyWord2, keyWord3, keyWord4 st
 	sendData["keyword2"] = map[string]interface{}{"value": keyWord2, "color": "#173177"}
 	sendData["keyword3"] = map[string]interface{}{"value": keyWord3, "color": "#173177"}
 	sendData["keyword4"] = map[string]interface{}{"value": keyWord4, "color": "#173177"}
-	sendData["remark"] = map[string]interface{}{"value": "点击查看活动详情", "color": "#173177"}
+	sendData["remark"] = map[string]interface{}{"value": "点击查看报告详情", "color": "#173177"}
 	sendMap["data"] = sendData
 	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
 	return