Merge branch 'release'

This commit is contained in:
Xu Chang 2025-03-17 14:37:43 +08:00
commit 28ec0fff14
4 changed files with 32 additions and 20 deletions

View File

@ -1460,7 +1460,7 @@ export default class TreeStore extends CascadeStore {
else {
assert([0, 1].includes(rel));
result2[k] = row2[k];
assert(['string', 'number', 'boolean'].includes(typeof row2[k]));
assert(['string', 'number', 'boolean'].includes(typeof row2[k]) || row2[k] === null);
key += `${row2[k]}`;
values.push(row2[k]);
}
@ -1558,8 +1558,9 @@ export default class TreeStore extends CascadeStore {
result[op] = 0;
const data = distinct ? uniq(results[op]) : results[op];
data.forEach((ele) => {
assert(typeof ele === 'number', '只有number类型的属性才可以计算sum');
result[op] += ele;
if (typeof ele === 'number') {
result[op] += ele;
}
});
}
else if (op.startsWith('#count')) {
@ -1574,11 +1575,14 @@ export default class TreeStore extends CascadeStore {
else if (op.startsWith('#avg')) {
result[op] = 0;
const data = (distinct ? uniq(results[op]) : results[op]).filter(ele => ![undefined, null].includes(ele));
let count = 0;
data.forEach((ele) => {
assert(typeof ele === 'number', '只有number类型的属性才可以计算avg');
result[op] += ele;
if (typeof ele === 'number') {
result[op] += ele;
count += 1;
}
});
result[op] = result[op] / data.length;
result[op] = result[op] / count;
}
}
return result;

View File

@ -1462,7 +1462,7 @@ class TreeStore extends CascadeStore_1.CascadeStore {
else {
(0, assert_1.assert)([0, 1].includes(rel));
result2[k] = row2[k];
(0, assert_1.assert)(['string', 'number', 'boolean'].includes(typeof row2[k]));
(0, assert_1.assert)(['string', 'number', 'boolean'].includes(typeof row2[k]) || row2[k] === null);
key += `${row2[k]}`;
values.push(row2[k]);
}
@ -1560,8 +1560,9 @@ class TreeStore extends CascadeStore_1.CascadeStore {
result[op] = 0;
const data = distinct ? (0, lodash_1.uniq)(results[op]) : results[op];
data.forEach((ele) => {
(0, assert_1.assert)(typeof ele === 'number', '只有number类型的属性才可以计算sum');
result[op] += ele;
if (typeof ele === 'number') {
result[op] += ele;
}
});
}
else if (op.startsWith('#count')) {
@ -1576,11 +1577,14 @@ class TreeStore extends CascadeStore_1.CascadeStore {
else if (op.startsWith('#avg')) {
result[op] = 0;
const data = (distinct ? (0, lodash_1.uniq)(results[op]) : results[op]).filter(ele => ![undefined, null].includes(ele));
let count = 0;
data.forEach((ele) => {
(0, assert_1.assert)(typeof ele === 'number', '只有number类型的属性才可以计算avg');
result[op] += ele;
if (typeof ele === 'number') {
result[op] += ele;
count += 1;
}
});
result[op] = result[op] / data.length;
result[op] = result[op] / count;
}
}
return result;

View File

@ -1,6 +1,6 @@
{
"name": "oak-memory-tree-store",
"version": "3.3.10",
"version": "3.3.11",
"description": "oak框架中内存级store的实现",
"author": {
"name": "XuChang"
@ -10,7 +10,7 @@
"es/**/*"
],
"dependencies": {
"oak-domain": "^5.1.20",
"oak-domain": "^5.1.21",
"uuid": "^8.3.2"
},
"scripts": {

View File

@ -1749,7 +1749,7 @@ export default class TreeStore<ED extends EntityDict & BaseEntityDict> extends C
else {
assert([0, 1].includes(rel as number));
(result2 as any)[k] = row2[k];
assert(['string', 'number', 'boolean'].includes(typeof row2[k]));
assert(['string', 'number', 'boolean'].includes(typeof row2[k]) || row2[k] === null);
key += `${row2[k]}`;
values.push(row2[k]);
}
@ -1860,8 +1860,9 @@ export default class TreeStore<ED extends EntityDict & BaseEntityDict> extends C
const data = distinct ? uniq(results[op]) : results[op];
data.forEach(
(ele) => {
assert(typeof ele === 'number', '只有number类型的属性才可以计算sum');
result[op] += ele;
if (typeof ele === 'number') {
result[op] += ele;
}
}
);
}
@ -1881,13 +1882,16 @@ export default class TreeStore<ED extends EntityDict & BaseEntityDict> extends C
const data = (distinct ? uniq(results[op]) : results[op]).filter(
ele => ![undefined, null].includes(ele)
);
let count = 0;
data.forEach(
(ele) => {
assert(typeof ele === 'number', '只有number类型的属性才可以计算avg');
result[op] += ele;
if (typeof ele === 'number') {
result[op] += ele;
count += 1;
}
}
);
result[op] = result[op]/data.length;
result[op] = result[op]/count;
}
}
return result as AggregationResult<ED[T]['Schema']>[number];