87 lines
2.8 KiB
JavaScript
87 lines
2.8 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, pageIndex, pageSize } = params;
|
|
const Sms = getSms(origin);
|
|
const templateFormalData = await Sms.syncTemplate({
|
|
systemId: systemId,
|
|
pageIndex,
|
|
pageSize
|
|
}, 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 existTemplate = existTemplateList.find((ele) => ele.templateCode === template.templateCode);
|
|
if (existTemplate) {
|
|
await context.operate('smsTemplate', {
|
|
id: await generateNewIdAsync(),
|
|
action: 'update',
|
|
data: {
|
|
templateName,
|
|
templateContent,
|
|
syncAt: Date.now(),
|
|
},
|
|
filter: {
|
|
id: existTemplate.id,
|
|
},
|
|
}, {
|
|
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!),
|
|
// },
|
|
// },
|
|
// },
|
|
// {}
|
|
// );
|
|
// }
|
|
}
|