midway-fatcms 0.0.6 → 0.0.8
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 +337 -0
- package/.qoder/skills/midway-fatcms/03-crud-sharding.md +488 -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 +500 -0
- package/.qoder/skills/midway-fatcms/SKILL.md +96 -0
- package/README.md +9 -9
- 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/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 +23 -2
- package/dist/libs/crud-pro/CrudPro.js +53 -2
- package/dist/libs/crud-pro/interfaces.d.ts +82 -12
- package/dist/libs/crud-pro/models/CrudResult.d.ts +115 -0
- package/dist/libs/crud-pro/models/CrudResult.js +126 -0
- package/dist/libs/crud-pro/models/RequestModel.d.ts +2 -38
- package/dist/libs/crud-pro/models/RequestModel.js +2 -99
- 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.js +1 -2
- package/dist/libs/crud-pro/utils/OrderByUtils.d.ts +70 -0
- package/dist/libs/crud-pro/utils/OrderByUtils.js +158 -0
- package/dist/libs/crud-pro-quick/CrudProQuick.d.ts +295 -0
- package/dist/libs/crud-pro-quick/CrudProQuick.js +529 -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/ShardingConfig.d.ts +15 -2
- package/dist/libs/crud-sharding/ShardingConfig.js +2 -2
- package/dist/libs/crud-sharding/ShardingCrudPro.d.ts +119 -274
- package/dist/libs/crud-sharding/ShardingCrudPro.js +559 -379
- package/dist/libs/crud-sharding/ShardingMerger.d.ts +12 -20
- package/dist/libs/crud-sharding/ShardingMerger.js +36 -51
- package/dist/libs/crud-sharding/ShardingResult.d.ts +33 -0
- package/dist/libs/crud-sharding/ShardingResult.js +16 -0
- package/dist/libs/crud-sharding/ShardingRouter.d.ts +1 -0
- package/dist/libs/crud-sharding/ShardingRouter.js +25 -6
- 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 +4 -3
- package/dist/libs/crud-sharding/index.js +14 -2
- 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/curd/CurdMixService.d.ts +6 -4
- package/dist/service/curd/CurdMixService.js +16 -2
- package/dist/service/curd/CurdProService.d.ts +43 -27
- package/dist/service/curd/CurdProService.js +32 -33
- package/dist/service/flow/FlowConfigService.js +7 -2
- package/dist/service/flow/FlowInstanceCrudService.js +22 -19
- package/package.json +2 -1
- package/src/controller/base/BaseApiController.ts +0 -5
- package/src/controller/gateway/DocGatewayController.ts +1 -1
- 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 +62 -4
- package/src/libs/crud-pro/interfaces.ts +110 -15
- package/src/libs/crud-pro/models/CrudResult.ts +178 -0
- package/src/libs/crud-pro/models/RequestModel.ts +4 -110
- 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 +1 -2
- package/src/libs/crud-pro/utils/OrderByUtils.ts +169 -0
- package/src/libs/crud-pro-quick/CrudProQuick.ts +594 -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/ShardingConfig.ts +18 -2
- package/src/libs/crud-sharding/ShardingCrudPro.ts +689 -440
- package/src/libs/crud-sharding/ShardingMerger.ts +47 -73
- package/src/libs/crud-sharding/ShardingResult.ts +29 -0
- package/src/libs/crud-sharding/ShardingRouter.ts +27 -6
- 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 +14 -3
- 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/crudstd/CrudStdService.ts +2 -2
- package/src/service/curd/CurdMixService.ts +26 -5
- package/src/service/curd/CurdProService.ts +58 -39
- package/src/service/flow/FlowConfigService.ts +7 -2
- package/src/service/flow/FlowInstanceCrudService.ts +23 -20
- 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/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 -1001
- 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/models/StandardColumns.ts +0 -76
- package/src/service/curd/CrudProQuick.ts +0 -360
- package/src/service/curd/README.md +0 -1001
|
@@ -57,7 +57,11 @@ export class SysMenuService extends BaseService {
|
|
|
57
57
|
|
|
58
58
|
private get sys_menus_table() {
|
|
59
59
|
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
60
|
-
return this.curdProService.getQuickCrud(
|
|
60
|
+
return this.curdProService.getQuickCrud({
|
|
61
|
+
sqlDatabase: SystemDbName,
|
|
62
|
+
sqlDbType: SystemDbType,
|
|
63
|
+
sqlTable: SystemTables.sys_menus,
|
|
64
|
+
})
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
|
|
@@ -70,9 +74,10 @@ export class SysMenuService extends BaseService {
|
|
|
70
74
|
cacheKey: CacheNameEnum.GetSysMenusList,
|
|
71
75
|
cacheName: CacheNameEnum.GetSysMenusList,
|
|
72
76
|
getter: async () => {
|
|
73
|
-
|
|
77
|
+
const res = await this.sys_menus_table.findList({
|
|
74
78
|
condition: {}
|
|
75
79
|
});
|
|
80
|
+
return res.rows;
|
|
76
81
|
},
|
|
77
82
|
});
|
|
78
83
|
}
|
|
@@ -98,7 +98,7 @@ export class CrudStdService extends ApiBaseService {
|
|
|
98
98
|
if (!appInfo || appInfo.status !== 1) {
|
|
99
99
|
throw new BizException('应用不存在或已下线:' + appCode);
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
|
|
102
102
|
const stdCrudCfgObj = appInfo.stdCrudCfgObj;
|
|
103
103
|
|
|
104
104
|
//删除策略
|
|
@@ -296,7 +296,7 @@ export class CrudStdService extends ApiBaseService {
|
|
|
296
296
|
if (!appInfo) {
|
|
297
297
|
return null;
|
|
298
298
|
}
|
|
299
|
-
const { app_schema, ...others } = appInfo;
|
|
299
|
+
const { app_schema, ...others } = appInfo as any;
|
|
300
300
|
const stdCrudCfgObj = parseJsonObject(app_schema);
|
|
301
301
|
|
|
302
302
|
const handleArrayCfg = (arrayCfg: any[]) => {
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { Inject, Provide } from '@midwayjs/core';
|
|
2
2
|
import { CurdProService } from './CurdProService';
|
|
3
3
|
import { CurdMixByDictService } from './CurdMixByDictService';
|
|
4
|
-
import { ColumnRelation, IRequestCfgModel, IRequestModel, ISqlCfgModel, ITableListResult, ITableNamesOptions, ITableNamesQuery } from '@/libs/crud-pro/interfaces';
|
|
4
|
+
import { ColumnRelation, IRequestCfgModel, IRequestModel, ISqlCfgModel, ITableListResult, ITableNamesOptions, ITableNamesQuery, ExecuteSQLResult } from '@/libs/crud-pro/interfaces';
|
|
5
5
|
import { CurdMixBySysConfigService } from './CurdMixBySysConfigService';
|
|
6
6
|
import { CurdMixByAccountService } from './CurdMixByAccountService';
|
|
7
7
|
import { RelatedType } from './CurdMixUtils';
|
|
8
8
|
import { CurdMixByWorkbenchService } from './CurdMixByWorkbenchService';
|
|
9
9
|
import { IRequestCfgModel2 } from '@/models/bizmodels';
|
|
10
10
|
import { CurdMixByLinkToCustomService } from './CurdMixByLinkToCustomService';
|
|
11
|
-
import { SqlDbType } from '@/libs/crud-pro/models/keys';
|
|
11
|
+
// import { SqlDbType } from '@/libs/crud-pro/models/keys';
|
|
12
12
|
import { ExecuteContext, IExecuteContextCustom } from '@/libs/crud-pro/models/ExecuteContext';
|
|
13
|
+
import { ShardingCrudPro } from "@/libs/crud-sharding";
|
|
14
|
+
import { IGetQuickCrudParam, IGetShardingCrudParam } from './CurdProService';
|
|
13
15
|
|
|
14
16
|
export interface ILinkColumnRelationParam {
|
|
15
17
|
columnsRelations: ColumnRelation[];
|
|
@@ -48,12 +50,31 @@ export class CurdMixService {
|
|
|
48
50
|
return this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
|
|
54
|
+
// /**
|
|
55
|
+
// * @deprecated 请使用 getQuickCrud 替代
|
|
56
|
+
// * @param sqlDatabase
|
|
57
|
+
// * @param sqlDbType
|
|
58
|
+
// * @param sqlTable
|
|
59
|
+
// */
|
|
60
|
+
// getBbUtil(sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string) {
|
|
61
|
+
// this.prepare();
|
|
62
|
+
// return this.curdProService.getQuickCrud({ sqlDatabase, sqlDbType, sqlTable });
|
|
63
|
+
// }
|
|
64
|
+
|
|
65
|
+
getQuickCrud(param: IGetQuickCrudParam) {
|
|
52
66
|
this.prepare();
|
|
53
|
-
return this.curdProService.getQuickCrud(
|
|
67
|
+
return this.curdProService.getQuickCrud(param);
|
|
54
68
|
}
|
|
55
69
|
|
|
56
|
-
|
|
70
|
+
|
|
71
|
+
public getShardingCrud(param: IGetShardingCrudParam): ShardingCrudPro {
|
|
72
|
+
this.prepare();
|
|
73
|
+
return this.curdProService.getShardingCrud(param);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
async executeSQL(sqlCfgModel: ISqlCfgModel): Promise<ExecuteSQLResult> {
|
|
57
78
|
this.prepare();
|
|
58
79
|
return this.curdProService.executeSQL(sqlCfgModel);
|
|
59
80
|
}
|
|
@@ -2,7 +2,7 @@ import * as _ from 'lodash';
|
|
|
2
2
|
import { Config, Inject, Provide } from '@midwayjs/core';
|
|
3
3
|
import { CrudPro } from '@/libs/crud-pro/CrudPro';
|
|
4
4
|
import { Context } from '@midwayjs/koa';
|
|
5
|
-
import { IConnectionPool, ICrudProCfg, IRequestCfgModel, IRequestModel, ISqlCfgModel, ITableListResult, ITableNamesOptions, ITableNamesQuery } from '@/libs/crud-pro/interfaces';
|
|
5
|
+
import { IConnectionPool, ICrudProCfg, IRequestCfgModel, IRequestModel, ISqlCfgModel, ITableListResult, ITableNamesOptions, ITableNamesQuery, ExecuteSQLResult } from '@/libs/crud-pro/interfaces';
|
|
6
6
|
import { SqlCfgModel } from '@/libs/crud-pro/models/SqlCfgModel';
|
|
7
7
|
import { getConnectionPool as getMySQLConnectionPool } from '../../libs/crud-pro/utils/pool/MySQLUtils';
|
|
8
8
|
import { getConnectionPool as getPostgresConnectionPool } from '../../libs/crud-pro/utils/pool/PostgresUtils';
|
|
@@ -16,11 +16,35 @@ import { RelatedType } from './CurdMixUtils';
|
|
|
16
16
|
import { BaseService } from '../base/BaseService';
|
|
17
17
|
import { IRequestCfgModel2, IVisitorExt } from '@/models/bizmodels';
|
|
18
18
|
import { IWorkbenchEntity } from '@/models/SystemEntities';
|
|
19
|
-
import { CrudProQuick } from '
|
|
19
|
+
import { CrudProQuick } from '@/libs/crud-pro-quick';
|
|
20
20
|
import { ShardingCrudPro, IShardingConfig } from '@/libs/crud-sharding';
|
|
21
21
|
import { fixCfgModel } from './fixCfgModel';
|
|
22
22
|
import { GLOBAL_STATIC_CONFIG } from '@/libs/global-config/global-config';
|
|
23
|
-
import { fixSoftDelete } from "@/
|
|
23
|
+
import { fixSoftDelete } from "@/libs/crud-pro-quick/fixSoftDelete";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* getQuickCrud 参数接口
|
|
27
|
+
*/
|
|
28
|
+
export interface IGetQuickCrudParam {
|
|
29
|
+
/** 数据库名 */
|
|
30
|
+
sqlDatabase: string;
|
|
31
|
+
/** 数据库类型 */
|
|
32
|
+
sqlDbType: SqlDbType;
|
|
33
|
+
/** 表名(可选) */
|
|
34
|
+
sqlTable?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* getShardingCrud 参数接口
|
|
39
|
+
*/
|
|
40
|
+
export interface IGetShardingCrudParam {
|
|
41
|
+
/** 数据库名 */
|
|
42
|
+
sqlDatabase: string;
|
|
43
|
+
/** 数据库类型 */
|
|
44
|
+
sqlDbType: SqlDbType;
|
|
45
|
+
/** 分表配置 */
|
|
46
|
+
shardingConfig: IShardingConfig;
|
|
47
|
+
}
|
|
24
48
|
|
|
25
49
|
function toVisitor(ctx: Context): IVisitorExt {
|
|
26
50
|
const workbenchInfo: IWorkbenchEntity = ctx.workbenchInfo;
|
|
@@ -205,7 +229,7 @@ export class CurdProService extends BaseService {
|
|
|
205
229
|
}
|
|
206
230
|
|
|
207
231
|
// 直接执行一个SQL
|
|
208
|
-
public async executeSQL(sqlCfgModel: ISqlCfgModel): Promise<
|
|
232
|
+
public async executeSQL(sqlCfgModel: ISqlCfgModel): Promise<ExecuteSQLResult> {
|
|
209
233
|
const curdPro = this.getCrudPro();
|
|
210
234
|
return curdPro.executeSQL(sqlCfgModel);
|
|
211
235
|
}
|
|
@@ -217,64 +241,59 @@ export class CurdProService extends BaseService {
|
|
|
217
241
|
// 应用标准的updateCfg。
|
|
218
242
|
fixCfgModel(cfgModel);
|
|
219
243
|
// 应用软删除动作。
|
|
220
|
-
fixSoftDelete(cfgModel.sqlSimpleName, cfgModel, reqJson,
|
|
244
|
+
fixSoftDelete(cfgModel.sqlSimpleName, cfgModel, reqJson, curdPro.getVisitor());
|
|
221
245
|
return await curdPro.executeCrudByCfg(reqJson, cfgModel);
|
|
222
246
|
}
|
|
223
247
|
|
|
224
|
-
/**
|
|
225
|
-
* 获取 CrudProQuick 工具类(已废弃)
|
|
226
|
-
*
|
|
227
|
-
* @deprecated 请使用 getQuickCrud 替代
|
|
228
|
-
* @param sqlDatabase 数据库名
|
|
229
|
-
* @param sqlDbType 数据库类型
|
|
230
|
-
* @param sqlTable 表名(可选)
|
|
231
|
-
* @returns CrudProQuick 实例
|
|
232
|
-
*/
|
|
233
|
-
public getBbUtil(sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string): CrudProQuick {
|
|
234
|
-
return this.getQuickCrud(sqlDatabase, sqlDbType, sqlTable);
|
|
235
|
-
}
|
|
236
248
|
|
|
237
249
|
/**
|
|
238
250
|
* 获取 CrudProQuick 工具类
|
|
239
251
|
*
|
|
240
252
|
* 提供快速 CRUD 操作的便捷方法,封装了常用的数据库操作。
|
|
241
253
|
*
|
|
242
|
-
* @param
|
|
243
|
-
* @param sqlDbType 数据库类型
|
|
244
|
-
* @param sqlTable 表名(可选)
|
|
254
|
+
* @param param 参数对象
|
|
245
255
|
* @returns CrudProQuick 实例
|
|
246
256
|
*
|
|
247
257
|
* @example
|
|
248
|
-
* const quick = curdProService.getQuickCrud(
|
|
249
|
-
*
|
|
258
|
+
* const quick = curdProService.getQuickCrud({
|
|
259
|
+
* sqlDatabase: 'mydb',
|
|
260
|
+
* sqlDbType: SqlDbType.mysql,
|
|
261
|
+
* sqlTable: 't_user',
|
|
262
|
+
* });
|
|
263
|
+
* const users = await quick.find({ status: 'active' });
|
|
250
264
|
*/
|
|
251
|
-
public getQuickCrud(
|
|
252
|
-
const
|
|
253
|
-
|
|
265
|
+
public getQuickCrud(param: IGetQuickCrudParam): CrudProQuick {
|
|
266
|
+
const { sqlDatabase, sqlDbType, sqlTable } = param;
|
|
267
|
+
// 传入工厂函数,每次需要时创建新的 CrudPro 实例
|
|
268
|
+
return new CrudProQuick({
|
|
269
|
+
crudProFactory: () => this.getCrudPro(),
|
|
270
|
+
sqlDatabase,
|
|
271
|
+
sqlDbType,
|
|
272
|
+
sqlTable,
|
|
273
|
+
});
|
|
254
274
|
}
|
|
255
275
|
|
|
256
276
|
/**
|
|
257
277
|
* 获取分表 CRUD 操作器
|
|
258
278
|
*
|
|
259
|
-
* @param
|
|
260
|
-
* @param sqlDbType 数据库类型
|
|
261
|
-
* @param shardingConfig 分表配置
|
|
279
|
+
* @param param 参数对象
|
|
262
280
|
* @returns ShardingCrudPro 实例
|
|
263
281
|
*
|
|
264
282
|
* @example
|
|
265
|
-
* const sharding = curdProService.getShardingCrud(
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
283
|
+
* const sharding = curdProService.getShardingCrud({
|
|
284
|
+
* sqlDatabase: 'mydb',
|
|
285
|
+
* sqlDbType: SqlDbType.mysql,
|
|
286
|
+
* shardingConfig: {
|
|
287
|
+
* type: ShardingType.MONTH,
|
|
288
|
+
* baseTable: 't_order',
|
|
289
|
+
* timeColumn: 'created_at',
|
|
290
|
+
* },
|
|
269
291
|
* });
|
|
270
292
|
*/
|
|
271
|
-
public getShardingCrud(
|
|
272
|
-
sqlDatabase
|
|
273
|
-
|
|
274
|
-
shardingConfig
|
|
275
|
-
): ShardingCrudPro {
|
|
276
|
-
const curdPro = this.getCrudPro();
|
|
277
|
-
const sharding = new ShardingCrudPro(curdPro, shardingConfig);
|
|
293
|
+
public getShardingCrud(param: IGetShardingCrudParam): ShardingCrudPro {
|
|
294
|
+
const { sqlDatabase, sqlDbType, shardingConfig } = param;
|
|
295
|
+
// 传入工厂函数,每次需要时创建新的 CrudPro 实例
|
|
296
|
+
const sharding = new ShardingCrudPro(() => this.getCrudPro(), shardingConfig);
|
|
278
297
|
sharding.setBaseCfg({ sqlDatabase, sqlDbType });
|
|
279
298
|
return sharding;
|
|
280
299
|
}
|
|
@@ -62,7 +62,11 @@ export class FlowConfigService extends BaseService {
|
|
|
62
62
|
|
|
63
63
|
private get flow_config(){
|
|
64
64
|
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
65
|
-
return this.curdProService.getQuickCrud(
|
|
65
|
+
return this.curdProService.getQuickCrud({
|
|
66
|
+
sqlDatabase: SystemDbName,
|
|
67
|
+
sqlDbType: SystemDbType,
|
|
68
|
+
sqlTable: FLOW_TABLES.flow_config,
|
|
69
|
+
})
|
|
66
70
|
}
|
|
67
71
|
|
|
68
72
|
private toCacheKey(flow_code: string, flow_version: number): string {
|
|
@@ -81,9 +85,10 @@ export class FlowConfigService extends BaseService {
|
|
|
81
85
|
cacheKey: cacheKey,
|
|
82
86
|
cacheName: CacheNameEnum.GetFlowConfigOne,
|
|
83
87
|
getter: async () => {
|
|
84
|
-
|
|
88
|
+
const res = await this.flow_config.findUniqueOne({
|
|
85
89
|
condition: {flow_code, flow_version, deleted_at: 0}
|
|
86
90
|
});
|
|
91
|
+
return res.row;
|
|
87
92
|
},
|
|
88
93
|
});
|
|
89
94
|
}
|
|
@@ -4,7 +4,7 @@ import * as moment from 'moment';
|
|
|
4
4
|
import { FlowInstance, FLOW_TABLES, FlowInstanceTask, TaskStatusEnum, FlowInstanceNode, NodeStatusEnum } from "@/models/FlowModel";
|
|
5
5
|
import { FlowNodeCfgInfo, ParsedFlowConfig } from './FlowConfigService';
|
|
6
6
|
import { BaseService } from "@/service/base/BaseService";
|
|
7
|
-
import { CrudProQuick } from "@/
|
|
7
|
+
import { CrudProQuick } from "@/libs/crud-pro-quick";
|
|
8
8
|
import { CurdProService } from "@/service/curd/CurdProService";
|
|
9
9
|
import { GLOBAL_STATIC_CONFIG } from "@/libs/global-config/global-config";
|
|
10
10
|
|
|
@@ -24,7 +24,10 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
24
24
|
|
|
25
25
|
private get flowDB(): CrudProQuick {
|
|
26
26
|
const { FlowDbName, FlowDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
27
|
-
const util = this.curdProService.getQuickCrud(
|
|
27
|
+
const util = this.curdProService.getQuickCrud({
|
|
28
|
+
sqlDatabase: FlowDbName,
|
|
29
|
+
sqlDbType: FlowDbType,
|
|
30
|
+
});
|
|
28
31
|
util.setBaseCfgModel({ maxLimit: 100000 });
|
|
29
32
|
return util;
|
|
30
33
|
}
|
|
@@ -71,7 +74,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
71
74
|
modified_at: getCurrentDateTime(),
|
|
72
75
|
deleted_at: 0,
|
|
73
76
|
}
|
|
74
|
-
const nodeInstanceId = await this.flowDB.
|
|
77
|
+
const nodeInstanceId = await this.flowDB.insert({
|
|
75
78
|
data: nodeInstance,
|
|
76
79
|
}, FLOW_TABLES.flow_instance_node);
|
|
77
80
|
nodeInstance.id = nodeInstanceId.insertId;
|
|
@@ -95,7 +98,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
95
98
|
modified_at: getCurrentDateTime(),
|
|
96
99
|
deleted_at: 0,
|
|
97
100
|
}
|
|
98
|
-
const taskInstanceId = await this.flowDB.
|
|
101
|
+
const taskInstanceId = await this.flowDB.insert({
|
|
99
102
|
data: taskInstance,
|
|
100
103
|
}, FLOW_TABLES.flow_instance_task);
|
|
101
104
|
taskInstance.id = taskInstanceId.insertId;
|
|
@@ -107,7 +110,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
107
110
|
if (updateNodeInstance.id) {
|
|
108
111
|
updateNodeInstance.modified_by = this.getCurrentUserAccountId();
|
|
109
112
|
updateNodeInstance.modified_at = getCurrentDateTime();
|
|
110
|
-
await this.flowDB.
|
|
113
|
+
await this.flowDB.update({
|
|
111
114
|
condition: {
|
|
112
115
|
id: updateNodeInstance.id,
|
|
113
116
|
},
|
|
@@ -117,7 +120,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
117
120
|
} else {
|
|
118
121
|
updateNodeInstance.created_by = this.getCurrentUserAccountId();
|
|
119
122
|
updateNodeInstance.created_at = getCurrentDateTime();
|
|
120
|
-
const res = await this.flowDB.
|
|
123
|
+
const res = await this.flowDB.insert({
|
|
121
124
|
data: updateNodeInstance,
|
|
122
125
|
}, FLOW_TABLES.flow_instance_node);
|
|
123
126
|
return res.insertId || '';
|
|
@@ -133,7 +136,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
133
136
|
if (taskInstance.id) {
|
|
134
137
|
taskInstance.modified_by = this.getCurrentUserAccountId();
|
|
135
138
|
taskInstance.modified_at = getCurrentDateTime();
|
|
136
|
-
await this.flowDB.
|
|
139
|
+
await this.flowDB.update({
|
|
137
140
|
condition: {
|
|
138
141
|
id: taskInstance.id,
|
|
139
142
|
},
|
|
@@ -143,7 +146,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
143
146
|
} else {
|
|
144
147
|
taskInstance.created_by = this.getCurrentUserAccountId();
|
|
145
148
|
taskInstance.created_at = getCurrentDateTime();
|
|
146
|
-
const res = await this.flowDB.
|
|
149
|
+
const res = await this.flowDB.insert({
|
|
147
150
|
data: taskInstance,
|
|
148
151
|
}, FLOW_TABLES.flow_instance_task);
|
|
149
152
|
return res.insertId || '';
|
|
@@ -169,7 +172,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
169
172
|
if (flowInstance.id) {
|
|
170
173
|
flowInstance.modified_by = this.getCurrentUserAccountId();
|
|
171
174
|
flowInstance.modified_at = getCurrentDateTime();
|
|
172
|
-
await this.flowDB.
|
|
175
|
+
await this.flowDB.update({
|
|
173
176
|
condition: {
|
|
174
177
|
id: flowInstance.id,
|
|
175
178
|
},
|
|
@@ -179,7 +182,7 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
179
182
|
} else {
|
|
180
183
|
flowInstance.created_by = this.getCurrentUserAccountId();
|
|
181
184
|
flowInstance.created_at = getCurrentDateTime();
|
|
182
|
-
const res = await this.flowDB.
|
|
185
|
+
const res = await this.flowDB.insert({
|
|
183
186
|
data: flowInstance,
|
|
184
187
|
}, FLOW_TABLES.flow_instance);
|
|
185
188
|
return res.insertId || '';
|
|
@@ -201,10 +204,10 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
201
204
|
throw new Error('flow_instance_id is required');
|
|
202
205
|
}
|
|
203
206
|
|
|
204
|
-
const res = await this.flowDB.
|
|
207
|
+
const res = await this.flowDB.findUniqueOne({
|
|
205
208
|
condition: condition,
|
|
206
209
|
}, FLOW_TABLES.flow_instance_node);
|
|
207
|
-
return res;
|
|
210
|
+
return res.row as FlowInstanceNode;
|
|
208
211
|
}
|
|
209
212
|
|
|
210
213
|
public async getFlowInstance(flow_instance_id: number | string | undefined, ticket_no?: number | string | undefined): Promise<FlowInstance> {
|
|
@@ -218,10 +221,10 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
218
221
|
if (Object.keys(condition).length === 0) {
|
|
219
222
|
throw new Error('flow_instance_id or ticket_no is required');
|
|
220
223
|
}
|
|
221
|
-
const res = await this.flowDB.
|
|
224
|
+
const res = await this.flowDB.findUniqueOne({
|
|
222
225
|
condition: condition,
|
|
223
226
|
}, FLOW_TABLES.flow_instance);
|
|
224
|
-
return res;
|
|
227
|
+
return res.row as FlowInstance;
|
|
225
228
|
}
|
|
226
229
|
|
|
227
230
|
public async getTaskInstance(task_instance_id: number | string | undefined): Promise<FlowInstanceTask> {
|
|
@@ -232,10 +235,10 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
232
235
|
if (Object.keys(condition).length === 0) {
|
|
233
236
|
throw new Error('task_instance_id is required');
|
|
234
237
|
}
|
|
235
|
-
const res = await this.flowDB.
|
|
238
|
+
const res = await this.flowDB.findUniqueOne({
|
|
236
239
|
condition: condition,
|
|
237
240
|
}, FLOW_TABLES.flow_instance_task);
|
|
238
|
-
return res;
|
|
241
|
+
return res.row as FlowInstanceTask;
|
|
239
242
|
}
|
|
240
243
|
|
|
241
244
|
public async getTaskInstanceListByFlowInstanceId(flow_instance_id: number | string | undefined): Promise<FlowInstanceTask[]> {
|
|
@@ -246,10 +249,10 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
246
249
|
if (Object.keys(condition).length === 0) {
|
|
247
250
|
throw new Error('flow_instance_id is required');
|
|
248
251
|
}
|
|
249
|
-
const res = await this.flowDB.
|
|
252
|
+
const res = await this.flowDB.findList({
|
|
250
253
|
condition: condition,
|
|
251
254
|
}, FLOW_TABLES.flow_instance_task);
|
|
252
|
-
return res;
|
|
255
|
+
return res.rows as FlowInstanceTask[];
|
|
253
256
|
}
|
|
254
257
|
|
|
255
258
|
|
|
@@ -261,10 +264,10 @@ export class FlowInstanceCrudService extends BaseService {
|
|
|
261
264
|
if (Object.keys(condition).length === 0) {
|
|
262
265
|
throw new Error('flowInstanceId is required');
|
|
263
266
|
}
|
|
264
|
-
const res = await this.flowDB.
|
|
267
|
+
const res = await this.flowDB.findList({
|
|
265
268
|
condition: condition,
|
|
266
269
|
}, FLOW_TABLES.flow_instance_node);
|
|
267
|
-
return res;
|
|
270
|
+
return res.rows as FlowInstanceNode[];
|
|
268
271
|
}
|
|
269
272
|
|
|
270
273
|
|