101 lines
3.6 KiB
JavaScript
101 lines
3.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const uuid_1 = require("oak-domain/lib/utils/uuid");
|
|
const executor_1 = require("oak-domain/lib/utils/executor");
|
|
const checkers = [
|
|
{
|
|
// 删除文章分类级联删除extraFile
|
|
action: 'remove',
|
|
type: 'logical',
|
|
entity: 'articleMenu',
|
|
checker(operation, context) {
|
|
const { filter } = operation;
|
|
return context.operate('extraFile', {
|
|
id: (0, uuid_1.generateNewId)(),
|
|
action: 'remove',
|
|
data: {},
|
|
filter: {
|
|
articleMenu: filter,
|
|
},
|
|
}, {});
|
|
},
|
|
},
|
|
{
|
|
// 删除文章分类级联删除子文章分类
|
|
action: 'remove',
|
|
type: 'logical',
|
|
entity: 'articleMenu',
|
|
checker(operation, context) {
|
|
const { filter } = operation;
|
|
if (filter) {
|
|
return (0, executor_1.pipeline)(() => context.select('articleMenu', {
|
|
data: {
|
|
id: 1,
|
|
articleMenu$parent: {
|
|
$entity: 'articleMenu',
|
|
data: {
|
|
id: 1,
|
|
}
|
|
}
|
|
},
|
|
filter,
|
|
}, {}), (articleMenus) => {
|
|
const children = articleMenus.map((ele) => ele.articleMenu$parent).flat();
|
|
const childrenIds = children?.map((ele) => ele.id);
|
|
if (childrenIds && childrenIds.length > 0) {
|
|
return context.operate("articleMenu", {
|
|
id: (0, uuid_1.generateNewId)(),
|
|
action: "remove",
|
|
data: {},
|
|
filter: {
|
|
id: {
|
|
$in: childrenIds,
|
|
}
|
|
},
|
|
}, {});
|
|
}
|
|
});
|
|
}
|
|
},
|
|
},
|
|
{
|
|
// 删除文章分类级联删除子文章
|
|
action: 'remove',
|
|
type: 'logical',
|
|
entity: 'articleMenu',
|
|
checker(operation, context) {
|
|
const { filter } = operation;
|
|
if (filter) {
|
|
return (0, executor_1.pipeline)(() => context.select('articleMenu', {
|
|
data: {
|
|
id: 1,
|
|
article$articleMenu: {
|
|
$entity: 'article',
|
|
data: {
|
|
id: 1,
|
|
}
|
|
}
|
|
},
|
|
filter,
|
|
}, {}), (articleMenus) => {
|
|
const articles = articleMenus.map((ele) => ele.article$articleMenu).flat();
|
|
const articleIds = articles?.map((ele) => ele.id);
|
|
if (articleIds && articleIds.length > 0) {
|
|
return context.operate("article", {
|
|
id: (0, uuid_1.generateNewId)(),
|
|
action: "remove",
|
|
data: {},
|
|
filter: {
|
|
id: {
|
|
$in: articleIds,
|
|
}
|
|
},
|
|
}, {});
|
|
}
|
|
});
|
|
}
|
|
},
|
|
},
|
|
];
|
|
exports.default = checkers;
|