midway-fatcms 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.qoder/skills/midway-fatcms/01-quick-start.md +231 -0
- package/.qoder/skills/midway-fatcms/02-crud-quick.md +375 -0
- package/.qoder/skills/midway-fatcms/03-crud-sharding.md +489 -0
- package/.qoder/skills/midway-fatcms/04-condition-operators.md +93 -0
- package/.qoder/skills/midway-fatcms/05-configuration.md +290 -0
- package/.qoder/skills/midway-fatcms/06-builtin-functions.md +241 -0
- package/.qoder/skills/midway-fatcms/07-examples.md +504 -0
- package/.qoder/skills/midway-fatcms/SKILL.md +96 -0
- package/README.md +9 -9
- package/dist/configuration.d.ts +10 -0
- package/dist/configuration.js +26 -0
- package/dist/controller/base/BaseApiController.d.ts +1 -2
- package/dist/controller/base/BaseApiController.js +0 -4
- package/dist/controller/gateway/DocGatewayController.js +1 -1
- package/dist/controller/helpers.controller.d.ts +6 -0
- package/dist/controller/helpers.controller.js +19 -0
- package/dist/controller/manage/FlowConfigManageApi.js +4 -2
- package/dist/controller/manage/SysConfigMangeApi.js +6 -1
- package/dist/controller/manage/UserAccountManageApi.js +7 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/libs/crud-pro/CrudPro.d.ts +51 -3
- package/dist/libs/crud-pro/CrudPro.js +111 -4
- package/dist/libs/crud-pro/exceptions.d.ts +7 -0
- package/dist/libs/crud-pro/exceptions.js +7 -0
- package/dist/libs/crud-pro/interfaces.d.ts +83 -12
- package/dist/libs/crud-pro/models/CrudResult.d.ts +116 -0
- package/dist/libs/crud-pro/models/CrudResult.js +126 -0
- package/dist/libs/crud-pro/models/RequestModel.d.ts +2 -2
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +2 -0
- package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.d.ts +70 -2
- package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.js +205 -13
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +36 -2
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +8 -4
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +36 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +97 -4
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +2 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +6 -0
- package/dist/libs/crud-pro-quick/CrudProQuick.d.ts +382 -0
- package/dist/libs/crud-pro-quick/CrudProQuick.js +689 -0
- package/dist/libs/crud-pro-quick/fixSoftDelete.d.ts +30 -0
- package/dist/{service/curd → libs/crud-pro-quick}/fixSoftDelete.js +3 -6
- package/dist/libs/crud-pro-quick/index.d.ts +36 -0
- package/dist/libs/crud-pro-quick/index.js +49 -0
- package/dist/libs/crud-pro-quick/models.d.ts +33 -0
- package/dist/libs/crud-pro-quick/models.js +2 -0
- package/dist/libs/crud-sharding/ShardingBase.d.ts +78 -0
- package/dist/libs/crud-sharding/ShardingBase.js +179 -0
- package/dist/libs/crud-sharding/ShardingByCustomCrud.d.ts +35 -0
- package/dist/libs/crud-sharding/ShardingByCustomCrud.js +297 -0
- package/dist/libs/crud-sharding/ShardingByHashCrud.d.ts +38 -0
- package/dist/libs/crud-sharding/ShardingByHashCrud.js +86 -0
- package/dist/libs/crud-sharding/ShardingByKeyCrud.d.ts +39 -0
- package/dist/libs/crud-sharding/ShardingByKeyCrud.js +74 -0
- package/dist/libs/crud-sharding/ShardingByTimeCrud.d.ts +66 -0
- package/dist/libs/crud-sharding/ShardingByTimeCrud.js +524 -0
- package/dist/libs/crud-sharding/ShardingConfig.d.ts +25 -10
- package/dist/libs/crud-sharding/ShardingConfig.js +5 -5
- package/dist/libs/crud-sharding/ShardingMerger.d.ts +10 -18
- package/dist/libs/crud-sharding/ShardingMerger.js +27 -44
- package/dist/libs/crud-sharding/ShardingResult.d.ts +33 -0
- package/dist/libs/crud-sharding/ShardingResult.js +16 -0
- package/dist/libs/crud-sharding/ShardingTableCreator.d.ts +21 -4
- package/dist/libs/crud-sharding/ShardingTableCreator.js +193 -59
- package/dist/libs/crud-sharding/ShardingUtils.d.ts +48 -0
- package/dist/libs/crud-sharding/ShardingUtils.js +122 -1
- package/dist/libs/crud-sharding/TIME_COLUMN_CLEAN_SPEC.md +488 -0
- package/dist/libs/crud-sharding/index.d.ts +13 -15
- package/dist/libs/crud-sharding/index.js +33 -17
- package/dist/models/RedisKeys.d.ts +1 -0
- package/dist/models/RedisKeys.js +1 -0
- package/dist/models/bizmodels.d.ts +2 -6
- package/dist/service/SysAppService.d.ts +2 -2
- package/dist/service/SysAppService.js +16 -5
- package/dist/service/SysConfigService.d.ts +1 -1
- package/dist/service/SysConfigService.js +7 -2
- package/dist/service/SysDictDataService.js +14 -4
- package/dist/service/SysMenuService.js +7 -2
- package/dist/service/TableMetaCacheRedisSubscriber.d.ts +31 -0
- package/dist/service/TableMetaCacheRedisSubscriber.js +98 -0
- package/dist/service/curd/CurdMixService.d.ts +6 -4
- package/dist/service/curd/CurdMixService.js +16 -2
- package/dist/service/curd/CurdProService.d.ts +149 -29
- package/dist/service/curd/CurdProService.js +157 -38
- package/dist/service/flow/FlowConfigService.js +7 -2
- package/dist/service/flow/FlowInstanceCrudService.js +22 -19
- package/package.json +1 -1
- package/src/configuration.ts +27 -0
- package/src/controller/base/BaseApiController.ts +0 -5
- package/src/controller/gateway/DocGatewayController.ts +1 -1
- package/src/controller/helpers.controller.ts +15 -0
- package/src/controller/manage/CrudStandardDesignApi.ts +4 -3
- package/src/controller/manage/FlowConfigManageApi.ts +4 -2
- package/src/controller/manage/SysConfigMangeApi.ts +6 -1
- package/src/controller/manage/UserAccountManageApi.ts +7 -2
- package/src/index.ts +2 -2
- package/src/libs/crud-pro/CrudPro.ts +134 -7
- package/src/libs/crud-pro/exceptions.ts +8 -0
- package/src/libs/crud-pro/interfaces.ts +111 -15
- package/src/libs/crud-pro/models/CrudResult.ts +178 -0
- package/src/libs/crud-pro/models/RequestModel.ts +2 -2
- package/src/libs/crud-pro/models/ServiceHub.ts +4 -0
- package/src/libs/crud-pro/services/CrudProDataTypeConvertService.ts +238 -15
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +41 -2
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +11 -7
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +110 -3
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +8 -0
- package/src/libs/crud-pro-quick/CrudProQuick.ts +782 -0
- package/src/{service/curd → libs/crud-pro-quick}/fixSoftDelete.ts +23 -13
- package/src/libs/crud-pro-quick/index.ts +52 -0
- package/src/libs/crud-pro-quick/models.ts +35 -0
- package/src/libs/crud-sharding/ShardingBase.ts +256 -0
- package/src/libs/crud-sharding/ShardingByCustomCrud.ts +329 -0
- package/src/libs/crud-sharding/ShardingByHashCrud.ts +111 -0
- package/src/libs/crud-sharding/ShardingByKeyCrud.ts +97 -0
- package/src/libs/crud-sharding/ShardingByTimeCrud.ts +628 -0
- package/src/libs/crud-sharding/ShardingConfig.ts +28 -10
- package/src/libs/crud-sharding/ShardingMerger.ts +35 -63
- package/src/libs/crud-sharding/ShardingResult.ts +29 -0
- package/src/libs/crud-sharding/ShardingTableCreator.ts +214 -71
- package/src/libs/crud-sharding/ShardingUtils.ts +137 -0
- package/src/libs/crud-sharding/TIME_COLUMN_CLEAN_SPEC.md +488 -0
- package/src/libs/crud-sharding/index.ts +30 -16
- package/src/models/RedisKeys.ts +1 -0
- package/src/models/bizmodels.ts +4 -7
- package/src/service/SysAppService.ts +18 -7
- package/src/service/SysConfigService.ts +8 -3
- package/src/service/SysDictDataService.ts +14 -4
- package/src/service/SysMenuService.ts +7 -2
- package/src/service/TableMetaCacheRedisSubscriber.ts +105 -0
- package/src/service/crudstd/CrudStdService.ts +2 -2
- package/src/service/curd/CurdMixService.ts +26 -5
- package/src/service/curd/CurdProService.ts +186 -45
- package/src/service/flow/FlowConfigService.ts +7 -2
- package/src/service/flow/FlowInstanceCrudService.ts +23 -20
- package/.qoder/skills/midway-fatcms-crud/SKILL.md +0 -375
- package/.qoder/skills/midway-fatcms-crud/examples.md +0 -990
- package/.qoder/skills/midway-fatcms-crud/reference.md +0 -568
- package/dist/libs/crud-pro/README.md +0 -809
- package/dist/libs/crud-pro/README_FUNC.md +0 -193
- package/dist/libs/crud-sharding/ROUTING_LOGIC.md +0 -944
- package/dist/libs/crud-sharding/ShardingCrudPro.d.ts +0 -363
- package/dist/libs/crud-sharding/ShardingCrudPro.js +0 -675
- package/dist/libs/crud-sharding/ShardingRouter.d.ts +0 -69
- package/dist/libs/crud-sharding/ShardingRouter.js +0 -377
- package/dist/models/StandardColumns.d.ts +0 -71
- package/dist/models/StandardColumns.js +0 -28
- package/dist/service/curd/CrudProQuick.d.ts +0 -190
- package/dist/service/curd/CrudProQuick.js +0 -319
- package/dist/service/curd/README.md +0 -1100
- package/dist/service/curd/fixSoftDelete.d.ts +0 -20
- package/src/libs/crud-pro/README.md +0 -809
- package/src/libs/crud-pro/README_FUNC.md +0 -193
- package/src/libs/crud-sharding/ROUTING_LOGIC.md +0 -944
- package/src/libs/crud-sharding/ShardingCrudPro.ts +0 -835
- package/src/libs/crud-sharding/ShardingRouter.ts +0 -512
- package/src/models/StandardColumns.ts +0 -76
- package/src/service/curd/CrudProQuick.ts +0 -360
- package/src/service/curd/README.md +0 -1100
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import { CrudPro } from '@/libs/crud-pro/CrudPro';
|
|
2
|
+
import { KeysOfSimpleSQL } from '../crud-pro/models/keys';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* CrudPro 工厂函数类型
|
|
6
|
+
* 每次调用返回新的 CrudPro 实例,避免状态污染
|
|
7
|
+
*/
|
|
8
|
+
export type CrudProFactory = () => CrudPro;
|
|
9
|
+
|
|
1
10
|
/**
|
|
2
11
|
* 分表配置模型
|
|
3
12
|
*
|
|
@@ -5,8 +14,8 @@
|
|
|
5
14
|
* - YEAR: 按年分表,如 order_2024, order_2025
|
|
6
15
|
* - MONTH: 按月分表,如 order_202401, order_202402
|
|
7
16
|
* - DAY: 按日分表,如 order_20240101
|
|
8
|
-
* - RANGE: 按范围分表,如 user_0 ~ user_99
|
|
9
17
|
* - HASH: 按哈希分表,如 order_01 ~ order_16
|
|
18
|
+
* - KEY: 按键值分表,字段原值=表后缀,如 order_east, order_west
|
|
10
19
|
* - CUSTOM: 自定义分表规则
|
|
11
20
|
*/
|
|
12
21
|
|
|
@@ -20,10 +29,10 @@ export enum ShardingType {
|
|
|
20
29
|
MONTH = 'month',
|
|
21
30
|
/** 按日分表:table_20240101 */
|
|
22
31
|
DAY = 'day',
|
|
23
|
-
/** 按范围分表:table_0 ~ table_99 */
|
|
24
|
-
RANGE = 'range',
|
|
25
32
|
/** 按哈希分表:table_01 ~ table_16 */
|
|
26
33
|
HASH = 'hash',
|
|
34
|
+
/** 按键值分表:字段原值=表后缀,如 table_east, table_west */
|
|
35
|
+
KEY = 'key',
|
|
27
36
|
/** 自定义分表规则 */
|
|
28
37
|
CUSTOM = 'custom',
|
|
29
38
|
}
|
|
@@ -45,15 +54,16 @@ export interface IShardingConfig {
|
|
|
45
54
|
|
|
46
55
|
/**
|
|
47
56
|
* 分表数量
|
|
48
|
-
* 用于
|
|
49
|
-
* 默认值:RANGE 为 10,HASH 为 16
|
|
57
|
+
* 用于 HASH 类型,指定哈希取模的分表总数
|
|
50
58
|
*/
|
|
51
59
|
tableCount?: number;
|
|
52
60
|
|
|
53
61
|
/**
|
|
54
62
|
* 分表字段
|
|
55
|
-
* 用于
|
|
56
|
-
*
|
|
63
|
+
* 用于 HASH 和 KEY 类型,根据字段值计算分表
|
|
64
|
+
* - HASH: hash(shardingColumn) % tableCount
|
|
65
|
+
* - KEY: 字段原值直接作为表后缀
|
|
66
|
+
* 例如:user_id, region
|
|
57
67
|
*/
|
|
58
68
|
shardingColumn?: string;
|
|
59
69
|
|
|
@@ -63,6 +73,14 @@ export interface IShardingConfig {
|
|
|
63
73
|
*/
|
|
64
74
|
timeColumn?: string;
|
|
65
75
|
|
|
76
|
+
/**
|
|
77
|
+
* 主键字段
|
|
78
|
+
* 用于时间分表场景下,当 condition 中包含主键时,时间字段仅用于路由定位分表,
|
|
79
|
+
* 不参与具体表的查询条件(避免时间精度损失导致查询失败)
|
|
80
|
+
* 例如:id, order_id
|
|
81
|
+
*/
|
|
82
|
+
primaryKey?: string;
|
|
83
|
+
|
|
66
84
|
/**
|
|
67
85
|
* 自定义分表路由函数
|
|
68
86
|
* 用于 CUSTOM 类型
|
|
@@ -86,8 +104,8 @@ export interface IShardingConfig {
|
|
|
86
104
|
* 适用于时间分表类型(YEAR/MONTH/DAY)。
|
|
87
105
|
*
|
|
88
106
|
* 默认值:
|
|
89
|
-
* - YEAR:
|
|
90
|
-
* - MONTH:
|
|
107
|
+
* - YEAR: 2(最近2年)
|
|
108
|
+
* - MONTH: 3(最近3个月)
|
|
91
109
|
* - DAY: 7(最近7天)
|
|
92
110
|
*
|
|
93
111
|
* @example
|
|
@@ -228,7 +246,7 @@ export interface IShardingRouterContext {
|
|
|
228
246
|
* SQL 简单名称
|
|
229
247
|
* 用于判断具体的查询类型
|
|
230
248
|
*/
|
|
231
|
-
sqlSimpleName
|
|
249
|
+
sqlSimpleName: KeysOfSimpleSQL;
|
|
232
250
|
}
|
|
233
251
|
|
|
234
252
|
/**
|
|
@@ -10,6 +10,15 @@ import { ShardingCountCache, shardingHashCondition } from './ShardingCountCache'
|
|
|
10
10
|
export interface IShardingPageQueryResult {
|
|
11
11
|
rows: any[];
|
|
12
12
|
total_count: number;
|
|
13
|
+
lastCtx: ExecuteContext | null;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 列表查询结果
|
|
18
|
+
*/
|
|
19
|
+
export interface IShardingListQueryResult {
|
|
20
|
+
rows: any[];
|
|
21
|
+
lastCtx: ExecuteContext | null;
|
|
13
22
|
}
|
|
14
23
|
|
|
15
24
|
/**
|
|
@@ -63,16 +72,17 @@ export class ShardingMerger {
|
|
|
63
72
|
const offset = (pageNo - 1) * pageSize;
|
|
64
73
|
const targetEnd = offset + pageSize; // 需要取到第几条
|
|
65
74
|
|
|
66
|
-
// 1.
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
75
|
+
// 1. 串行查询所有分表的记录数
|
|
76
|
+
const counts: number[] = [];
|
|
77
|
+
for (const table of tables) {
|
|
78
|
+
const count = await this.queryCountSafe(crudPro, table, reqJson, cfgJson);
|
|
79
|
+
counts.push(count);
|
|
80
|
+
}
|
|
71
81
|
const totalCount = counts.reduce((sum, c) => sum + c, 0);
|
|
72
82
|
|
|
73
83
|
// 总数为0,直接返回
|
|
74
84
|
if (totalCount === 0) {
|
|
75
|
-
return { rows: [], total_count: 0 };
|
|
85
|
+
return { rows: [], total_count: 0, lastCtx: null };
|
|
76
86
|
}
|
|
77
87
|
|
|
78
88
|
// 2. 根据累计数量直接定位目标表
|
|
@@ -80,17 +90,21 @@ export class ShardingMerger {
|
|
|
80
90
|
|
|
81
91
|
// 3. 只查询包含目标数据的分表
|
|
82
92
|
let allRows: any[] = [];
|
|
93
|
+
let lastCtx: ExecuteContext | null = null;
|
|
83
94
|
for (const target of targetTables) {
|
|
84
|
-
|
|
85
|
-
crudPro, target.table, reqJson, cfgJson,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
95
|
+
try {
|
|
96
|
+
const ctx = await this.executeQueryWithOffset(crudPro, target.table, reqJson, cfgJson, target.innerOffset, target.innerLimit);
|
|
97
|
+
lastCtx = ctx;
|
|
98
|
+
allRows = allRows.concat(ctx.getResRows() || []);
|
|
99
|
+
} catch (e) {
|
|
100
|
+
// 表不存在或其他错误,跳过
|
|
101
|
+
}
|
|
89
102
|
}
|
|
90
103
|
|
|
91
104
|
return {
|
|
92
105
|
rows: allRows,
|
|
93
106
|
total_count: totalCount,
|
|
107
|
+
lastCtx,
|
|
94
108
|
};
|
|
95
109
|
}
|
|
96
110
|
|
|
@@ -118,9 +132,10 @@ export class ShardingMerger {
|
|
|
118
132
|
reqJson: IRequestModel,
|
|
119
133
|
cfgJson: IRequestCfgModel,
|
|
120
134
|
maxRows: number = 10000
|
|
121
|
-
): Promise<
|
|
135
|
+
): Promise<IShardingListQueryResult> {
|
|
122
136
|
// 串行查询分表,按表顺序拼接,达到上限即停
|
|
123
137
|
let allRows: any[] = [];
|
|
138
|
+
let lastCtx: ExecuteContext | null = null;
|
|
124
139
|
|
|
125
140
|
for (const table of tables) {
|
|
126
141
|
const needMore = maxRows - allRows.length;
|
|
@@ -128,8 +143,13 @@ export class ShardingMerger {
|
|
|
128
143
|
break;
|
|
129
144
|
}
|
|
130
145
|
|
|
131
|
-
|
|
132
|
-
|
|
146
|
+
try {
|
|
147
|
+
const ctx = await this.executeQuery(crudPro, table, reqJson, cfgJson, needMore);
|
|
148
|
+
lastCtx = ctx;
|
|
149
|
+
allRows = allRows.concat(ctx.getResRows() || []);
|
|
150
|
+
} catch (e) {
|
|
151
|
+
// 表不存在或其他错误,跳过
|
|
152
|
+
}
|
|
133
153
|
|
|
134
154
|
// 达到上限后停止,不再查询后续表
|
|
135
155
|
if (allRows.length >= maxRows) {
|
|
@@ -138,7 +158,7 @@ export class ShardingMerger {
|
|
|
138
158
|
}
|
|
139
159
|
}
|
|
140
160
|
|
|
141
|
-
return allRows;
|
|
161
|
+
return { rows: allRows, lastCtx };
|
|
142
162
|
}
|
|
143
163
|
|
|
144
164
|
// ============ 私有方法:分页定位 ============
|
|
@@ -256,54 +276,6 @@ export class ShardingMerger {
|
|
|
256
276
|
}
|
|
257
277
|
}
|
|
258
278
|
|
|
259
|
-
/**
|
|
260
|
-
* 安全查询数据行(表不存在时返回空数组)
|
|
261
|
-
*/
|
|
262
|
-
private async queryRowsSafe(
|
|
263
|
-
crudPro: CrudPro,
|
|
264
|
-
table: string,
|
|
265
|
-
reqJson: IRequestModel,
|
|
266
|
-
cfgJson: IRequestCfgModel,
|
|
267
|
-
limit?: number
|
|
268
|
-
): Promise<any[]> {
|
|
269
|
-
try {
|
|
270
|
-
const ctx = await this.executeQuery(crudPro, table, reqJson, cfgJson, limit);
|
|
271
|
-
return ctx.getResRows() || [];
|
|
272
|
-
} catch (e) {
|
|
273
|
-
// 表不存在或其他错误,返回空数组
|
|
274
|
-
return [];
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* 安全查询数据行(支持表内偏移,表不存在时返回空数组)
|
|
280
|
-
*
|
|
281
|
-
* 用于分页定位后,直接从某张表指定偏移处取数据
|
|
282
|
-
*
|
|
283
|
-
* @param crudPro CrudPro 实例
|
|
284
|
-
* @param table 分表名
|
|
285
|
-
* @param reqJson 请求参数
|
|
286
|
-
* @param cfgJson 配置
|
|
287
|
-
* @param innerOffset 表内偏移(跳过前 N 条)
|
|
288
|
-
* @param innerLimit 取多少条
|
|
289
|
-
*/
|
|
290
|
-
private async queryRowsSafeWithOffset(
|
|
291
|
-
crudPro: CrudPro,
|
|
292
|
-
table: string,
|
|
293
|
-
reqJson: IRequestModel,
|
|
294
|
-
cfgJson: IRequestCfgModel,
|
|
295
|
-
innerOffset: number,
|
|
296
|
-
innerLimit: number
|
|
297
|
-
): Promise<any[]> {
|
|
298
|
-
try {
|
|
299
|
-
const ctx = await this.executeQueryWithOffset(crudPro, table, reqJson, cfgJson, innerOffset, innerLimit);
|
|
300
|
-
return ctx.getResRows() || [];
|
|
301
|
-
} catch (e) {
|
|
302
|
-
// 表不存在或其他错误,返回空数组
|
|
303
|
-
return [];
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
|
|
307
279
|
/**
|
|
308
280
|
* 执行 COUNT 查询
|
|
309
281
|
*/
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ExecuteContext } from '@/libs/crud-pro/models/ExecuteContext';
|
|
2
|
+
import { CrudResultBase } from '@/libs/crud-pro/models/CrudResult';
|
|
3
|
+
|
|
4
|
+
/** 分表批量插入结果 */
|
|
5
|
+
class ShardingBatchInsertResult extends CrudResultBase {
|
|
6
|
+
readonly totalAffected: number;
|
|
7
|
+
readonly tableResults: Array<{ table: string; affected: number; rowCount: number }>;
|
|
8
|
+
readonly tableCount: number;
|
|
9
|
+
readonly success: boolean;
|
|
10
|
+
readonly errors: Array<{ table: string; error: Error }>;
|
|
11
|
+
|
|
12
|
+
constructor(data: {
|
|
13
|
+
totalAffected: number;
|
|
14
|
+
tableResults: Array<{ table: string; affected: number; rowCount: number }>;
|
|
15
|
+
tableCount: number;
|
|
16
|
+
success: boolean;
|
|
17
|
+
errors: Array<{ table: string; error: Error }>;
|
|
18
|
+
lastContext: ExecuteContext;
|
|
19
|
+
}) {
|
|
20
|
+
super(data.lastContext);
|
|
21
|
+
this.totalAffected = data.totalAffected;
|
|
22
|
+
this.tableResults = data.tableResults;
|
|
23
|
+
this.tableCount = data.tableCount;
|
|
24
|
+
this.success = data.success;
|
|
25
|
+
this.errors = data.errors;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { ShardingBatchInsertResult };
|