Browse Source

留言模板消息跳详情

xingzai 2 years ago
parent
commit
83df6f696f
6 changed files with 137 additions and 74 deletions
  1. 5 2
      controllers/micro_roadshow.go
  2. 32 42
      controllers/report.go
  3. 4 0
      services/activity.go
  4. 91 27
      services/wx_template_msg.go
  5. 1 1
      utils/config.go
  6. 4 2
      utils/constants.go

+ 5 - 2
controllers/micro_roadshow.go

@@ -324,6 +324,7 @@ func (this *MicroRoadShowController) CommentAdd() {
 		Content:     req.Content,
 		Title:       req.Title,
 	}
+	var resourceId int
 	if sourceType == 1 {
 		activityVoiceInfo, _ := models.GetCygxActivityVoiceByActivityId(req.Id)
 		if activityVoiceInfo == nil {
@@ -333,6 +334,7 @@ func (this *MicroRoadShowController) CommentAdd() {
 		}
 		item.ActivityId = req.Id
 		item.ActivityVoiceId = activityVoiceInfo.ActivityVoiceId
+		resourceId = activityVoiceInfo.ActivityId
 	} else if sourceType == 2 {
 		activityInfo, _ := models.GetCygxActivityVideoByActivityId(req.Id)
 		if activityInfo == nil {
@@ -342,6 +344,7 @@ func (this *MicroRoadShowController) CommentAdd() {
 		}
 		item.VideoId = activityInfo.VideoId
 		item.ActivityId = req.Id
+		resourceId = activityInfo.ActivityId
 	} else if sourceType == 3 {
 		item.VideoId = req.Id
 		microVideo, e := models.GetMicroRoadshowVideoById(req.Id)
@@ -351,6 +354,7 @@ func (this *MicroRoadShowController) CommentAdd() {
 			return
 		}
 		item.IndustryId = microVideo.IndustryId
+		resourceId = microVideo.IndustryId
 	}
 	_, err = models.AddArticleComment(&item)
 	if err != nil {
@@ -358,8 +362,7 @@ func (this *MicroRoadShowController) CommentAdd() {
 		br.ErrMsg = "提交留言失败,Err:" + err.Error()
 		return
 	}
-
-	services.SendWxMsgWithMicroRoadshowAsk(req, user)
+	services.SendWxMsgWithMicroRoadshowAsk(req, user, resourceId)
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"

+ 32 - 42
controllers/report.go

@@ -3226,51 +3226,41 @@ func (this *ReportController) CommentAdd() {
 		return
 	}
 
-
-	//var sendMobile string
-	//for _, v := range listEmail {
-	//	if strings.Index(activityInfo.Host, v.Name) > 0 {
-	//		sendMobile = v.Mobile
-	//	}
+	//获取销售信息
+	//sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	//if err != nil && err.Error() != utils.ErrNoRow() {
+	//	br.Msg = "提交失败"
+	//	br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+	//	return
 	//}
-	//if activityInfo.ChartPermissionId == 31 {
-	//	sendMobile = utils.ActSendMsgMobile
+	//// 给所属销售发送消息
+	//var openIdList []*models.OpenIdList
+	//if sellerItem != nil {
+	//	list, _ := models.GetWxOpenIdByMobileList(sellerItem.Mobile)
+	//	for _, idList := range list {
+	//		openIdList = append(openIdList, idList)
+	//	}
+	//	if openIdList != nil {
+	//		// 给芳姐发消息
+	//		cnf, _ := models.GetConfigByCode("tpl_msg")
+	//		if cnf != nil {
+	//			list, _ := models.GetWxOpenIdByMobileList(cnf.ConfigValue)
+	//			for _, idList := range list {
+	//				openIdList = append(openIdList, idList)
+	//			}
+	//		}
+	//		if articleId > 1000000 {
+	//			//发给汪洋
+	//			list, _ := models.GetWxOpenIdByMobileList(utils.ActSendMsgMobile)
+	//			for _, idList := range list {
+	//				openIdList = append(openIdList, idList)
+	//			}
+	//		}
+	//		services.SendCommentWxTemplateMsg(articleInfo.Title, user.CompanyName, user.RealName, sellerItem.RealName, item.CreateTime.Format(utils.FormatDateTime), req.Content, openIdList, req.ArticleId)
+	//	}
 	//}
 
-	//获取销售信息
-	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "提交失败"
-		br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-		return
-	}
-	// 给所属销售发送消息
-	var openIdList []*models.OpenIdList
-	if sellerItem != nil {
-		list, _ := models.GetWxOpenIdByMobileList(sellerItem.Mobile)
-		for _, idList := range list {
-			openIdList = append(openIdList, idList)
-		}
-		if openIdList != nil {
-			// 给芳姐发消息
-			cnf, _ := models.GetConfigByCode("tpl_msg")
-			if cnf != nil {
-				list, _ := models.GetWxOpenIdByMobileList(cnf.ConfigValue)
-				for _, idList := range list {
-					openIdList = append(openIdList, idList)
-				}
-			}
-			if articleId > 1000000{
-				//发给汪洋
-				list, _ := models.GetWxOpenIdByMobileList( utils.ActSendMsgMobile)
-				for _, idList := range list {
-					openIdList = append(openIdList, idList)
-				}
-			}
-			services.SendCommentWxTemplateMsg(articleInfo.Title, user.CompanyName, user.RealName, sellerItem.RealName, item.CreateTime.Format(utils.FormatDateTime), req.Content, openIdList, req.ArticleId)
-		}
-	}
-
+	services.SendCommentWxTemplateMsg(req, user, articleInfo)
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "提交成功"

+ 4 - 0
services/activity.go

@@ -1684,3 +1684,7 @@ func GetActivityVideoResp(mapActivityId []int) (mapItem map[int]*models.CygxActi
 	mapItem = mapActivityVideo
 	return
 }
+
+func init() {
+	fmt.Println(strings.ToUpper("IndustryReport"))
+}

+ 91 - 27
services/wx_template_msg.go

@@ -661,48 +661,105 @@ func SendActivityOnenIdWxTemplateMsg(first, keyWord1, keyWord2, keyWord3, keyWor
 }
 
 //发送用户留言提醒
-func SendCommentWxTemplateMsg(title, companyName, userName, sellerName, createTime, content string, openIdList []*models.OpenIdList, articleId int) (err error) {
+//func SendCommentWxTemplateMsg(title, companyName, userName, sellerName, createTime, content string, openIdList []*models.OpenIdList, articleId int) (err error) {
+func SendCommentWxTemplateMsg(req models.AddCygxArticleCommentReq, user *models.WxUserItem, articleInfo *models.ArticleDetail) (err error) {
 	var msg string
 	defer func() {
 		if err != nil {
 			go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
-			go utils.SendAlarmMsg(fmt.Sprint("发送用户用户留言提醒失败,文章ID:", articleId), 2)
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户用户留言提醒失败,文章ID:", req.ArticleId), 2)
 			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
 		}
 	}()
-	accessToken, err := models.GetWxAccessTokenByXzs()
-	if err != nil {
-		msg = "GetWxAccessToken Err:" + err.Error()
+
+	companyItem, e := models.GetSellerDetailAllByCompanyId(user.CompanyId)
+	if e != nil {
 		return
 	}
-	if accessToken == "" {
-		msg = "accessToken is empty"
-		return
+	if companyItem == nil {
+		msg = "获取客户所属销售信息失败,UserID:" + strconv.Itoa(user.UserId)
 	}
 	var first string
-	first = "【" + title + "】有新的留言,请及时处理"
-	keyword1 := companyName + "--" + userName + "(" + sellerName + ")"
-	keyword2 := "-"
-	keyword3 := createTime
-	keyword4 := content
-	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
-	templateId := utils.WxMsgTemplateIdAskMsgXzs
-	sendMap := make(map[string]interface{})
-	sendData := make(map[string]interface{})
-	sendMap["template_id"] = templateId
-	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(articleId)}
-	sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
-	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
-	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"}
-	sendMap["data"] = sendData
-	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_COMMENT)
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+	var redirectUrl string
+	var mobile string
+
+	first = "【" + articleInfo.Title + "】有新的留言,请及时处理"
+	keyword1 = user.CompanyName + "——" + user.RealName + "(" + companyItem.SellerName + ")"
+	keyword2 = "-"
+	keyword3 = time.Now().Format(utils.FormatDateTime)
+	keyword4 = req.Content
+	remark = ""
+	if articleInfo.ArticleId >= utils.SummaryArticleId {
+		mobile = companyItem.Mobile + "," + utils.WxMsgTemplateIdAskMsgMobilePublic + "," + utils.ActSendMsgMobile
+	} else {
+		mobile = companyItem.Mobile + "," + utils.WxMsgTemplateIdAskMsgMobilePublic
+	}
+	openIdList, e := models.GetWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl = utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(articleInfo.ArticleId)
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(req.ArticleId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
+
+	//accessToken, err := models.GetWxAccessTokenByXzs()
+	//if err != nil {
+	//	msg = "GetWxAccessToken Err:" + err.Error()
+	//	return
+	//}
+	//if accessToken == "" {
+	//	msg = "accessToken is empty"
+	//	return
+	//}
+	//var first string
+	//first = "【" + title + "】有新的留言,请及时处理"
+	//keyword1 := companyName + "--" + userName + "(" + sellerName + ")"
+	//keyword2 := "-"
+	//keyword3 := createTime
+	//keyword4 := content
+	//sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	//templateId := utils.WxMsgTemplateIdAskMsgXzs
+	//sendMap := make(map[string]interface{})
+	//sendData := make(map[string]interface{})
+	//sendMap["template_id"] = templateId
+	//sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(articleId)}
+	//sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
+	//sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
+	//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"}
+	//sendMap["data"] = sendData
+	//WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_COMMENT)
 	return
 }
 
 //微路演新增留言提问消息提醒
-func SendWxMsgWithMicroRoadshowAsk(req models.AddVideoCommnetReq, user *models.WxUserItem) (err error) {
+func SendWxMsgWithMicroRoadshowAsk(req models.AddVideoCommnetReq, user *models.WxUserItem, resourceId int) (err error) {
 	var msg string
 	defer func() {
 		if err != nil || msg != "" {
@@ -741,7 +798,14 @@ func SendWxMsgWithMicroRoadshowAsk(req models.AddVideoCommnetReq, user *models.W
 	for _, v := range openIdList {
 		openIdArr = append(openIdArr, v.OpenId)
 	}
+
+	//SourceType int    `description:"视频来源: 1-音频; 2-活动视频; 3-微路演视频 (不传默认为1)"`
 	redirectUrl := ""
+	if req.SourceType == 3 {
+		redirectUrl = utils.WX_MSG_PATH_ACTIVITY_INDUSTRYR_EPORT + strconv.Itoa(resourceId)
+	} else {
+		redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(resourceId)
+	}
 	sendInfo := new(SendWxTemplate)
 	sendInfo.First = first
 	sendInfo.Keyword1 = keyword1

+ 1 - 1
utils/config.go

@@ -72,7 +72,7 @@ var (
 	HtgjSalt                  string //海通加密使用的盐
 	HtgjName                  string //海通国际名称
 	HtgjPublicMobile          string //海通国际公共请求的手机号
-	ActSendMsgMobile          string //活动带问发送模板消息接收者的手机号
+	ActSendMsgMobile          string //活动带问发送模板消息接收者的手机号 (汪洋手机号)
 	StrategyPlatform          string //策略品台跳转链接地址
 	ArticleTaskClassMobile    string //策略平台报告自动归类消息通知对象
 	YiDongZhengTongYunUrl     string //易董 证通云请求域名

+ 4 - 2
utils/constants.go

@@ -142,8 +142,10 @@ const (
 
 //模板消息地址路由
 const (
-	WX_MSG_PATH_ARTICLE_DETAIL          = "pageMy/reportDetail/reportDetail?id="          //文章详情模板消息地址
-	WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL = "activityPages/specialDetail/specialDetail?id=" //专项调研活动模板消息地址
+	WX_MSG_PATH_ARTICLE_DETAIL           = "pageMy/reportDetail/reportDetail?id="            //文章详情模板消息地址
+	WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL  = "activityPages/specialDetail/specialDetail?id="   //专项调研活动模板消息地址
+	WX_MSG_PATH_ACTIVITY_INDUSTRYR_EPORT = "reportPages/IndustryReport/IndustryReport?id="   //产业文章列表模板消息地址
+	WX_MSG_PATH_ACTIVITY_DETAIL          = "activityPages/activityDetail/activityDetail?id=" //活动模板消息地址
 )
 
 //模板消息地址路由