fix
This commit is contained in:
parent
e55b0248d4
commit
0596bff5e3
|
|
@ -133,61 +133,107 @@ var triggers = [
|
|||
name: '当用户被激活时,将所有的parasite作废',
|
||||
entity: 'user',
|
||||
action: 'activate',
|
||||
when: 'before',
|
||||
fn: function (_a) {
|
||||
when: 'after',
|
||||
fn: function (_a, context) {
|
||||
var operation = _a.operation;
|
||||
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
||||
var _b, data, filter, _c;
|
||||
var _d, _e, _f;
|
||||
return tslib_1.__generator(this, function (_g) {
|
||||
switch (_g.label) {
|
||||
var _b, data, filter, parasiteList, parasiteIds, _c, _d, _e, _f, _g, _h;
|
||||
var _j, _k;
|
||||
return tslib_1.__generator(this, function (_l) {
|
||||
switch (_l.label) {
|
||||
case 0:
|
||||
_b = operation, data = _b.data, filter = _b.filter;
|
||||
(0, assert_1.default)(!(data instanceof Array));
|
||||
_c = data;
|
||||
_d = {};
|
||||
return [4 /*yield*/, (0, uuid_1.generateNewIdAsync)()];
|
||||
return [4 /*yield*/, context.select('parasite', {
|
||||
data: {
|
||||
id: 1,
|
||||
},
|
||||
filter: {
|
||||
user: filter,
|
||||
expired: false,
|
||||
},
|
||||
}, {})];
|
||||
case 1:
|
||||
_d.id = _g.sent(),
|
||||
_d.action = 'update';
|
||||
_e = {
|
||||
expired: true
|
||||
};
|
||||
_f = {};
|
||||
parasiteList = _l.sent();
|
||||
parasiteIds = parasiteList.map(function (ele) { return ele.id; });
|
||||
if (!(parasiteIds.length > 0)) return [3 /*break*/, 6];
|
||||
_d = (_c = context).operate;
|
||||
_e = ['parasite'];
|
||||
_j = {};
|
||||
return [4 /*yield*/, (0, uuid_1.generateNewIdAsync)()];
|
||||
case 2:
|
||||
_c.parasite$user = (_d.data = (_e.token$entity = (_f.id = _g.sent(),
|
||||
_f.action = 'disable',
|
||||
_f.data = {},
|
||||
_f.filter = {
|
||||
ableState: 'enabled',
|
||||
parasite: {
|
||||
userId: {
|
||||
$in: {
|
||||
entity: 'user',
|
||||
data: {
|
||||
id: 1,
|
||||
},
|
||||
filter: filter,
|
||||
}
|
||||
case 2: return [4 /*yield*/, _d.apply(_c, _e.concat([(_j.id = _l.sent(),
|
||||
_j.action = 'update',
|
||||
_j.data = {
|
||||
expired: true,
|
||||
},
|
||||
_j.filter = {
|
||||
id: {
|
||||
$in: parasiteIds
|
||||
}
|
||||
}
|
||||
},
|
||||
_f),
|
||||
_e),
|
||||
_d.filter = {
|
||||
userId: {
|
||||
$in: {
|
||||
entity: 'user',
|
||||
data: {
|
||||
id: 1,
|
||||
},
|
||||
filter: filter,
|
||||
},
|
||||
_j), { blockTrigger: true }]))];
|
||||
case 3:
|
||||
_l.sent();
|
||||
_g = (_f = context).operate;
|
||||
_h = ['token'];
|
||||
_k = {};
|
||||
return [4 /*yield*/, (0, uuid_1.generateNewIdAsync)()];
|
||||
case 4: return [4 /*yield*/, _g.apply(_f, _h.concat([(_k.id = _l.sent(),
|
||||
_k.action = 'disable',
|
||||
_k.data = {
|
||||
expired: true,
|
||||
},
|
||||
_k.filter = {
|
||||
ableState: 'enabled',
|
||||
entity: 'parasite',
|
||||
entityId: {
|
||||
$in: parasiteIds
|
||||
}
|
||||
}
|
||||
},
|
||||
_d);
|
||||
return [2 /*return*/, 1];
|
||||
},
|
||||
_k), { blockTrigger: true }]))];
|
||||
case 5:
|
||||
_l.sent();
|
||||
_l.label = 6;
|
||||
case 6:
|
||||
// operation的级联写法目前不能正确解析上层对象对下层对象的filter关系
|
||||
// data.parasite$user = {
|
||||
// id: await generateNewIdAsync(),
|
||||
// action: 'update',
|
||||
// data: {
|
||||
// expired: true,
|
||||
// token$entity: {
|
||||
// id: await generateNewIdAsync(),
|
||||
// action: 'disable',
|
||||
// data: {},
|
||||
// filter: {
|
||||
// ableState: 'enabled',
|
||||
// parasite: {
|
||||
// userId: {
|
||||
// $in: {
|
||||
// entity: 'user',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// },
|
||||
// filter,
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// },
|
||||
// filter: {
|
||||
// userId: {
|
||||
// $in: {
|
||||
// entity: 'user',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// },
|
||||
// filter,
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
return [2 /*return*/, 1];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -119,47 +119,100 @@ const triggers: Trigger<EntityDict, 'user', RuntimeCxt>[] = [
|
|||
name: '当用户被激活时,将所有的parasite作废',
|
||||
entity: 'user',
|
||||
action: 'activate',
|
||||
when: 'before',
|
||||
fn: async ({ operation }) => {
|
||||
when: 'after',
|
||||
fn: async ({ operation }, context) => {
|
||||
const { data, filter } = operation as EntityDict['user']['Update'];
|
||||
assert(!(data instanceof Array));
|
||||
data.parasite$user = {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'update',
|
||||
data: {
|
||||
expired: true,
|
||||
token$entity: {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'disable',
|
||||
data: {},
|
||||
filter: {
|
||||
ableState: 'enabled',
|
||||
parasite: {
|
||||
userId: {
|
||||
$in: {
|
||||
entity: 'user',
|
||||
data: {
|
||||
id: 1,
|
||||
},
|
||||
filter,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const parasiteList = await context.select(
|
||||
'parasite',
|
||||
{
|
||||
data: {
|
||||
id: 1,
|
||||
},
|
||||
filter: {
|
||||
user: filter,
|
||||
expired: false,
|
||||
},
|
||||
},
|
||||
filter: {
|
||||
userId: {
|
||||
$in: {
|
||||
entity: 'user',
|
||||
data: {
|
||||
id: 1,
|
||||
},
|
||||
filter,
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
{}
|
||||
);
|
||||
const parasiteIds = parasiteList.map((ele) => ele.id);
|
||||
if (parasiteIds.length > 0) {
|
||||
await context.operate(
|
||||
'parasite',
|
||||
{
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'update',
|
||||
data: {
|
||||
expired: true,
|
||||
},
|
||||
filter: {
|
||||
id: {
|
||||
$in: parasiteIds
|
||||
}
|
||||
},
|
||||
},
|
||||
{ blockTrigger: true }
|
||||
);
|
||||
await context.operate(
|
||||
'token',
|
||||
{
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'disable',
|
||||
data: {
|
||||
expired: true,
|
||||
},
|
||||
filter: {
|
||||
ableState: 'enabled',
|
||||
entity: 'parasite',
|
||||
entityId: {
|
||||
$in: parasiteIds as string[]
|
||||
}
|
||||
},
|
||||
},
|
||||
{ blockTrigger: true }
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
// operation的级联写法目前不能正确解析上层对象对下层对象的filter关系
|
||||
// data.parasite$user = {
|
||||
// id: await generateNewIdAsync(),
|
||||
// action: 'update',
|
||||
// data: {
|
||||
// expired: true,
|
||||
// token$entity: {
|
||||
// id: await generateNewIdAsync(),
|
||||
// action: 'disable',
|
||||
// data: {},
|
||||
// filter: {
|
||||
// ableState: 'enabled',
|
||||
// parasite: {
|
||||
// userId: {
|
||||
// $in: {
|
||||
// entity: 'user',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// },
|
||||
// filter,
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// },
|
||||
// filter: {
|
||||
// userId: {
|
||||
// $in: {
|
||||
// entity: 'user',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// },
|
||||
// filter,
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
|
||||
return 1;
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue