81 lines
2.7 KiB
JavaScript
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!),
|
|
// },
|
|
// },
|
|
// },
|
|
// {}
|
|
// );
|
|
// }
|
|
}
|