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,12 +1,34 @@
|
|
|
1
1
|
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import { IRequestCfgModel, IRequestModel, ISqlCfgModel, ITableListResult, ITableNamesOptions, ITableNamesQuery } from '../../libs/crud-pro/interfaces';
|
|
2
|
+
import { IRequestCfgModel, IRequestModel, ISqlCfgModel, ITableListResult, ITableNamesOptions, ITableNamesQuery, ExecuteSQLResult } from '../../libs/crud-pro/interfaces';
|
|
3
3
|
import { SqlDbType } from '../../libs/crud-pro/models/keys';
|
|
4
4
|
import { ExecuteContext, IExecuteContextHandler } from '../../libs/crud-pro/models/ExecuteContext';
|
|
5
5
|
import { RelatedType } from './CurdMixUtils';
|
|
6
6
|
import { BaseService } from '../base/BaseService';
|
|
7
7
|
import { IRequestCfgModel2 } from '../../models/bizmodels';
|
|
8
|
-
import { CrudProQuick } from '
|
|
9
|
-
import {
|
|
8
|
+
import { CrudProQuick } from '../../libs/crud-pro-quick';
|
|
9
|
+
import { ShardingBase, IShardingConfig } from '../../libs/crud-sharding';
|
|
10
|
+
/**
|
|
11
|
+
* getQuickCrud 参数接口
|
|
12
|
+
*/
|
|
13
|
+
export interface IGetQuickCrudParam {
|
|
14
|
+
/** 数据库名 */
|
|
15
|
+
sqlDatabase: string;
|
|
16
|
+
/** 数据库类型 */
|
|
17
|
+
sqlDbType: SqlDbType;
|
|
18
|
+
/** 表名(可选) */
|
|
19
|
+
sqlTable?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* getShardingCrud 参数接口
|
|
23
|
+
*/
|
|
24
|
+
export interface IGetShardingCrudParam {
|
|
25
|
+
/** 数据库名 */
|
|
26
|
+
sqlDatabase: string;
|
|
27
|
+
/** 数据库类型 */
|
|
28
|
+
sqlDbType: SqlDbType;
|
|
29
|
+
/** 分表配置 */
|
|
30
|
+
shardingConfig: IShardingConfig;
|
|
31
|
+
}
|
|
10
32
|
export declare class CurdProService extends BaseService {
|
|
11
33
|
protected ctx: Context;
|
|
12
34
|
private mysql2Config;
|
|
@@ -14,7 +36,37 @@ export declare class CurdProService extends BaseService {
|
|
|
14
36
|
private sqlserver2Config;
|
|
15
37
|
private crudProCfg;
|
|
16
38
|
private responseCfgHandlers;
|
|
39
|
+
/**
|
|
40
|
+
* 注册“响应配置处理器”(response cfg handler)。
|
|
41
|
+
*
|
|
42
|
+
* 这些处理器会在一次 CRUD/SQL 执行完成后被调用,用于对 `ExecuteContext` 做统一的二次加工,
|
|
43
|
+
* 例如:追加扩展数据、做字段脱敏、统一包装返回结构等。
|
|
44
|
+
*
|
|
45
|
+
* @param key 处理器类型标识(业务自定义枚举/常量)
|
|
46
|
+
* @param handler 处理器实现
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* curdProService.setResponseCfgHandlers(RelatedType.USER, {
|
|
50
|
+
* async handleExecuteContextPrepare(ctx) {
|
|
51
|
+
* // 可在执行结果处理前做准备
|
|
52
|
+
* },
|
|
53
|
+
* async handleExecuteContext(ctx) {
|
|
54
|
+
* // 对 ctx.result / ctx.data 等进行二次加工
|
|
55
|
+
* },
|
|
56
|
+
* });
|
|
57
|
+
*/
|
|
17
58
|
setResponseCfgHandlers(key: RelatedType, handler: IExecuteContextHandler): void;
|
|
59
|
+
/**
|
|
60
|
+
* 获取当前已注册的“响应配置处理器”集合。
|
|
61
|
+
*
|
|
62
|
+
* 一般用于调试或在外层框架中统一检查/复用已有 handler。
|
|
63
|
+
*
|
|
64
|
+
* @returns 以 `RelatedType` 为 key 的处理器映射表
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const handlers = curdProService.getResponseCfgHandlers();
|
|
68
|
+
* const userHandler = handlers[RelatedType.USER];
|
|
69
|
+
*/
|
|
18
70
|
getResponseCfgHandlers(): Record<RelatedType, IExecuteContextHandler>;
|
|
19
71
|
/**
|
|
20
72
|
* Execute级别:每次调用都会产生新的
|
|
@@ -22,53 +74,121 @@ export declare class CurdProService extends BaseService {
|
|
|
22
74
|
*/
|
|
23
75
|
private getCrudPro;
|
|
24
76
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
77
|
+
* 通过 `method` 走配置化 CRUD 执行(从缓存/加载的配置中解析)。
|
|
78
|
+
*
|
|
79
|
+
* 适用于:前端/调用方只传 `method` + 入参,由服务端根据 `method` 找到对应的 CRUD 配置并执行。
|
|
80
|
+
* 在非调试模式下会启用配置缓存(调试模式关闭缓存,便于开发即时生效)。
|
|
81
|
+
*
|
|
82
|
+
* @param reqJson 请求模型,必须包含 `method`
|
|
83
|
+
* @returns `ExecuteContext`(包含执行过程与结果数据)
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* const ctx = await curdProService.executeCrud({
|
|
87
|
+
* method: 'user.list',
|
|
88
|
+
* pageNo: 1,
|
|
89
|
+
* pageSize: 20,
|
|
90
|
+
* });
|
|
91
|
+
* console.log(ctx.result);
|
|
27
92
|
*/
|
|
28
93
|
executeCrud(reqJson: IRequestModel): Promise<ExecuteContext>;
|
|
29
|
-
executeSQL(sqlCfgModel: ISqlCfgModel): Promise<any>;
|
|
30
|
-
executeCrudByCfg(reqJson: IRequestModel, cfgModel: IRequestCfgModel2): Promise<ExecuteContext>;
|
|
31
94
|
/**
|
|
32
|
-
*
|
|
95
|
+
* 直接执行一段 SQL(不依赖 `method` 配置)。
|
|
33
96
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* @param
|
|
37
|
-
* @
|
|
38
|
-
*
|
|
97
|
+
* 适用于:后台管理/运维脚本/内部工具需要直接跑 SQL 的场景(仍会复用本服务的连接池、日志、visitor、事务等上下文)。
|
|
98
|
+
*
|
|
99
|
+
* @param sqlCfgModel SQL 执行配置(数据库、类型、SQL、参数等)
|
|
100
|
+
* @returns SQL 执行结果
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* const res = await curdProService.executeSQL({
|
|
104
|
+
* sqlDbType: SqlDbType.mysql,
|
|
105
|
+
* sqlDatabase: 'mydb',
|
|
106
|
+
* executeSql: 'select * from t_user where id = ?',
|
|
107
|
+
* executeSqlArgs: [1],
|
|
108
|
+
* });
|
|
39
109
|
*/
|
|
40
|
-
|
|
110
|
+
executeSQL(sqlCfgModel: ISqlCfgModel): Promise<ExecuteSQLResult>;
|
|
111
|
+
/**
|
|
112
|
+
* 直接按指定配置执行一次 CRUD(不走缓存查找)。
|
|
113
|
+
*
|
|
114
|
+
* 适用于:调用方已经拿到了/动态生成了本次要执行的 CRUD 配置,想直接执行并得到结果。
|
|
115
|
+
* 该方法会对 `cfgModel` 做两类标准化处理:
|
|
116
|
+
* - 统一修正/补全配置(`fixCfgModel`)
|
|
117
|
+
* - 应用软删除规则(`fixSoftDelete`)
|
|
118
|
+
*
|
|
119
|
+
* @param reqJson 本次请求入参
|
|
120
|
+
* @param cfgModel 本次请求对应的 CRUD 配置
|
|
121
|
+
* @returns `ExecuteContext`
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* const cfg = await curdProService.getCachedCfgByMethod('user.list');
|
|
125
|
+
* const ctx = await curdProService.executeCrudByCfg(
|
|
126
|
+
* { method: 'user.list', pageNo: 1, pageSize: 20 },
|
|
127
|
+
* cfg as any
|
|
128
|
+
* );
|
|
129
|
+
*/
|
|
130
|
+
executeCrudByCfg(reqJson: IRequestModel, cfgModel: IRequestCfgModel2): Promise<ExecuteContext>;
|
|
41
131
|
/**
|
|
42
132
|
* 获取 CrudProQuick 工具类
|
|
43
133
|
*
|
|
44
134
|
* 提供快速 CRUD 操作的便捷方法,封装了常用的数据库操作。
|
|
45
135
|
*
|
|
46
|
-
* @param
|
|
47
|
-
* @param sqlDbType 数据库类型
|
|
48
|
-
* @param sqlTable 表名(可选)
|
|
136
|
+
* @param param 参数对象
|
|
49
137
|
* @returns CrudProQuick 实例
|
|
50
138
|
*
|
|
51
139
|
* @example
|
|
52
|
-
* const quick = curdProService.getQuickCrud(
|
|
53
|
-
*
|
|
140
|
+
* const quick = curdProService.getQuickCrud({
|
|
141
|
+
* sqlDatabase: 'mydb',
|
|
142
|
+
* sqlDbType: SqlDbType.mysql,
|
|
143
|
+
* sqlTable: 't_user',
|
|
144
|
+
* });
|
|
145
|
+
* const users = await quick.find({ status: 'active' });
|
|
54
146
|
*/
|
|
55
|
-
getQuickCrud(
|
|
147
|
+
getQuickCrud(param: IGetQuickCrudParam): CrudProQuick;
|
|
56
148
|
/**
|
|
57
149
|
* 获取分表 CRUD 操作器
|
|
58
150
|
*
|
|
59
|
-
* @param
|
|
60
|
-
* @
|
|
61
|
-
* @param shardingConfig 分表配置
|
|
62
|
-
* @returns ShardingCrudPro 实例
|
|
151
|
+
* @param param 参数对象
|
|
152
|
+
* @returns ShardingBase 实例(实际类型根据 shardingConfig.type 决定)
|
|
63
153
|
*
|
|
64
154
|
* @example
|
|
65
|
-
* const sharding = curdProService.getShardingCrud(
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
155
|
+
* const sharding = curdProService.getShardingCrud({
|
|
156
|
+
* sqlDatabase: 'mydb',
|
|
157
|
+
* sqlDbType: SqlDbType.mysql,
|
|
158
|
+
* shardingConfig: {
|
|
159
|
+
* type: ShardingType.MONTH,
|
|
160
|
+
* baseTable: 't_order',
|
|
161
|
+
* timeColumn: 'created_at',
|
|
162
|
+
* },
|
|
69
163
|
* });
|
|
70
164
|
*/
|
|
71
|
-
getShardingCrud(
|
|
165
|
+
getShardingCrud(param: IGetShardingCrudParam): ShardingBase;
|
|
166
|
+
/**
|
|
167
|
+
* 根据 `method` 获取(可能来自缓存的)CRUD 配置。
|
|
168
|
+
*
|
|
169
|
+
* 适用于:你只想先拿到配置做检查/二次加工/审计,再决定是否执行。
|
|
170
|
+
* 非调试模式会启用缓存(调试模式关闭缓存)。
|
|
171
|
+
*
|
|
172
|
+
* @param method 配置方法名,例如:`user.list`
|
|
173
|
+
* @returns CRUD 配置模型
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* const cfg = await curdProService.getCachedCfgByMethod('user.list');
|
|
177
|
+
* console.log(cfg.sqlSimpleName);
|
|
178
|
+
*/
|
|
72
179
|
getCachedCfgByMethod(method: string): Promise<IRequestCfgModel>;
|
|
180
|
+
/**
|
|
181
|
+
* 获取数据库的表/视图等结构信息列表(用于数据源探测、表选择器、代码生成等场景)。
|
|
182
|
+
*
|
|
183
|
+
* @param query 查询条件(例如:指定数据库、关键字过滤、分页等)
|
|
184
|
+
* @param options 可选项(例如:是否包含视图/系统表、大小写处理等,具体以接口定义为准)
|
|
185
|
+
* @returns 表信息列表结果
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* const tables = await curdProService.getAllTableInfos(
|
|
189
|
+
* { sqlDbType: SqlDbType.mysql, sqlDatabase: 'mydb' },
|
|
190
|
+
* { skipCache: true }
|
|
191
|
+
* );
|
|
192
|
+
*/
|
|
73
193
|
getAllTableInfos(query: ITableNamesQuery, options?: ITableNamesOptions): Promise<ITableListResult>;
|
|
74
194
|
}
|
|
@@ -20,11 +20,11 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
20
20
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
21
21
|
const ExecuteContextFunc_1 = require("../../libs/crud-pro/models/ExecuteContextFunc");
|
|
22
22
|
const BaseService_1 = require("../base/BaseService");
|
|
23
|
-
const
|
|
23
|
+
const crud_pro_quick_1 = require("../../libs/crud-pro-quick");
|
|
24
24
|
const crud_sharding_1 = require("../../libs/crud-sharding");
|
|
25
25
|
const fixCfgModel_1 = require("./fixCfgModel");
|
|
26
26
|
const global_config_1 = require("../../libs/global-config/global-config");
|
|
27
|
-
const fixSoftDelete_1 = require("../../
|
|
27
|
+
const fixSoftDelete_1 = require("../../libs/crud-pro-quick/fixSoftDelete");
|
|
28
28
|
function toVisitor(ctx) {
|
|
29
29
|
const workbenchInfo = ctx.workbenchInfo;
|
|
30
30
|
const userSession = ctx.userSession;
|
|
@@ -123,9 +123,39 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
123
123
|
super(...arguments);
|
|
124
124
|
this.responseCfgHandlers = {};
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* 注册“响应配置处理器”(response cfg handler)。
|
|
128
|
+
*
|
|
129
|
+
* 这些处理器会在一次 CRUD/SQL 执行完成后被调用,用于对 `ExecuteContext` 做统一的二次加工,
|
|
130
|
+
* 例如:追加扩展数据、做字段脱敏、统一包装返回结构等。
|
|
131
|
+
*
|
|
132
|
+
* @param key 处理器类型标识(业务自定义枚举/常量)
|
|
133
|
+
* @param handler 处理器实现
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* curdProService.setResponseCfgHandlers(RelatedType.USER, {
|
|
137
|
+
* async handleExecuteContextPrepare(ctx) {
|
|
138
|
+
* // 可在执行结果处理前做准备
|
|
139
|
+
* },
|
|
140
|
+
* async handleExecuteContext(ctx) {
|
|
141
|
+
* // 对 ctx.result / ctx.data 等进行二次加工
|
|
142
|
+
* },
|
|
143
|
+
* });
|
|
144
|
+
*/
|
|
126
145
|
setResponseCfgHandlers(key, handler) {
|
|
127
146
|
this.responseCfgHandlers[key] = handler;
|
|
128
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* 获取当前已注册的“响应配置处理器”集合。
|
|
150
|
+
*
|
|
151
|
+
* 一般用于调试或在外层框架中统一检查/复用已有 handler。
|
|
152
|
+
*
|
|
153
|
+
* @returns 以 `RelatedType` 为 key 的处理器映射表
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* const handlers = curdProService.getResponseCfgHandlers();
|
|
157
|
+
* const userHandler = handlers[RelatedType.USER];
|
|
158
|
+
*/
|
|
129
159
|
getResponseCfgHandlers() {
|
|
130
160
|
return this.responseCfgHandlers;
|
|
131
161
|
}
|
|
@@ -153,8 +183,21 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
153
183
|
return crudPro;
|
|
154
184
|
}
|
|
155
185
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
186
|
+
* 通过 `method` 走配置化 CRUD 执行(从缓存/加载的配置中解析)。
|
|
187
|
+
*
|
|
188
|
+
* 适用于:前端/调用方只传 `method` + 入参,由服务端根据 `method` 找到对应的 CRUD 配置并执行。
|
|
189
|
+
* 在非调试模式下会启用配置缓存(调试模式关闭缓存,便于开发即时生效)。
|
|
190
|
+
*
|
|
191
|
+
* @param reqJson 请求模型,必须包含 `method`
|
|
192
|
+
* @returns `ExecuteContext`(包含执行过程与结果数据)
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* const ctx = await curdProService.executeCrud({
|
|
196
|
+
* method: 'user.list',
|
|
197
|
+
* pageNo: 1,
|
|
198
|
+
* pageSize: 20,
|
|
199
|
+
* });
|
|
200
|
+
* console.log(ctx.result);
|
|
158
201
|
*/
|
|
159
202
|
async executeCrud(reqJson) {
|
|
160
203
|
if (!reqJson.method) {
|
|
@@ -165,77 +208,153 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
165
208
|
const isEnableCache = !this.isEnableDebug();
|
|
166
209
|
return curdPro.executeCrud(reqJson, isEnableCache);
|
|
167
210
|
}
|
|
168
|
-
|
|
211
|
+
/**
|
|
212
|
+
* 直接执行一段 SQL(不依赖 `method` 配置)。
|
|
213
|
+
*
|
|
214
|
+
* 适用于:后台管理/运维脚本/内部工具需要直接跑 SQL 的场景(仍会复用本服务的连接池、日志、visitor、事务等上下文)。
|
|
215
|
+
*
|
|
216
|
+
* @param sqlCfgModel SQL 执行配置(数据库、类型、SQL、参数等)
|
|
217
|
+
* @returns SQL 执行结果
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* const res = await curdProService.executeSQL({
|
|
221
|
+
* sqlDbType: SqlDbType.mysql,
|
|
222
|
+
* sqlDatabase: 'mydb',
|
|
223
|
+
* executeSql: 'select * from t_user where id = ?',
|
|
224
|
+
* executeSqlArgs: [1],
|
|
225
|
+
* });
|
|
226
|
+
*/
|
|
169
227
|
async executeSQL(sqlCfgModel) {
|
|
170
228
|
const curdPro = this.getCrudPro();
|
|
171
229
|
return curdPro.executeSQL(sqlCfgModel);
|
|
172
230
|
}
|
|
173
|
-
|
|
231
|
+
/**
|
|
232
|
+
* 直接按指定配置执行一次 CRUD(不走缓存查找)。
|
|
233
|
+
*
|
|
234
|
+
* 适用于:调用方已经拿到了/动态生成了本次要执行的 CRUD 配置,想直接执行并得到结果。
|
|
235
|
+
* 该方法会对 `cfgModel` 做两类标准化处理:
|
|
236
|
+
* - 统一修正/补全配置(`fixCfgModel`)
|
|
237
|
+
* - 应用软删除规则(`fixSoftDelete`)
|
|
238
|
+
*
|
|
239
|
+
* @param reqJson 本次请求入参
|
|
240
|
+
* @param cfgModel 本次请求对应的 CRUD 配置
|
|
241
|
+
* @returns `ExecuteContext`
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* const cfg = await curdProService.getCachedCfgByMethod('user.list');
|
|
245
|
+
* const ctx = await curdProService.executeCrudByCfg(
|
|
246
|
+
* { method: 'user.list', pageNo: 1, pageSize: 20 },
|
|
247
|
+
* cfg as any
|
|
248
|
+
* );
|
|
249
|
+
*/
|
|
174
250
|
async executeCrudByCfg(reqJson, cfgModel) {
|
|
175
251
|
this.logInfo('executeCrudByCfg', cfgModel);
|
|
176
252
|
const curdPro = this.getCrudPro();
|
|
177
253
|
// 应用标准的updateCfg。
|
|
178
254
|
(0, fixCfgModel_1.fixCfgModel)(cfgModel);
|
|
179
255
|
// 应用软删除动作。
|
|
180
|
-
(0, fixSoftDelete_1.fixSoftDelete)(cfgModel.sqlSimpleName, cfgModel, reqJson,
|
|
256
|
+
(0, fixSoftDelete_1.fixSoftDelete)(cfgModel.sqlSimpleName, cfgModel, reqJson, curdPro.getVisitor());
|
|
181
257
|
return await curdPro.executeCrudByCfg(reqJson, cfgModel);
|
|
182
258
|
}
|
|
183
|
-
/**
|
|
184
|
-
* 获取 CrudProQuick 工具类(已废弃)
|
|
185
|
-
*
|
|
186
|
-
* @deprecated 请使用 getQuickCrud 替代
|
|
187
|
-
* @param sqlDatabase 数据库名
|
|
188
|
-
* @param sqlDbType 数据库类型
|
|
189
|
-
* @param sqlTable 表名(可选)
|
|
190
|
-
* @returns CrudProQuick 实例
|
|
191
|
-
*/
|
|
192
|
-
getBbUtil(sqlDatabase, sqlDbType, sqlTable) {
|
|
193
|
-
return this.getQuickCrud(sqlDatabase, sqlDbType, sqlTable);
|
|
194
|
-
}
|
|
195
259
|
/**
|
|
196
260
|
* 获取 CrudProQuick 工具类
|
|
197
261
|
*
|
|
198
262
|
* 提供快速 CRUD 操作的便捷方法,封装了常用的数据库操作。
|
|
199
263
|
*
|
|
200
|
-
* @param
|
|
201
|
-
* @param sqlDbType 数据库类型
|
|
202
|
-
* @param sqlTable 表名(可选)
|
|
264
|
+
* @param param 参数对象
|
|
203
265
|
* @returns CrudProQuick 实例
|
|
204
266
|
*
|
|
205
267
|
* @example
|
|
206
|
-
* const quick = curdProService.getQuickCrud(
|
|
207
|
-
*
|
|
268
|
+
* const quick = curdProService.getQuickCrud({
|
|
269
|
+
* sqlDatabase: 'mydb',
|
|
270
|
+
* sqlDbType: SqlDbType.mysql,
|
|
271
|
+
* sqlTable: 't_user',
|
|
272
|
+
* });
|
|
273
|
+
* const users = await quick.find({ status: 'active' });
|
|
208
274
|
*/
|
|
209
|
-
getQuickCrud(
|
|
210
|
-
const
|
|
211
|
-
|
|
275
|
+
getQuickCrud(param) {
|
|
276
|
+
const { sqlDatabase, sqlDbType, sqlTable } = param;
|
|
277
|
+
// 传入工厂函数,每次需要时创建新的 CrudPro 实例
|
|
278
|
+
return new crud_pro_quick_1.CrudProQuick({
|
|
279
|
+
crudProFactory: () => this.getCrudPro(),
|
|
280
|
+
sqlDatabase,
|
|
281
|
+
sqlDbType,
|
|
282
|
+
sqlTable,
|
|
283
|
+
});
|
|
212
284
|
}
|
|
213
285
|
/**
|
|
214
286
|
* 获取分表 CRUD 操作器
|
|
215
287
|
*
|
|
216
|
-
* @param
|
|
217
|
-
* @
|
|
218
|
-
* @param shardingConfig 分表配置
|
|
219
|
-
* @returns ShardingCrudPro 实例
|
|
288
|
+
* @param param 参数对象
|
|
289
|
+
* @returns ShardingBase 实例(实际类型根据 shardingConfig.type 决定)
|
|
220
290
|
*
|
|
221
291
|
* @example
|
|
222
|
-
* const sharding = curdProService.getShardingCrud(
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
292
|
+
* const sharding = curdProService.getShardingCrud({
|
|
293
|
+
* sqlDatabase: 'mydb',
|
|
294
|
+
* sqlDbType: SqlDbType.mysql,
|
|
295
|
+
* shardingConfig: {
|
|
296
|
+
* type: ShardingType.MONTH,
|
|
297
|
+
* baseTable: 't_order',
|
|
298
|
+
* timeColumn: 'created_at',
|
|
299
|
+
* },
|
|
226
300
|
* });
|
|
227
301
|
*/
|
|
228
|
-
getShardingCrud(
|
|
229
|
-
const
|
|
230
|
-
const
|
|
302
|
+
getShardingCrud(param) {
|
|
303
|
+
const { sqlDatabase, sqlDbType, shardingConfig } = param;
|
|
304
|
+
const factory = () => this.getCrudPro();
|
|
305
|
+
let sharding;
|
|
306
|
+
switch (shardingConfig.type) {
|
|
307
|
+
case crud_sharding_1.ShardingType.YEAR:
|
|
308
|
+
case crud_sharding_1.ShardingType.MONTH:
|
|
309
|
+
case crud_sharding_1.ShardingType.DAY:
|
|
310
|
+
sharding = new crud_sharding_1.ShardingByTimeCrud(factory, shardingConfig);
|
|
311
|
+
break;
|
|
312
|
+
case crud_sharding_1.ShardingType.HASH:
|
|
313
|
+
sharding = new crud_sharding_1.ShardingByHashCrud(factory, shardingConfig);
|
|
314
|
+
break;
|
|
315
|
+
case crud_sharding_1.ShardingType.KEY:
|
|
316
|
+
sharding = new crud_sharding_1.ShardingByKeyCrud(factory, shardingConfig);
|
|
317
|
+
break;
|
|
318
|
+
case crud_sharding_1.ShardingType.CUSTOM:
|
|
319
|
+
sharding = new crud_sharding_1.ShardingByCustomCrud(factory, shardingConfig);
|
|
320
|
+
break;
|
|
321
|
+
default:
|
|
322
|
+
throw new Error(`[CurdProService] 不支持的分表类型: ${shardingConfig.type}`);
|
|
323
|
+
}
|
|
231
324
|
sharding.setBaseCfg({ sqlDatabase, sqlDbType });
|
|
232
325
|
return sharding;
|
|
233
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* 根据 `method` 获取(可能来自缓存的)CRUD 配置。
|
|
329
|
+
*
|
|
330
|
+
* 适用于:你只想先拿到配置做检查/二次加工/审计,再决定是否执行。
|
|
331
|
+
* 非调试模式会启用缓存(调试模式关闭缓存)。
|
|
332
|
+
*
|
|
333
|
+
* @param method 配置方法名,例如:`user.list`
|
|
334
|
+
* @returns CRUD 配置模型
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* const cfg = await curdProService.getCachedCfgByMethod('user.list');
|
|
338
|
+
* console.log(cfg.sqlSimpleName);
|
|
339
|
+
*/
|
|
234
340
|
async getCachedCfgByMethod(method) {
|
|
235
341
|
const curdPro = this.getCrudPro();
|
|
236
342
|
const isEnableCache = !this.isEnableDebug(); // 开发环境不使用缓存
|
|
237
343
|
return curdPro.getCachedCfgByMethod(method, isEnableCache);
|
|
238
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* 获取数据库的表/视图等结构信息列表(用于数据源探测、表选择器、代码生成等场景)。
|
|
347
|
+
*
|
|
348
|
+
* @param query 查询条件(例如:指定数据库、关键字过滤、分页等)
|
|
349
|
+
* @param options 可选项(例如:是否包含视图/系统表、大小写处理等,具体以接口定义为准)
|
|
350
|
+
* @returns 表信息列表结果
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* const tables = await curdProService.getAllTableInfos(
|
|
354
|
+
* { sqlDbType: SqlDbType.mysql, sqlDatabase: 'mydb' },
|
|
355
|
+
* { skipCache: true }
|
|
356
|
+
* );
|
|
357
|
+
*/
|
|
239
358
|
async getAllTableInfos(query, options) {
|
|
240
359
|
const curdPro = this.getCrudPro();
|
|
241
360
|
return curdPro.getAllTableInfos(query, options);
|
|
@@ -47,7 +47,11 @@ exports.ParsedFlowConfig = ParsedFlowConfig;
|
|
|
47
47
|
let FlowConfigService = class FlowConfigService extends BaseService_1.BaseService {
|
|
48
48
|
get flow_config() {
|
|
49
49
|
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
50
|
-
return this.curdProService.getQuickCrud(
|
|
50
|
+
return this.curdProService.getQuickCrud({
|
|
51
|
+
sqlDatabase: SystemDbName,
|
|
52
|
+
sqlDbType: SystemDbType,
|
|
53
|
+
sqlTable: FlowModel_1.FLOW_TABLES.flow_config,
|
|
54
|
+
});
|
|
51
55
|
}
|
|
52
56
|
toCacheKey(flow_code, flow_version) {
|
|
53
57
|
if (!flow_code || typeof flow_code !== 'string') {
|
|
@@ -64,9 +68,10 @@ let FlowConfigService = class FlowConfigService extends BaseService_1.BaseServic
|
|
|
64
68
|
cacheKey: cacheKey,
|
|
65
69
|
cacheName: bizmodels_1.CacheNameEnum.GetFlowConfigOne,
|
|
66
70
|
getter: async () => {
|
|
67
|
-
|
|
71
|
+
const res = await this.flow_config.findUniqueOne({
|
|
68
72
|
condition: { flow_code, flow_version, deleted_at: 0 }
|
|
69
73
|
});
|
|
74
|
+
return res.row;
|
|
70
75
|
},
|
|
71
76
|
});
|
|
72
77
|
}
|
|
@@ -23,7 +23,10 @@ exports.getCurrentDateTime = getCurrentDateTime;
|
|
|
23
23
|
let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_1.BaseService {
|
|
24
24
|
get flowDB() {
|
|
25
25
|
const { FlowDbName, FlowDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
26
|
-
const util = this.curdProService.getQuickCrud(
|
|
26
|
+
const util = this.curdProService.getQuickCrud({
|
|
27
|
+
sqlDatabase: FlowDbName,
|
|
28
|
+
sqlDbType: FlowDbType,
|
|
29
|
+
});
|
|
27
30
|
util.setBaseCfgModel({ maxLimit: 100000 });
|
|
28
31
|
return util;
|
|
29
32
|
}
|
|
@@ -67,7 +70,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
67
70
|
modified_at: getCurrentDateTime(),
|
|
68
71
|
deleted_at: 0,
|
|
69
72
|
};
|
|
70
|
-
const nodeInstanceId = await this.flowDB.
|
|
73
|
+
const nodeInstanceId = await this.flowDB.insert({
|
|
71
74
|
data: nodeInstance,
|
|
72
75
|
}, FlowModel_1.FLOW_TABLES.flow_instance_node);
|
|
73
76
|
nodeInstance.id = nodeInstanceId.insertId;
|
|
@@ -89,7 +92,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
89
92
|
modified_at: getCurrentDateTime(),
|
|
90
93
|
deleted_at: 0,
|
|
91
94
|
};
|
|
92
|
-
const taskInstanceId = await this.flowDB.
|
|
95
|
+
const taskInstanceId = await this.flowDB.insert({
|
|
93
96
|
data: taskInstance,
|
|
94
97
|
}, FlowModel_1.FLOW_TABLES.flow_instance_task);
|
|
95
98
|
taskInstance.id = taskInstanceId.insertId;
|
|
@@ -99,7 +102,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
99
102
|
if (updateNodeInstance.id) {
|
|
100
103
|
updateNodeInstance.modified_by = this.getCurrentUserAccountId();
|
|
101
104
|
updateNodeInstance.modified_at = getCurrentDateTime();
|
|
102
|
-
await this.flowDB.
|
|
105
|
+
await this.flowDB.update({
|
|
103
106
|
condition: {
|
|
104
107
|
id: updateNodeInstance.id,
|
|
105
108
|
},
|
|
@@ -110,7 +113,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
110
113
|
else {
|
|
111
114
|
updateNodeInstance.created_by = this.getCurrentUserAccountId();
|
|
112
115
|
updateNodeInstance.created_at = getCurrentDateTime();
|
|
113
|
-
const res = await this.flowDB.
|
|
116
|
+
const res = await this.flowDB.insert({
|
|
114
117
|
data: updateNodeInstance,
|
|
115
118
|
}, FlowModel_1.FLOW_TABLES.flow_instance_node);
|
|
116
119
|
return res.insertId || '';
|
|
@@ -124,7 +127,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
124
127
|
if (taskInstance.id) {
|
|
125
128
|
taskInstance.modified_by = this.getCurrentUserAccountId();
|
|
126
129
|
taskInstance.modified_at = getCurrentDateTime();
|
|
127
|
-
await this.flowDB.
|
|
130
|
+
await this.flowDB.update({
|
|
128
131
|
condition: {
|
|
129
132
|
id: taskInstance.id,
|
|
130
133
|
},
|
|
@@ -135,7 +138,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
135
138
|
else {
|
|
136
139
|
taskInstance.created_by = this.getCurrentUserAccountId();
|
|
137
140
|
taskInstance.created_at = getCurrentDateTime();
|
|
138
|
-
const res = await this.flowDB.
|
|
141
|
+
const res = await this.flowDB.insert({
|
|
139
142
|
data: taskInstance,
|
|
140
143
|
}, FlowModel_1.FLOW_TABLES.flow_instance_task);
|
|
141
144
|
return res.insertId || '';
|
|
@@ -155,7 +158,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
155
158
|
if (flowInstance.id) {
|
|
156
159
|
flowInstance.modified_by = this.getCurrentUserAccountId();
|
|
157
160
|
flowInstance.modified_at = getCurrentDateTime();
|
|
158
|
-
await this.flowDB.
|
|
161
|
+
await this.flowDB.update({
|
|
159
162
|
condition: {
|
|
160
163
|
id: flowInstance.id,
|
|
161
164
|
},
|
|
@@ -166,7 +169,7 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
166
169
|
else {
|
|
167
170
|
flowInstance.created_by = this.getCurrentUserAccountId();
|
|
168
171
|
flowInstance.created_at = getCurrentDateTime();
|
|
169
|
-
const res = await this.flowDB.
|
|
172
|
+
const res = await this.flowDB.insert({
|
|
170
173
|
data: flowInstance,
|
|
171
174
|
}, FlowModel_1.FLOW_TABLES.flow_instance);
|
|
172
175
|
return res.insertId || '';
|
|
@@ -186,10 +189,10 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
186
189
|
else {
|
|
187
190
|
throw new Error('flow_instance_id is required');
|
|
188
191
|
}
|
|
189
|
-
const res = await this.flowDB.
|
|
192
|
+
const res = await this.flowDB.findUniqueOne({
|
|
190
193
|
condition: condition,
|
|
191
194
|
}, FlowModel_1.FLOW_TABLES.flow_instance_node);
|
|
192
|
-
return res;
|
|
195
|
+
return res.row;
|
|
193
196
|
}
|
|
194
197
|
async getFlowInstance(flow_instance_id, ticket_no) {
|
|
195
198
|
const condition = {};
|
|
@@ -202,10 +205,10 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
202
205
|
if (Object.keys(condition).length === 0) {
|
|
203
206
|
throw new Error('flow_instance_id or ticket_no is required');
|
|
204
207
|
}
|
|
205
|
-
const res = await this.flowDB.
|
|
208
|
+
const res = await this.flowDB.findUniqueOne({
|
|
206
209
|
condition: condition,
|
|
207
210
|
}, FlowModel_1.FLOW_TABLES.flow_instance);
|
|
208
|
-
return res;
|
|
211
|
+
return res.row;
|
|
209
212
|
}
|
|
210
213
|
async getTaskInstance(task_instance_id) {
|
|
211
214
|
const condition = {};
|
|
@@ -215,10 +218,10 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
215
218
|
if (Object.keys(condition).length === 0) {
|
|
216
219
|
throw new Error('task_instance_id is required');
|
|
217
220
|
}
|
|
218
|
-
const res = await this.flowDB.
|
|
221
|
+
const res = await this.flowDB.findUniqueOne({
|
|
219
222
|
condition: condition,
|
|
220
223
|
}, FlowModel_1.FLOW_TABLES.flow_instance_task);
|
|
221
|
-
return res;
|
|
224
|
+
return res.row;
|
|
222
225
|
}
|
|
223
226
|
async getTaskInstanceListByFlowInstanceId(flow_instance_id) {
|
|
224
227
|
const condition = {};
|
|
@@ -228,10 +231,10 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
228
231
|
if (Object.keys(condition).length === 0) {
|
|
229
232
|
throw new Error('flow_instance_id is required');
|
|
230
233
|
}
|
|
231
|
-
const res = await this.flowDB.
|
|
234
|
+
const res = await this.flowDB.findList({
|
|
232
235
|
condition: condition,
|
|
233
236
|
}, FlowModel_1.FLOW_TABLES.flow_instance_task);
|
|
234
|
-
return res;
|
|
237
|
+
return res.rows;
|
|
235
238
|
}
|
|
236
239
|
async getNodeInstanceListByFlowInstanceId(flowInstanceId) {
|
|
237
240
|
const condition = {};
|
|
@@ -241,10 +244,10 @@ let FlowInstanceCrudService = class FlowInstanceCrudService extends BaseService_
|
|
|
241
244
|
if (Object.keys(condition).length === 0) {
|
|
242
245
|
throw new Error('flowInstanceId is required');
|
|
243
246
|
}
|
|
244
|
-
const res = await this.flowDB.
|
|
247
|
+
const res = await this.flowDB.findList({
|
|
245
248
|
condition: condition,
|
|
246
249
|
}, FlowModel_1.FLOW_TABLES.flow_instance_node);
|
|
247
|
-
return res;
|
|
250
|
+
return res.rows;
|
|
248
251
|
}
|
|
249
252
|
};
|
|
250
253
|
__decorate([
|