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

86 lines
2.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.syncSmsTemplate = syncSmsTemplate;
const uuid_1 = require("oak-domain/lib/utils/uuid");
const index_1 = require("../utils/sms/index");
async function syncSmsTemplate(params, context) {
const { origin, systemId } = params;
const Sms = (0, index_1.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 existTemplate = existTemplateList.find((ele) => ele.templateCode === template.templateCode);
if (existTemplate) {
await context.operate('smsTemplate', {
id: await (0, uuid_1.generateNewIdAsync)(),
action: 'update',
data: {
templateName,
templateContent,
syncAt: Date.now(),
},
filter: {
id: existTemplate.id,
},
}, {
dontCollect: true,
});
}
else {
await context.operate('smsTemplate', {
id: await (0, uuid_1.generateNewIdAsync)(),
action: 'create',
data: {
id: await (0, uuid_1.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!),
// },
// },
// },
// {}
// );
// }
}