oak-general-business/es/aspects/sms.js

81 lines
2.7 KiB
JavaScript

import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
import { getSms } from '../utils/sms/index';
export async function syncSmsTemplate(params, context) {
const { origin, systemId } = params;
const Sms = getSms(origin);
const templateFormalData = await Sms.syncTemplate(systemId, context);
const existTemplateList = await context.select('smsTemplate', {
data: {
id: 1,
templateName: 1,
templateCode: 1,
templateContent: 1,
},
filter: {
systemId,
origin,
}
}, {
dontCollect: true,
});
const existsTemplateIds = existTemplateList.map((ele) => ele.templateCode);
const newTemplateList = templateFormalData.filter((ele) => !existsTemplateIds.includes(ele.templateCode));
const newTemplateIds = newTemplateList.map((ele) => ele.templateCode);
// const removeTemplateList = existTemplateList.filter(
// (ele) => !newTemplateIds.includes(ele.templateCode!)
// );
for (const template of templateFormalData) {
const { templateName, templateCode, templateContent } = template;
const existTemplateId = existsTemplateIds.find((ele) => ele === template.templateCode);
if (existTemplateId) {
await context.operate('smsTemplate', {
id: await generateNewIdAsync(),
action: 'update',
data: {
templateName,
templateContent,
syncAt: Date.now(),
},
filter: {
id: existTemplateId,
},
}, {
dontCollect: true,
});
}
else {
await context.operate('smsTemplate', {
id: await generateNewIdAsync(),
action: 'create',
data: {
id: await generateNewIdAsync(),
origin,
systemId,
templateCode,
templateName,
templateContent,
syncAt: Date.now(),
},
}, {
dontCollect: true,
});
}
}
// if (removeTemplateList.length > 0) {
// await context.operate(
// 'smsTemplate',
// {
// id: await generateNewIdAsync(),
// action: 'remove',
// data: {},
// filter: {
// id: {
// $in: removeTemplateList.map((ele) => ele.id!),
// },
// },
// },
// {}
// );
// }
}