更新了all/not all原来的错误判定
This commit is contained in:
parent
7c8368c6d2
commit
f84ef1724d
52
es/store.js
52
es/store.js
|
|
@ -791,8 +791,8 @@ export default class TreeStore extends CascadeStore {
|
|||
/**
|
||||
* in代表外键连接后至少有一行数据
|
||||
* not in代表外键连接后一行也不能有
|
||||
* all代表反外键连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反外键连接条件的至少有一行
|
||||
* all代表反连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反连接条件的至少有一行
|
||||
*
|
||||
* 此时还没有确定父行,只有查询中明确带有id的查询可以先执行,否则不执行,暂先这个逻辑 by Xc 20230725
|
||||
*/
|
||||
|
|
@ -805,24 +805,20 @@ export default class TreeStore extends CascadeStore {
|
|||
/**
|
||||
* in代表外键连接后至少有一行数据
|
||||
* not in代表外键连接后一行也不能有
|
||||
* all代表反外键连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反外键连接条件的至少有一行
|
||||
* all代表反连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反连接条件的至少有一行
|
||||
*/
|
||||
const otmFilter = !otmForeignKey ? Object.assign({
|
||||
const otmOriginFilter = !otmForeignKey ? Object.assign({
|
||||
entity,
|
||||
}, filter[attr]) : cloneDeep(filter[attr]);
|
||||
if (['noobscuret in', 'in'].includes(predicate)) {
|
||||
Object.assign(otmFilter, {
|
||||
}, cloneDeep(filter[attr])) : cloneDeep(filter[attr]);
|
||||
const otmFilter = ['not in', 'in'].includes(predicate) ? combineFilters(otmEntity, this.getSchema(), [
|
||||
otmOriginFilter, {
|
||||
[fk]: row.id,
|
||||
});
|
||||
}
|
||||
else {
|
||||
Object.assign(otmFilter, {
|
||||
[fk]: {
|
||||
$ne: row.id,
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
]) : {
|
||||
$not: otmOriginFilter,
|
||||
[fk]: row.id,
|
||||
};
|
||||
const subQuerySet = (this.selectAbjointRow(otmEntity, {
|
||||
data: otmProjection,
|
||||
filter: otmFilter,
|
||||
|
|
@ -852,21 +848,17 @@ export default class TreeStore extends CascadeStore {
|
|||
});
|
||||
};
|
||||
if (filter.id && typeof filter.id === 'string') {
|
||||
const otmFilter = !otmForeignKey ? Object.assign({
|
||||
const otmOriginFilter = !otmForeignKey ? Object.assign({
|
||||
entity,
|
||||
}, filter[attr]) : cloneDeep(filter[attr]);
|
||||
if (['not in', 'in'].includes(predicate)) {
|
||||
Object.assign(otmFilter, {
|
||||
}, cloneDeep(filter[attr])) : cloneDeep(filter[attr]);
|
||||
const otmFilter = ['not in', 'in'].includes(predicate) ? combineFilters(otmEntity, this.getSchema(), [
|
||||
otmOriginFilter, {
|
||||
[fk]: filter.id,
|
||||
});
|
||||
}
|
||||
else {
|
||||
Object.assign(otmFilter, {
|
||||
[fk]: {
|
||||
$ne: filter.id,
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
]) : {
|
||||
$not: otmOriginFilter,
|
||||
[fk]: filter.id,
|
||||
};
|
||||
try {
|
||||
const subQuerySet = (this.selectAbjointRow(otmEntity, {
|
||||
data: otmProjection,
|
||||
|
|
|
|||
52
lib/store.js
52
lib/store.js
|
|
@ -793,8 +793,8 @@ class TreeStore extends CascadeStore_1.CascadeStore {
|
|||
/**
|
||||
* in代表外键连接后至少有一行数据
|
||||
* not in代表外键连接后一行也不能有
|
||||
* all代表反外键连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反外键连接条件的至少有一行
|
||||
* all代表反连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反连接条件的至少有一行
|
||||
*
|
||||
* 此时还没有确定父行,只有查询中明确带有id的查询可以先执行,否则不执行,暂先这个逻辑 by Xc 20230725
|
||||
*/
|
||||
|
|
@ -807,24 +807,20 @@ class TreeStore extends CascadeStore_1.CascadeStore {
|
|||
/**
|
||||
* in代表外键连接后至少有一行数据
|
||||
* not in代表外键连接后一行也不能有
|
||||
* all代表反外键连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反外键连接条件的至少有一行
|
||||
* all代表反连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反连接条件的至少有一行
|
||||
*/
|
||||
const otmFilter = !otmForeignKey ? Object.assign({
|
||||
const otmOriginFilter = !otmForeignKey ? Object.assign({
|
||||
entity,
|
||||
}, filter[attr]) : (0, lodash_1.cloneDeep)(filter[attr]);
|
||||
if (['noobscuret in', 'in'].includes(predicate)) {
|
||||
Object.assign(otmFilter, {
|
||||
}, (0, lodash_1.cloneDeep)(filter[attr])) : (0, lodash_1.cloneDeep)(filter[attr]);
|
||||
const otmFilter = ['not in', 'in'].includes(predicate) ? (0, filter_1.combineFilters)(otmEntity, this.getSchema(), [
|
||||
otmOriginFilter, {
|
||||
[fk]: row.id,
|
||||
});
|
||||
}
|
||||
else {
|
||||
Object.assign(otmFilter, {
|
||||
[fk]: {
|
||||
$ne: row.id,
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
]) : {
|
||||
$not: otmOriginFilter,
|
||||
[fk]: row.id,
|
||||
};
|
||||
const subQuerySet = (this.selectAbjointRow(otmEntity, {
|
||||
data: otmProjection,
|
||||
filter: otmFilter,
|
||||
|
|
@ -854,21 +850,17 @@ class TreeStore extends CascadeStore_1.CascadeStore {
|
|||
});
|
||||
};
|
||||
if (filter.id && typeof filter.id === 'string') {
|
||||
const otmFilter = !otmForeignKey ? Object.assign({
|
||||
const otmOriginFilter = !otmForeignKey ? Object.assign({
|
||||
entity,
|
||||
}, filter[attr]) : (0, lodash_1.cloneDeep)(filter[attr]);
|
||||
if (['not in', 'in'].includes(predicate)) {
|
||||
Object.assign(otmFilter, {
|
||||
}, (0, lodash_1.cloneDeep)(filter[attr])) : (0, lodash_1.cloneDeep)(filter[attr]);
|
||||
const otmFilter = ['not in', 'in'].includes(predicate) ? (0, filter_1.combineFilters)(otmEntity, this.getSchema(), [
|
||||
otmOriginFilter, {
|
||||
[fk]: filter.id,
|
||||
});
|
||||
}
|
||||
else {
|
||||
Object.assign(otmFilter, {
|
||||
[fk]: {
|
||||
$ne: filter.id,
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
]) : {
|
||||
$not: otmOriginFilter,
|
||||
[fk]: filter.id,
|
||||
};
|
||||
try {
|
||||
const subQuerySet = (this.selectAbjointRow(otmEntity, {
|
||||
data: otmProjection,
|
||||
|
|
|
|||
52
src/store.ts
52
src/store.ts
|
|
@ -973,8 +973,8 @@ export default class TreeStore<ED extends EntityDict & BaseEntityDict> extends C
|
|||
/**
|
||||
* in代表外键连接后至少有一行数据
|
||||
* not in代表外键连接后一行也不能有
|
||||
* all代表反外键连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反外键连接条件的至少有一行
|
||||
* all代表反连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反连接条件的至少有一行
|
||||
*
|
||||
* 此时还没有确定父行,只有查询中明确带有id的查询可以先执行,否则不执行,暂先这个逻辑 by Xc 20230725
|
||||
*/
|
||||
|
|
@ -987,23 +987,20 @@ export default class TreeStore<ED extends EntityDict & BaseEntityDict> extends C
|
|||
/**
|
||||
* in代表外键连接后至少有一行数据
|
||||
* not in代表外键连接后一行也不能有
|
||||
* all代表反外键连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反外键连接条件的至少有一行
|
||||
* all代表反连接条件的一行也不能有(符合的是否至少要有一行?直觉上没这个限制)
|
||||
* not all 代表反连接条件的至少有一行
|
||||
*/
|
||||
const otmFilter = !otmForeignKey ? Object.assign({
|
||||
const otmOriginFilter = !otmForeignKey ? Object.assign({
|
||||
entity,
|
||||
}, filter[attr]) : cloneDeep(filter[attr]);
|
||||
if (['noobscuret in', 'in'].includes(predicate)) {
|
||||
Object.assign(otmFilter, {
|
||||
}, cloneDeep(filter[attr])) : cloneDeep(filter[attr]);
|
||||
|
||||
const otmFilter = ['not in', 'in'].includes(predicate) ? combineFilters(otmEntity, this.getSchema(), [
|
||||
otmOriginFilter, {
|
||||
[fk]: row.id,
|
||||
});
|
||||
}
|
||||
else {
|
||||
Object.assign(otmFilter, {
|
||||
[fk]: {
|
||||
$ne: row.id,
|
||||
}
|
||||
});
|
||||
}
|
||||
]) : {
|
||||
$not: otmOriginFilter,
|
||||
[fk]: row.id,
|
||||
}
|
||||
const subQuerySet = (this.selectAbjointRow(otmEntity, {
|
||||
data: otmProjection,
|
||||
|
|
@ -1036,21 +1033,18 @@ export default class TreeStore<ED extends EntityDict & BaseEntityDict> extends C
|
|||
});
|
||||
};
|
||||
|
||||
if (filter.id && typeof filter.id === 'string') {
|
||||
const otmFilter = !otmForeignKey ? Object.assign({
|
||||
if (filter.id && typeof filter.id === 'string') {
|
||||
const otmOriginFilter = !otmForeignKey ? Object.assign({
|
||||
entity,
|
||||
}, filter[attr]) : cloneDeep(filter[attr]);
|
||||
if (['not in', 'in'].includes(predicate)) {
|
||||
Object.assign(otmFilter, {
|
||||
}, cloneDeep(filter[attr])) : cloneDeep(filter[attr]);
|
||||
|
||||
const otmFilter = ['not in', 'in'].includes(predicate) ? combineFilters(otmEntity, this.getSchema(), [
|
||||
otmOriginFilter, {
|
||||
[fk]: filter.id,
|
||||
});
|
||||
}
|
||||
else {
|
||||
Object.assign(otmFilter, {
|
||||
[fk]: {
|
||||
$ne: filter.id,
|
||||
}
|
||||
});
|
||||
}
|
||||
]) : {
|
||||
$not: otmOriginFilter,
|
||||
[fk]: filter.id,
|
||||
}
|
||||
try {
|
||||
const subQuerySet = (this.selectAbjointRow(otmEntity, {
|
||||
|
|
|
|||
Loading…
Reference in New Issue