Sfoglia il codice sorgente

新增模板消息跳转目标

longyu 2 anni fa
parent
commit
441f59c083
3 ha cambiato i file con 31 aggiunte e 15 eliminazioni
  1. 11 10
      models/wechat_send_msg.go
  2. 14 4
      services/wechat_send_msg.go
  3. 6 1
      utils/constants.go

+ 11 - 10
models/wechat_send_msg.go

@@ -206,14 +206,15 @@ func GetUserRecordListByMobile(platform int, bindAccount string) (items []*OpenI
 }
 
 type SendWxTemplate struct {
-	First       string   `description:"模板消息first字段"`
-	Keyword1    string   `description:"模板消息keyword1字段"`
-	Keyword2    string   `description:"模板消息keyword2字段"`
-	Keyword3    string   `description:"模板消息keyword3字段"`
-	Keyword4    string   `description:"模板消息keyword4字段"`
-	TemplateId  string   `description:"模板id"`
-	RedirectUrl string   `description:"跳转地址"`
-	Resource    string   `description:"资源唯一标识"`
-	SendType    int      `description:"发送的消息类型:1:报告,2:指标更新提醒,3:审批通知,4:销售领取客户通知,5:活动取消通知,6活动更改时间通知,7:关注的作者发布报告通知,8:发送日报(周报、双周报、月报)模板消息,9:活动预约/报名时间通知"`
-	OpenIdArr   []string `description:"消息接收者openid"`
+	First          string   `description:"模板消息first字段"`
+	Keyword1       string   `description:"模板消息keyword1字段"`
+	Keyword2       string   `description:"模板消息keyword2字段"`
+	Keyword3       string   `description:"模板消息keyword3字段"`
+	Keyword4       string   `description:"模板消息keyword4字段"`
+	TemplateId     string   `description:"模板id"`
+	RedirectUrl    string   `description:"跳转地址"`
+	RedirectTarget int      `description:"小程序跳转目标:1:弘则研报小程序,2:随手办公小程序"`
+	Resource       string   `description:"资源唯一标识"`
+	SendType       int      `description:"发送的消息类型:1:报告,2:指标更新提醒,3:审批通知,4:销售领取客户通知,5:活动取消通知,6活动更改时间通知,7:关注的作者发布报告通知,8:发送日报(周报、双周报、月报)模板消息,9:活动预约/报名时间通知"`
+	OpenIdArr      []string `description:"消息接收者openid"`
 }

+ 14 - 4
services/wechat_send_msg.go

@@ -3,12 +3,14 @@ package services
 import (
 	"bytes"
 	"encoding/json"
+	"errors"
 	"fmt"
 	"hongze/hongze_public_api/models"
 	"hongze/hongze_public_api/services/alarm_msg"
 	"hongze/hongze_public_api/utils"
 	"io/ioutil"
 	"net/http"
+	"strconv"
 	"strings"
 	"time"
 )
@@ -85,10 +87,18 @@ func SendWxTemplateMsg(sendInfo *models.SendWxTemplate) (err error) {
 	}
 
 	if sendInfo.RedirectUrl != "" {
-		if strings.Contains(sendInfo.RedirectUrl, "http") || strings.Contains(sendInfo.RedirectUrl, "https") {
+		if strings.Contains(sendInfo.RedirectUrl, "http") || strings.Contains(sendInfo.RedirectUrl, "https") || sendInfo.RedirectTarget == 0 {
 			sendMap["url"] = sendInfo.RedirectUrl
 		} else {
-			sendMap["miniprogram"] = sendInfo.RedirectUrl
+			var xcxAppId string
+			if sendInfo.RedirectTarget == 1 {
+				xcxAppId = utils.WxYbAppId
+			} else if sendInfo.RedirectTarget == 2 {
+				xcxAppId = utils.WxCrmAppId
+			} else {
+				err = errors.New("无效的微信小程序跳转方式:RedirectTarget" + strconv.Itoa(sendInfo.RedirectTarget))
+			}
+			sendMap["miniprogram"] = map[string]interface{}{"appid": xcxAppId, "pagepath": sendInfo.RedirectUrl}
 		}
 		uniqueCodeStr += sendInfo.RedirectUrl
 	}
@@ -98,8 +108,8 @@ func SendWxTemplateMsg(sendInfo *models.SendWxTemplate) (err error) {
 	uniqueCode := utils.MD5(uniqueCodeStr)
 
 	err = sendTemplateMsg(sendUrl, sendMap, sendInfo.OpenIdArr, sendInfo.Resource, uniqueCode, sendInfo.SendType)
-	if err!=nil {
-		utils.FileLog.Info("send err:"+err.Error())
+	if err != nil {
+		utils.FileLog.Info("send err:" + err.Error())
 	}
 	fmt.Println("send end")
 	utils.FileLog.Info("send end")

+ 6 - 1
utils/constants.go

@@ -35,4 +35,9 @@ var (
 
 const (
 	Authorization = "dc855fce962a639faa779cbdd4cd332f"
-)
+)
+
+const (
+	WxCrmAppId = `wx67b68e39913e511e` //随手办公
+	WxYbAppId  = `wxb059c872d79b9967` //弘则研报小程序
+)