zhangchuanxing hai 3 meses
pai
achega
10a3a37a9e

+ 2 - 1
models/cygx/cygx_user_record.go

@@ -113,7 +113,7 @@ func GetCygxUserFllowOpenid(articleId int) (items []*OpenIdList, err error) {
 			INNER JOIN cygx_user_record AS cr ON cr.cygx_user_id = s.user_id 
 			INNER JOIN cygx_industrial_article_group_management as mg  ON mg.industrial_management_id = f.industrial_management_id
 		WHERE 1=1 
-			AND mg.article_id  = ?`
+			AND mg.article_id  = ?   AND f.follow_type = 1 `
 	_, err = o.Raw(sql, articleId).QueryRows(&items)
 	return
 }
@@ -183,6 +183,7 @@ func GetCygxUserFllowCeLueOpenid(categoryId int) (items []*OpenIdList, err error
 			AND s.is_refuse = 0 
 			AND s.is_subjective = 1 
 			AND s.is_objective = 1 
+			AND f.follow_type = 1 
 			AND f.category_id = ?`
 	_, err = o.Raw(sql, categoryId).QueryRows(&items)
 	return

+ 0 - 1
services/cygx/acitvity.go

@@ -1206,7 +1206,6 @@ func DoActivityOnenIdWxTemplateMsg(activityId int) (err error) {
 				mapOpenidRefuset[v.UserId] = "_"
 			}
 		}
-
 	}
 
 	var condition string

+ 25 - 0
services/cygx/research_summary.go

@@ -317,6 +317,31 @@ func DoArticleOnenIdWxTemplateMsg(articleId int, source int) (err error) {
 		mapOpenidRefuset[v.UserId] = v.OpenId
 	}
 
+	if len(detailIndustryNameList) > 0 {
+		var industrialIds []int
+		for _, v := range detailIndustryNameList {
+			industrialIds = append(industrialIds, v.IndustrialManagementId)
+		}
+		var conditionFollow string
+		var parsFollow []interface{}
+		//根据产业关注ID,获取用户不感兴趣的产业信息
+		conditionFollow = " AND  industrial_management_id IN (" + utils.GetOrmInReplace(len(industrialIds)) + ")  AND follow_type = 3  "
+		parsFollow = append(parsFollow, industrialIds)
+		userFllowListUninterested, e := cygx.GetCygxIndustryFllowList(conditionFollow, parsFollow, 0, 0)
+		if e != nil {
+			err = errors.New("GetCygxIndustryFllowList, Err: " + e.Error())
+			return
+		}
+		var userFllowNum = make(map[int]int)
+		for _, v := range userFllowListUninterested {
+			userFllowNum[v.UserId]++
+			//如果活动对应的产业数量,跟用户不感兴趣的产业数量一致,就不做推送
+			if userFllowNum[v.UserId] == len(detailIndustryNameList) {
+				mapOpenidRefuset[v.UserId] = "_"
+			}
+		}
+	}
+
 	//获取提交过推送规则的用户的 openid
 	mapUserIdChooseSend := make(map[int]int)
 	chooseSendtList, err := cygx.GetCygxXzsChooseSend("")