修正发送微信模板消息时取模板Id的逻辑

This commit is contained in:
wenjiarui 2023-10-13 12:08:43 +08:00
parent 95d1d789ba
commit 99979914ad
6 changed files with 33 additions and 22 deletions

View File

@ -14,6 +14,10 @@ export async function subscribeMpMessage(messageTypes, haveToAccept, tip) {
data: {
id: 1,
templateId: 1,
template: {
id: 1,
wechatId: 1,
},
type: 1,
},
filter: {
@ -23,7 +27,7 @@ export async function subscribeMpMessage(messageTypes, haveToAccept, tip) {
},
});
if (mttIds.length > 0) {
const tmplIds = mttIds.map(ele => ele.templateId);
const tmplIds = mttIds.map(ele => ele.template?.wechatId);
const result = await wx.requestSubscribeMessage({
tmplIds
});

View File

@ -143,8 +143,8 @@ async function createNotification(message, context) {
for (const app of apps) {
// 如果是wechatMp或者wechat还要保证用户已经有openId
const wechatUser = wechatUsers.find(ele => ele.applicationId === app.id);
const messageTypeTemplateId = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplateId && wechatUser) {
const messageTypeTemplate = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplate && wechatUser) {
const converter = ConverterDict[type] && ConverterDict[type].toWechatMp;
const dispersedData = converter && await converter(entity, entityId, apps, app, context);
if (dispersedData) {
@ -153,7 +153,7 @@ async function createNotification(message, context) {
data: dispersedData,
channel,
applicationId: app.id,
templateId: messageTypeTemplateId.template.wechatId,
templateId: messageTypeTemplate.template.wechatId,
data1: {
openId: wechatUser.openId,
}
@ -181,8 +181,8 @@ async function createNotification(message, context) {
for (const app of apps) {
// 如果是wechatMp或者wechat还要保证用户已经有openId
const wechatUser = wechatUsers.find(ele => ele.applicationId === app.id);
const messageTypeTemplateId = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplateId && wechatUser) {
const messageTypeTemplate = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplate && wechatUser) {
const converter = ConverterDict[type] && ConverterDict[type].toWechatPublic;
const disperseResult = converter && await converter(entity, entityId, apps, app, context);
if (disperseResult) {
@ -192,7 +192,7 @@ async function createNotification(message, context) {
data,
channel,
applicationId: app.id,
templateId: messageTypeTemplateId.template.wechatId,
templateId: messageTypeTemplate.template.wechatId,
data1: {
openId: wechatUser.openId,
wechatMpAppId,

View File

@ -17,6 +17,10 @@ async function subscribeMpMessage(messageTypes, haveToAccept, tip) {
data: {
id: 1,
templateId: 1,
template: {
id: 1,
wechatId: 1,
},
type: 1,
},
filter: {
@ -26,7 +30,7 @@ async function subscribeMpMessage(messageTypes, haveToAccept, tip) {
},
});
if (mttIds.length > 0) {
const tmplIds = mttIds.map(ele => ele.templateId);
const tmplIds = mttIds.map(ele => ele.template?.wechatId);
const result = await wx.requestSubscribeMessage({
tmplIds
});

View File

@ -148,8 +148,8 @@ async function createNotification(message, context) {
for (const app of apps) {
// 如果是wechatMp或者wechat还要保证用户已经有openId
const wechatUser = wechatUsers.find(ele => ele.applicationId === app.id);
const messageTypeTemplateId = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplateId && wechatUser) {
const messageTypeTemplate = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplate && wechatUser) {
const converter = ConverterDict[type] && ConverterDict[type].toWechatMp;
const dispersedData = converter && await converter(entity, entityId, apps, app, context);
if (dispersedData) {
@ -158,7 +158,7 @@ async function createNotification(message, context) {
data: dispersedData,
channel,
applicationId: app.id,
templateId: messageTypeTemplateId.template.wechatId,
templateId: messageTypeTemplate.template.wechatId,
data1: {
openId: wechatUser.openId,
}
@ -186,8 +186,8 @@ async function createNotification(message, context) {
for (const app of apps) {
// 如果是wechatMp或者wechat还要保证用户已经有openId
const wechatUser = wechatUsers.find(ele => ele.applicationId === app.id);
const messageTypeTemplateId = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplateId && wechatUser) {
const messageTypeTemplate = messageTypeTemplates.find(ele => ele.template.applicationId === app.id && ele.type === type);
if (messageTypeTemplate && wechatUser) {
const converter = ConverterDict[type] && ConverterDict[type].toWechatPublic;
const disperseResult = converter && await converter(entity, entityId, apps, app, context);
if (disperseResult) {
@ -197,7 +197,7 @@ async function createNotification(message, context) {
data,
channel,
applicationId: app.id,
templateId: messageTypeTemplateId.template.wechatId,
templateId: messageTypeTemplate.template.wechatId,
data1: {
openId: wechatUser.openId,
wechatMpAppId,

View File

@ -46,18 +46,21 @@ export async function subscribeMpMessage<
data: {
id: 1,
templateId: 1,
template: {
id: 1,
wechatId: 1,
},
type: 1,
},
filter: {
type: {
$in: messageTypes,
},
},
});
if (mttIds.length > 0) {
const tmplIds = mttIds.map(
ele => ele.templateId!
ele => ele.template?.wechatId!
);
const result = await wx.requestSubscribeMessage({
tmplIds

View File

@ -182,10 +182,10 @@ async function createNotification(message: CreateMessageData, context: BRC) {
const wechatUser = wechatUsers.find(
ele => ele.applicationId === app.id
);
const messageTypeTemplateId = messageTypeTemplates.find(
const messageTypeTemplate = messageTypeTemplates.find(
ele => ele.template!.applicationId === app.id && ele.type === type
);
if (messageTypeTemplateId && wechatUser) {
if (messageTypeTemplate && wechatUser) {
const converter = ConverterDict[type!] && ConverterDict[type!]!.toWechatMp;
const dispersedData = converter && await converter(entity!, entityId!, apps, app, context);
if (dispersedData) {
@ -194,7 +194,7 @@ async function createNotification(message: CreateMessageData, context: BRC) {
data: dispersedData,
channel,
applicationId: app.id,
templateId: messageTypeTemplateId.template!.wechatId!,
templateId: messageTypeTemplate.template!.wechatId!,
data1: {
openId: wechatUser.openId!,
}
@ -226,10 +226,10 @@ async function createNotification(message: CreateMessageData, context: BRC) {
const wechatUser = wechatUsers.find(
ele => ele.applicationId === app.id
);
const messageTypeTemplateId = messageTypeTemplates.find(
const messageTypeTemplate = messageTypeTemplates.find(
ele => ele.template!.applicationId === app.id && ele.type === type
);
if (messageTypeTemplateId && wechatUser) {
if (messageTypeTemplate && wechatUser) {
const converter = ConverterDict[type!] && ConverterDict[type!]!.toWechatPublic;
const disperseResult = converter && await converter(entity!, entityId!, apps, app, context);
if (disperseResult) {
@ -239,7 +239,7 @@ async function createNotification(message: CreateMessageData, context: BRC) {
data,
channel,
applicationId: app.id,
templateId: messageTypeTemplateId.template!.wechatId!,
templateId: messageTypeTemplate.template!.wechatId!,
data1: {
openId: wechatUser.openId!,
wechatMpAppId,