Browse Source

专项调研活动模版更换完成

zhangchuanxing 5 days ago
parent
commit
d3a2ecbc66
3 changed files with 127 additions and 133 deletions
  1. 2 3
      controllers/cygx/activity_special.go
  2. 125 49
      services/cygx/special_wx_msg.go
  3. 0 81
      services/wechat_send_msg.go

+ 2 - 3
controllers/cygx/activity_special.go

@@ -8,7 +8,6 @@ import (
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/system"
-	"hongze/hz_crm_api/services"
 	cygxService "hongze/hz_crm_api/services/cygx"
 	"hongze/hz_crm_api/services/elastic"
 	"hongze/hz_crm_api/utils"
@@ -274,7 +273,7 @@ func (this *ActivitySpecialCoAntroller) PreserveAndPublish() {
 	}
 	//模板消息推送
 	if req.DoType == 1 {
-		go services.SendWxMsgWithCygxActivitySpecial(activityId)
+		go cygxService.SendWxMsgWithCygxActivitySpecial(activityId)
 		//go cygxService.UpdateResourceData(activityId, "activityspecial", "add", time.Now().Format(utils.FormatDateTime))
 	}
 	go cygxService.UpdateActivitySpecialResourceData(activityId) //写入首页最新  cygx_resource_data 表
@@ -535,7 +534,7 @@ func (this *ActivitySpecialCoAntroller) PublishAndCancel() {
 	}
 	//模板消息推送
 	if item.PublishStatus == 1 {
-		go services.SendWxMsgWithCygxActivitySpecial(activityId)
+		go cygxService.SendWxMsgWithCygxActivitySpecial(activityId)
 		//go cygxService.UpdateResourceData(activityId, "activityspecial", "add", time.Now().Format(utils.FormatDateTime))
 	} else {
 		go cygxService.DetermineTripCancel(activityId)

+ 125 - 49
services/cygx/special_wx_msg.go

@@ -63,13 +63,18 @@ func DetermineTripBeInterested(activityId int) (err error) {
 		fmt.Println(e)
 		return
 	}
-
-	if len(openIdList) == 0 {
-		return
-	}
-	openIdArr := make([]string, len(openIdList))
-	for i, v := range openIdList {
-		openIdArr[i] = v.OpenId
+	var openIdArr []string
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+		jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+		for _, v := range jmcjOpenId {
+			if !utils.InArrayByStr(openIdArr, v) {
+				openIdArr = append(openIdArr, v)
+			}
+		}
 	}
 	var first, keyword1, keyword2, keyword3, keyword4, remark, redirectUrl string
 	keyword1 = "专项调研【" + activityInfo.ResearchTheme + "】"
@@ -132,12 +137,18 @@ func DetermineTripCancel(activityId int) (err error) {
 		return
 	}
 
-	if len(openIdList) == 0 {
-		return
-	}
-	openIdArr := make([]string, len(openIdList))
-	for i, v := range openIdList {
-		openIdArr[i] = v.OpenId
+	var openIdArr []string
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+		jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+		for _, v := range jmcjOpenId {
+			if !utils.InArrayByStr(openIdArr, v) {
+				openIdArr = append(openIdArr, v)
+			}
+		}
 	}
 	var first, keyword1, keyword2, keyword3, keyword4, remark, redirectUrl string
 	keyword1 = "专项调研【" + activityInfo.ResearchTheme + "】"
@@ -201,13 +212,18 @@ func DetermineTripChange(activityId int, changeType, changeMsg string) (err erro
 		fmt.Println(e)
 		return
 	}
-
-	if len(openIdList) == 0 {
-		return
-	}
-	openIdArr := make([]string, len(openIdList))
-	for i, v := range openIdList {
-		openIdArr[i] = v.OpenId
+	var openIdArr []string
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+		jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+		for _, v := range jmcjOpenId {
+			if !utils.InArrayByStr(openIdArr, v) {
+				openIdArr = append(openIdArr, v)
+			}
+		}
 	}
 	var first, keyword1, keyword2, keyword3, keyword4, remark, redirectUrl string
 	if changeType == "City" {
@@ -324,12 +340,20 @@ func SendWxMsgWithCygxActivitySpecialSubscribeNoInterested(activityId int) (err
 	for _, v := range arrOpenId {
 		mapOpenid[v] = v
 	}
-	openIdArr := make([]string, len(mapOpenid))
-	var i int
+
+	var openIdArr []string
 	for _, v := range mapOpenid {
-		openIdArr[i] = v
-		i++
+		openIdArr = append(openIdArr, v)
 	}
+
+	//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+	jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+	for _, v := range jmcjOpenId {
+		if !utils.InArrayByStr(openIdArr, v) {
+			openIdArr = append(openIdArr, v)
+		}
+	}
+
 	var first string
 	var keyword1 string
 	var keyword2 string
@@ -400,26 +424,6 @@ func SendWxMsgWithCygxActivitySpecialArticle(articleId int) (err error) {
 
 	var condition string
 	var pars []interface{}
-	//condition = ` AND m.industrial_management_id IN (` + utils.GetOrmInReplace(len(industryIds)) + `)`
-	//pars = append(pars, industryIds)
-
-	//condition += ` AND a.activity_time > ? `
-	//pars = append(pars, time.Now().AddDate(0, 0, -7))
-
-	//activityList, err := cygx.GetActivitySpecialByIndustryIds(condition, pars)
-	//if err != nil {
-	//	return
-	//}
-	//if len(activityList) == 0 {
-	//	return
-	//}
-
-	//for _, v := range activityList {
-	//activityInfo, e := cygx.GetAddActivityInfoSpecialById(v.ActivityId)
-	//if e != nil {
-	//	err = errors.New("GetAddActivityInfoSpecialById, Err: " + e.Error())
-	//	return
-	//}
 
 	condition = ` AND category_id = ? AND sub_category_name = '专项调研' `
 	pars = append(pars, articleInfo.CategoryId)
@@ -462,13 +466,19 @@ func SendWxMsgWithCygxActivitySpecialArticle(articleId int) (err error) {
 		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
 		return
 	}
-	if len(openIdList) == 0 {
-		return
+	var openIdArr []string
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
 	}
-	openIdArr := make([]string, len(openIdList))
-	for i, vO := range openIdList {
-		openIdArr[i] = vO.OpenId
+
+	//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+	jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+	for _, v := range jmcjOpenId {
+		if !utils.InArrayByStr(openIdArr, v) {
+			openIdArr = append(openIdArr, v)
+		}
 	}
+
 	var keyword1 string
 	first := ""
 	if industrialName != "" {
@@ -507,3 +517,69 @@ func SendWxMsgWithCygxActivitySpecialArticle(articleId int) (err error) {
 	}
 	return
 }
+
+// 专项调研活动模板消息通知
+func SendWxMsgWithCygxActivitySpecial(activityId int) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
+			//go utils.SendEmail("发送模版消息失败"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
+		}
+	}()
+	activityInfo, err := cygx.GetAddActivityInfoSpecialById(activityId)
+	if err != nil {
+		msg = "GetReportInfo Err:" + err.Error()
+		return
+	}
+
+	var openIdList []*cygx.OpenIdList
+	openIdList, err = cygx.GetActivitySpecialOpenIdList()
+	if err != nil {
+		msg = "get openIdList err:" + err.Error()
+		return
+	}
+
+	var openIdArr []string
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+		jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+		for _, v := range jmcjOpenId {
+			if !utils.InArrayByStr(openIdArr, v) {
+				openIdArr = append(openIdArr, v)
+			}
+		}
+	}
+	var first, keyword1, keyword2, keyword3, keyword4, remark, redirectUrl string
+	keyword1 = "专项调研【" + activityInfo.ResearchTheme + "】"
+	keyword2 = "已开启预报名"
+	//if activityInfo.SpecialType == 1 {
+	//	keyword2 += "线上 预期时间:" + activityInfo.ActivityTimeText
+	//} else {
+	//	keyword2 += "线下 " + "(" + activityInfo.City + ") 预期时间:" + activityInfo.ActivityTimeText
+	//}
+	redirectUrl = utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(activityId)
+	sendInfo := new(services.SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(activityId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_UPDATE
+	sendInfo.OpenIdArr = openIdArr
+	err = services.SendTemplateMsg(sendInfo)
+	if err != nil {
+		err = errors.New("SendTemplateMsg, Err: " + err.Error())
+		return
+	}
+	return
+}

+ 0 - 81
services/wechat_send_msg.go

@@ -991,87 +991,6 @@ func CheckTwoWeekOrMonthReport(classifyId int, classifyName string) (ok bool) {
 	return
 }
 
-// 专项调研活动模板消息通知
-func SendWxMsgWithCygxActivitySpecial(activityId int) (err error) {
-	var msg string
-	defer func() {
-		if err != nil {
-			go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
-			//go utils.SendEmail("发送模版消息失败"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
-			utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
-		}
-	}()
-	activityInfo, err := cygx.GetAddActivityInfoSpecialById(activityId)
-	if err != nil {
-		msg = "GetReportInfo Err:" + err.Error()
-		return
-	}
-
-	var openIdList []*cygx.OpenIdList
-	openIdList, err = cygx.GetActivitySpecialOpenIdList()
-	if err != nil {
-		msg = "get openIdList err:" + err.Error()
-		return
-	}
-	if len(openIdList) == 0 {
-		return err
-	}
-	//sendMap := make(map[string]interface{})
-	//sendData := make(map[string]interface{})
-	//var first string
-	//var keyword1 string
-	//var keyword2 string
-	//first = "专项调研【" + activityInfo.ResearchTheme + "】已开启预报名"
-	//
-	//redirectUrl := ""
-	//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"}
-	//sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
-	//if utils.RunMode == "release" {
-	//	sendMap["template_id"] = utils.WxMsgTemplateIdActivityChangeApplyXzs
-	//} else {
-	//	sendMap["template_id"] = utils.WxMsgTemplateIdActivityChangeApply
-	//}
-	//sendMap["url"] = redirectUrl
-	//sendMap["data"] = sendData
-	//sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxCygxAppId, "pagepath": "activityPages/specialDetail/specialDetail?id=" + strconv.Itoa(activityId)}
-	//sendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ACTIVITY_UPDATE)
-
-	openIdArr := make([]string, len(openIdList))
-	for i, v := range openIdList {
-		openIdArr[i] = v.OpenId
-	}
-	var first, keyword1, keyword2, keyword3, keyword4, remark, redirectUrl string
-	keyword1 = "专项调研【" + activityInfo.ResearchTheme + "】"
-	keyword2 = "已开启预报名"
-	//if activityInfo.SpecialType == 1 {
-	//	keyword2 += "线上 预期时间:" + activityInfo.ActivityTimeText
-	//} else {
-	//	keyword2 += "线下 " + "(" + activityInfo.City + ") 预期时间:" + activityInfo.ActivityTimeText
-	//}
-	redirectUrl = utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(activityId)
-	sendInfo := new(SendWxTemplate)
-	sendInfo.First = first
-	sendInfo.Keyword1 = keyword1
-	sendInfo.Keyword2 = keyword2
-	sendInfo.Keyword3 = keyword3
-	sendInfo.Keyword4 = keyword4
-	sendInfo.Remark = remark
-	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
-	sendInfo.RedirectUrl = redirectUrl
-	sendInfo.RedirectTarget = 3
-	sendInfo.Resource = strconv.Itoa(activityId)
-	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_UPDATE
-	sendInfo.OpenIdArr = openIdArr
-	err = SendTemplateMsg(sendInfo)
-	if err != nil {
-		err = errors.New("SendTemplateMsg, Err: " + err.Error())
-		return
-	}
-	return
-}
-
 // SendYbQuestionDistributeWxMsg 推送研报小程序模板消息-问答社区分配
 func SendYbQuestionDistributeWxMsg(questionId, adminId int, openid, questionTitle, remark string) (err error) {
 	var errMsg string