midway-fatcms 0.0.5 → 0.0.7
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-crud/SKILL.md +375 -0
- package/.qoder/skills/midway-fatcms-crud/examples.md +990 -0
- package/.qoder/skills/midway-fatcms-crud/reference.md +568 -0
- package/README.md +377 -134
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +0 -2
- package/dist/controller/manage/CrudStandardDesignApi.js +11 -85
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/libs/crud-pro/CrudPro.d.ts +9 -1
- package/dist/libs/crud-pro/CrudPro.js +15 -0
- package/dist/libs/crud-pro/README.md +809 -0
- package/dist/libs/crud-pro/README_FUNC.md +193 -0
- package/dist/libs/crud-pro/exceptions.d.ts +2 -0
- package/dist/libs/crud-pro/exceptions.js +2 -0
- package/dist/libs/crud-pro/interfaces.d.ts +34 -1
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +3 -3
- package/dist/libs/crud-pro/models/ExecuteContext.js +2 -0
- package/dist/libs/crud-pro/models/RequestModel.d.ts +6 -2
- package/dist/libs/crud-pro/models/RequestModel.js +20 -53
- package/dist/libs/crud-pro/models/ResModel.d.ts +6 -4
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +1 -0
- package/dist/libs/crud-pro/models/keys.d.ts +6 -1
- package/dist/libs/crud-pro/models/keys.js +5 -0
- package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.d.ts +52 -0
- package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.js +158 -0
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +20 -1
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +7 -0
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +32 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +13 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +44 -7
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +43 -0
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +132 -1
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +15 -1
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +107 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +5 -1
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +11 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +1 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +3 -0
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +32 -0
- package/dist/libs/crud-pro/utils/MixinUtils.js +85 -1
- 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/utils/ValidateUtils.js +1 -1
- package/dist/libs/crud-sharding/ROUTING_LOGIC.md +944 -0
- package/dist/libs/crud-sharding/ShardingConfig.d.ts +218 -0
- package/dist/libs/crud-sharding/ShardingConfig.js +32 -0
- package/dist/libs/crud-sharding/ShardingCountCache.d.ts +69 -0
- package/dist/libs/crud-sharding/ShardingCountCache.js +160 -0
- package/dist/libs/crud-sharding/ShardingCrudPro.d.ts +363 -0
- package/dist/libs/crud-sharding/ShardingCrudPro.js +675 -0
- package/dist/libs/crud-sharding/ShardingMerger.d.ts +130 -0
- package/dist/libs/crud-sharding/ShardingMerger.js +282 -0
- package/dist/libs/crud-sharding/ShardingRouter.d.ts +69 -0
- package/dist/libs/crud-sharding/ShardingRouter.js +377 -0
- package/dist/libs/crud-sharding/ShardingTableCreator.d.ts +146 -0
- package/dist/libs/crud-sharding/ShardingTableCreator.js +805 -0
- package/dist/libs/crud-sharding/ShardingUtils.d.ts +38 -0
- package/dist/libs/crud-sharding/ShardingUtils.js +77 -0
- package/dist/libs/crud-sharding/index.d.ts +45 -0
- package/dist/libs/crud-sharding/index.js +55 -0
- package/dist/models/StandardColumns.d.ts +71 -0
- package/dist/models/StandardColumns.js +28 -0
- package/dist/service/SysAppService.js +2 -2
- package/dist/service/SysConfigService.js +1 -1
- package/dist/service/SysDictDataService.js +2 -2
- package/dist/service/SysMenuService.js +1 -1
- package/dist/service/UserAccountService.d.ts +1 -1
- package/dist/service/crudstd/CrudStdService.d.ts +0 -1
- package/dist/service/crudstd/CrudStdService.js +0 -27
- package/dist/service/curd/CrudProQuick.d.ts +134 -4
- package/dist/service/curd/CrudProQuick.js +155 -3
- package/dist/service/curd/CurdMixService.d.ts +2 -1
- package/dist/service/curd/CurdMixService.js +5 -1
- package/dist/service/curd/CurdProService.d.ts +44 -2
- package/dist/service/curd/CurdProService.js +53 -1
- package/dist/service/curd/README.md +1100 -0
- package/dist/service/curd/fixSoftDelete.d.ts +14 -0
- package/dist/service/curd/fixSoftDelete.js +29 -11
- package/dist/service/flow/FlowConfigService.js +1 -1
- package/dist/service/flow/FlowInstanceCrudService.js +1 -1
- package/package.json +4 -1
- package/src/controller/gateway/AsyncTaskController.ts +1 -1
- package/src/controller/manage/CrudStandardDesignApi.ts +16 -100
- package/src/index.ts +3 -0
- package/src/libs/crud-pro/CrudPro.ts +19 -1
- package/src/libs/crud-pro/README.md +809 -0
- package/src/libs/crud-pro/README_FUNC.md +193 -0
- package/src/libs/crud-pro/exceptions.ts +2 -0
- package/src/libs/crud-pro/interfaces.ts +38 -1
- package/src/libs/crud-pro/models/ExecuteContext.ts +6 -3
- package/src/libs/crud-pro/models/RequestModel.ts +23 -65
- package/src/libs/crud-pro/models/ResModel.ts +10 -4
- package/src/libs/crud-pro/models/ServiceHub.ts +2 -0
- package/src/libs/crud-pro/models/keys.ts +5 -0
- package/src/libs/crud-pro/services/CrudProDataTypeConvertService.ts +171 -0
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +24 -1
- package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +53 -1
- package/src/libs/crud-pro/services/CrudProGenSqlService.ts +51 -7
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +159 -2
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +139 -1
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +16 -1
- package/src/libs/crud-pro/utils/DateTimeUtils.ts +3 -0
- package/src/libs/crud-pro/utils/MixinUtils.ts +97 -1
- package/src/libs/crud-pro/utils/OrderByUtils.ts +169 -0
- package/src/libs/crud-pro/utils/ValidateUtils.ts +1 -1
- package/src/libs/crud-sharding/ROUTING_LOGIC.md +944 -0
- package/src/libs/crud-sharding/ShardingConfig.ts +240 -0
- package/src/libs/crud-sharding/ShardingCountCache.ts +200 -0
- package/src/libs/crud-sharding/ShardingCrudPro.ts +835 -0
- package/src/libs/crud-sharding/ShardingMerger.ts +384 -0
- package/src/libs/crud-sharding/ShardingRouter.ts +512 -0
- package/src/libs/crud-sharding/ShardingTableCreator.ts +1007 -0
- package/src/libs/crud-sharding/ShardingUtils.ts +84 -0
- package/src/libs/crud-sharding/index.ts +64 -0
- package/src/models/StandardColumns.ts +76 -0
- package/src/service/FileCenterService.ts +1 -1
- package/src/service/SysAppService.ts +2 -2
- package/src/service/SysConfigService.ts +1 -1
- package/src/service/SysDictDataService.ts +2 -2
- package/src/service/SysMenuService.ts +2 -2
- package/src/service/WorkbenchService.ts +1 -1
- package/src/service/anyapi/AnyApiService.ts +1 -1
- package/src/service/asyncTask/AsyncTaskRunnerService.ts +1 -1
- package/src/service/crudstd/CrudStdService.ts +0 -32
- package/src/service/curd/CrudProQuick.ts +164 -5
- package/src/service/curd/CurdMixService.ts +7 -2
- package/src/service/curd/CurdProService.ts +62 -3
- package/src/service/curd/README.md +1100 -0
- package/src/service/curd/fixCfgModel.ts +1 -2
- package/src/service/curd/fixSoftDelete.ts +38 -16
- package/src/service/flow/FlowConfigService.ts +1 -1
- package/src/service/flow/FlowInstanceCrudService.ts +1 -1
|
@@ -51,7 +51,7 @@ function fixCfgModel(cfgModel: IRequestCfgModel2) {
|
|
|
51
51
|
const dataCfgArray = getDataCfgArray();
|
|
52
52
|
const conditionCfgArray = getConditionCfgArray();
|
|
53
53
|
|
|
54
|
-
const mapping = {
|
|
54
|
+
const mapping: Record<string, any> = {
|
|
55
55
|
'condition.created_by': { contextAsString: CTX_VISITOR_ID },
|
|
56
56
|
'condition.created_account_type': { contextAsString: CTX_VISITOR_ACCOUNT_TYPE },
|
|
57
57
|
|
|
@@ -120,5 +120,4 @@ function fixCfgModel(cfgModel: IRequestCfgModel2) {
|
|
|
120
120
|
|
|
121
121
|
|
|
122
122
|
|
|
123
|
-
|
|
124
123
|
export { fixCfgModel };
|
|
@@ -2,43 +2,67 @@ import { KeysOfSimpleSQL } from "@/libs/crud-pro/models/keys";
|
|
|
2
2
|
import { IRequestModel } from "@/libs/crud-pro/interfaces";
|
|
3
3
|
import { IRequestCfgModel2 } from "@/models/bizmodels";
|
|
4
4
|
import { Context } from "@midwayjs/koa";
|
|
5
|
+
import type { ICommonStandardColumns } from "@/models/StandardColumns";
|
|
5
6
|
|
|
7
|
+
/**
|
|
8
|
+
* 软删除处理函数
|
|
9
|
+
*
|
|
10
|
+
* 当 cfgModel.enableSoftDelete === true 时,自动处理软删除逻辑:
|
|
11
|
+
*
|
|
12
|
+
* 1. INSERT 操作:自动设置 deleted_at = 0
|
|
13
|
+
* 2. DELETE 操作:转为 UPDATE,设置 deleted_at = 时间戳, deleted_by = 当前用户
|
|
14
|
+
* 3. QUERY 操作:自动添加 deleted_at = 0 条件
|
|
15
|
+
*
|
|
16
|
+
* @param oldSqlSimpleName 原始 SQL 类型
|
|
17
|
+
* @param cfgModel 配置模型
|
|
18
|
+
* @param params 请求参数(会被修改)
|
|
19
|
+
* @param ctx 请求上下文(用于获取当前用户信息)
|
|
20
|
+
*/
|
|
21
|
+
function fixSoftDelete(
|
|
22
|
+
oldSqlSimpleName: KeysOfSimpleSQL,
|
|
23
|
+
cfgModel: IRequestCfgModel2,
|
|
24
|
+
params: IRequestModel,
|
|
25
|
+
ctx?: Context
|
|
26
|
+
): void {
|
|
6
27
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// 没有开启软删除。不做处理,直接物理删除
|
|
28
|
+
// 没有开启软删除,不做处理,直接物理删除
|
|
10
29
|
if (cfgModel.enableSoftDelete !== true) {
|
|
11
30
|
return;
|
|
12
31
|
}
|
|
13
32
|
|
|
14
|
-
//
|
|
33
|
+
// INSERT 操作:刚插入的数据,肯定是未删除的
|
|
15
34
|
if (KeysOfSimpleSQL.SIMPLE_INSERT === oldSqlSimpleName) {
|
|
16
35
|
if (!params.data) {
|
|
17
36
|
params.data = {};
|
|
18
37
|
}
|
|
19
|
-
params.data
|
|
38
|
+
const dataObj = params.data as ICommonStandardColumns;
|
|
39
|
+
dataObj.deleted_at = 0;
|
|
20
40
|
}
|
|
21
41
|
|
|
22
|
-
//
|
|
23
|
-
// 标准软删除:deleted_at 字段为0
|
|
42
|
+
// DELETE 操作:如果是软删除,修改为 UPDATE 语句
|
|
43
|
+
// 标准软删除:deleted_at 字段为 0 代表未删除,有任意时间戳代表已删除
|
|
24
44
|
if (KeysOfSimpleSQL.SIMPLE_DELETE === oldSqlSimpleName) {
|
|
25
45
|
|
|
26
46
|
if (!params.condition || Object.keys(params.condition).length === 0) {
|
|
27
|
-
throw new Error('执行删除操作,必须指定删除条件')
|
|
47
|
+
throw new Error('执行删除操作,必须指定删除条件');
|
|
28
48
|
}
|
|
29
49
|
|
|
50
|
+
// 获取当前用户信息
|
|
51
|
+
const sessionInfo = ctx?.userSession?.getSessionInfo();
|
|
52
|
+
|
|
53
|
+
// 在原有 data 对象上添加软删除字段
|
|
30
54
|
if (!params.data) {
|
|
31
55
|
params.data = {};
|
|
32
56
|
}
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
57
|
+
const dataObj = params.data as ICommonStandardColumns;
|
|
58
|
+
dataObj.deleted_at = Date.now();
|
|
59
|
+
dataObj.deleted_by = sessionInfo?.accountId || '';
|
|
36
60
|
|
|
37
|
-
//
|
|
61
|
+
// 改为执行 UPDATE 操作
|
|
38
62
|
cfgModel.sqlSimpleName = KeysOfSimpleSQL.SIMPLE_UPDATE;
|
|
39
63
|
}
|
|
40
64
|
|
|
41
|
-
//
|
|
65
|
+
// QUERY 操作:强制查询未删除的记录
|
|
42
66
|
if (KeysOfSimpleSQL.SIMPLE_QUERY_ONE === oldSqlSimpleName
|
|
43
67
|
|| KeysOfSimpleSQL.SIMPLE_QUERY === oldSqlSimpleName
|
|
44
68
|
|| KeysOfSimpleSQL.SIMPLE_QUERY_PAGE === oldSqlSimpleName) {
|
|
@@ -46,10 +70,8 @@ function fixSoftDelete(oldSqlSimpleName: KeysOfSimpleSQL, cfgModel: IRequestCfgM
|
|
|
46
70
|
if (!params.condition) {
|
|
47
71
|
params.condition = {};
|
|
48
72
|
}
|
|
49
|
-
params.condition.deleted_at = 0;
|
|
50
|
-
|
|
73
|
+
params.condition.deleted_at = 0;
|
|
51
74
|
}
|
|
52
|
-
|
|
53
75
|
}
|
|
54
76
|
|
|
55
77
|
|
|
@@ -62,7 +62,7 @@ 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.
|
|
65
|
+
return this.curdProService.getQuickCrud(SystemDbName, SystemDbType, FLOW_TABLES.flow_config)
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
private toCacheKey(flow_code: string, flow_version: number): string {
|
|
@@ -24,7 +24,7 @@ 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.
|
|
27
|
+
const util = this.curdProService.getQuickCrud(FlowDbName, FlowDbType);
|
|
28
28
|
util.setBaseCfgModel({ maxLimit: 100000 });
|
|
29
29
|
return util;
|
|
30
30
|
}
|