midway-fatcms 0.0.1-beta.63 → 0.0.1-beta.65
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/.eslintrc.json +14 -14
- package/.prettierrc.js +4 -4
- package/README.md +8 -8
- package/dist/config/config.default.d.ts +3 -3
- package/dist/config/config.default.js +160 -160
- package/dist/config/utils.d.ts +1 -1
- package/dist/config/utils.js +23 -23
- package/dist/configuration.d.ts +7 -7
- package/dist/configuration.js +113 -113
- package/dist/controller/base/BaseApiController.d.ts +37 -37
- package/dist/controller/base/BaseApiController.js +164 -164
- package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -13
- package/dist/controller/gateway/AnyApiGatewayController.js +55 -55
- package/dist/controller/gateway/AsyncTaskController.d.ts +20 -20
- package/dist/controller/gateway/AsyncTaskController.js +181 -181
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -21
- package/dist/controller/gateway/CrudMtdGatewayController.js +122 -122
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +38 -38
- package/dist/controller/gateway/CrudStdGatewayController.js +129 -129
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
- package/dist/controller/gateway/DocGatewayController.js +179 -179
- package/dist/controller/gateway/FileController.d.ts +28 -28
- package/dist/controller/gateway/FileController.js +144 -144
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
- package/dist/controller/gateway/PublicApiController.d.ts +31 -31
- package/dist/controller/gateway/PublicApiController.js +179 -179
- package/dist/controller/gateway/StaticController.d.ts +23 -23
- package/dist/controller/gateway/StaticController.js +286 -286
- package/dist/controller/helpers.controller.d.ts +39 -39
- package/dist/controller/helpers.controller.js +188 -188
- package/dist/controller/home.controller.d.ts +9 -9
- package/dist/controller/home.controller.js +72 -72
- package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/AnyApiMangeApi.js +98 -98
- package/dist/controller/manage/AppLogMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppLogMangeApi.js +88 -88
- package/dist/controller/manage/AppMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppMangeApi.js +88 -88
- package/dist/controller/manage/AppPageMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppPageMangeApi.js +87 -87
- package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -10
- package/dist/controller/manage/AppSchemaHistoryApi.js +83 -83
- package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -10
- package/dist/controller/manage/CrudMethodsMangeApi.js +84 -84
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +46 -46
- package/dist/controller/manage/CrudStandardDesignApi.js +367 -367
- package/dist/controller/manage/DataDictManageApi.d.ts +15 -15
- package/dist/controller/manage/DataDictManageApi.js +133 -133
- package/dist/controller/manage/DeployManageApi.d.ts +19 -19
- package/dist/controller/manage/DeployManageApi.js +180 -180
- package/dist/controller/manage/DocLibManageApi.d.ts +10 -10
- package/dist/controller/manage/DocLibManageApi.js +104 -104
- package/dist/controller/manage/DocManageApi.d.ts +11 -11
- package/dist/controller/manage/DocManageApi.js +130 -130
- package/dist/controller/manage/FileManageApi.d.ts +13 -13
- package/dist/controller/manage/FileManageApi.js +77 -77
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
- package/dist/controller/manage/MenuManageApi.d.ts +10 -10
- package/dist/controller/manage/MenuManageApi.js +93 -93
- package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/ProxyApiMangeApi.js +87 -87
- package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -24
- package/dist/controller/manage/SuperAdminManageApi.js +153 -153
- package/dist/controller/manage/SysConfigMangeApi.d.ts +11 -11
- package/dist/controller/manage/SysConfigMangeApi.js +126 -126
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
- package/dist/controller/manage/SystemInfoManageApi.js +72 -72
- package/dist/controller/manage/UserAccountManageApi.d.ts +14 -14
- package/dist/controller/manage/UserAccountManageApi.js +129 -129
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
- package/dist/controller/manage/WorkbenchMangeApi.js +103 -103
- package/dist/controller/myinfo/AuthController.d.ts +33 -33
- package/dist/controller/myinfo/AuthController.js +136 -136
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
- package/dist/controller/myinfo/MyInfoController.js +51 -51
- package/dist/controller/render/AppRenderController.d.ts +11 -11
- package/dist/controller/render/AppRenderController.js +92 -92
- package/dist/controller/test.controller.d.ts +8 -8
- package/dist/controller/test.controller.js +51 -51
- package/dist/filter/default.filter.d.ts +7 -7
- package/dist/filter/default.filter.js +23 -23
- package/dist/filter/notfound.filter.d.ts +5 -5
- package/dist/filter/notfound.filter.js +20 -20
- package/dist/index.d.ts +103 -103
- package/dist/index.js +121 -121
- package/dist/interface.d.ts +27 -27
- package/dist/interface.js +3 -3
- package/dist/libs/crud-pro/CrudPro.d.ts +37 -37
- package/dist/libs/crud-pro/CrudPro.js +136 -136
- package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -4
- package/dist/libs/crud-pro/defaultConfigs.js +15 -15
- package/dist/libs/crud-pro/exceptions.d.ts +104 -104
- package/dist/libs/crud-pro/exceptions.js +117 -117
- package/dist/libs/crud-pro/interfaces.d.ts +165 -165
- package/dist/libs/crud-pro/interfaces.js +12 -12
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +49 -49
- package/dist/libs/crud-pro/models/ExecuteContext.js +79 -79
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -38
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -72
- package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -18
- package/dist/libs/crud-pro/models/FuncContext.js +6 -6
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -65
- package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -81
- package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -25
- package/dist/libs/crud-pro/models/RequestModel.js +113 -113
- package/dist/libs/crud-pro/models/ResModel.d.ts +16 -16
- package/dist/libs/crud-pro/models/ResModel.js +2 -2
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -20
- package/dist/libs/crud-pro/models/ServiceHub.js +2 -2
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +22 -22
- package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -40
- package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -6
- package/dist/libs/crud-pro/models/SqlSegArg.js +12 -12
- package/dist/libs/crud-pro/models/Transaction.d.ts +30 -30
- package/dist/libs/crud-pro/models/Transaction.js +74 -74
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +28 -28
- package/dist/libs/crud-pro/models/TransactionMySQL.js +76 -76
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +28 -28
- package/dist/libs/crud-pro/models/TransactionPostgres.js +85 -85
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +34 -34
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +92 -92
- package/dist/libs/crud-pro/models/keys.d.ts +110 -110
- package/dist/libs/crud-pro/models/keys.js +154 -154
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -11
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -73
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +125 -125
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -17
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +225 -225
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -51
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -13
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -148
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -24
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +355 -355
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -25
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -165
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -32
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +334 -334
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +90 -90
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +72 -72
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -32
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -64
- package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -9
- package/dist/libs/crud-pro/utils/CompareUtils.js +25 -25
- package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -9
- package/dist/libs/crud-pro/utils/DatabaseName.js +50 -50
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -7
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -21
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -19
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -47
- package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -33
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -39
- package/dist/libs/crud-pro/utils/MixinUtils.js +255 -255
- package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -11
- package/dist/libs/crud-pro/utils/ModelUtils.js +54 -54
- package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -11
- package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -63
- package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -29
- package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -40
- package/dist/libs/crud-pro/utils/TypeUtils.js +166 -166
- package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -165
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -19
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -20
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -20
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -4
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +21 -21
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -3
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -22
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +11 -11
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +11 -11
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -128
- package/dist/libs/global-config/global-config.d.ts +69 -69
- package/dist/libs/global-config/global-config.js +36 -36
- package/dist/libs/utils/base64.d.ts +9 -9
- package/dist/libs/utils/base64.js +42 -42
- package/dist/libs/utils/common-dto.d.ts +18 -18
- package/dist/libs/utils/common-dto.js +40 -40
- package/dist/libs/utils/crypto-utils.d.ts +3 -3
- package/dist/libs/utils/crypto-utils.js +46 -46
- package/dist/libs/utils/errorToString.d.ts +2 -2
- package/dist/libs/utils/errorToString.js +57 -57
- package/dist/libs/utils/fatcms-request.d.ts +30 -30
- package/dist/libs/utils/fatcms-request.js +104 -104
- package/dist/libs/utils/functions.d.ts +5 -5
- package/dist/libs/utils/functions.js +72 -72
- package/dist/libs/utils/ordernum-utils.d.ts +2 -2
- package/dist/libs/utils/ordernum-utils.js +13 -13
- package/dist/libs/utils/parseConfig.d.ts +8 -7
- package/dist/libs/utils/parseConfig.js +47 -44
- package/dist/libs/utils/parseCreateSql.d.ts +10 -10
- package/dist/libs/utils/parseCreateSql.js +87 -87
- package/dist/libs/utils/render-utils.d.ts +28 -28
- package/dist/libs/utils/render-utils.js +133 -133
- package/dist/middleware/forbidden.middleware.d.ts +10 -10
- package/dist/middleware/forbidden.middleware.js +54 -54
- package/dist/middleware/global.middleware.d.ts +10 -10
- package/dist/middleware/global.middleware.js +266 -266
- package/dist/middleware/permission.middleware.d.ts +18 -18
- package/dist/middleware/permission.middleware.js +74 -74
- package/dist/middleware/rediscache.middleware.d.ts +3 -3
- package/dist/middleware/rediscache.middleware.js +77 -77
- package/dist/middleware/redislock.middleware.d.ts +7 -7
- package/dist/middleware/redislock.middleware.js +72 -72
- package/dist/middleware/tx.middleware.d.ts +9 -9
- package/dist/middleware/tx.middleware.js +40 -40
- package/dist/models/AsyncTaskModel.d.ts +74 -74
- package/dist/models/AsyncTaskModel.js +31 -31
- package/dist/models/RedisKeys.d.ts +15 -15
- package/dist/models/RedisKeys.js +18 -18
- package/dist/models/SystemEntities.d.ts +105 -105
- package/dist/models/SystemEntities.js +9 -9
- package/dist/models/SystemPerm.d.ts +95 -95
- package/dist/models/SystemPerm.js +100 -100
- package/dist/models/SystemTables.d.ts +25 -25
- package/dist/models/SystemTables.js +28 -28
- package/dist/models/bizmodels.d.ts +104 -99
- package/dist/models/bizmodels.js +39 -39
- package/dist/models/contextLogger.d.ts +25 -25
- package/dist/models/contextLogger.js +112 -112
- package/dist/models/devops.d.ts +12 -12
- package/dist/models/devops.js +19 -19
- package/dist/models/userSession.d.ts +62 -62
- package/dist/models/userSession.js +165 -165
- package/dist/schedule/anonymousContext.d.ts +14 -14
- package/dist/schedule/anonymousContext.js +59 -59
- package/dist/schedule/index.d.ts +4 -4
- package/dist/schedule/index.js +10 -10
- package/dist/schedule/runSchedule.d.ts +12 -12
- package/dist/schedule/runSchedule.js +68 -68
- package/dist/schedule/scheduleNames.d.ts +13 -13
- package/dist/schedule/scheduleNames.js +17 -17
- package/dist/service/AuthService.d.ts +71 -71
- package/dist/service/AuthService.js +263 -259
- package/dist/service/EnumInfoService.d.ts +30 -30
- package/dist/service/EnumInfoService.js +127 -127
- package/dist/service/FileCenterService.d.ts +43 -43
- package/dist/service/FileCenterService.js +351 -351
- package/dist/service/SysConfigService.d.ts +7 -7
- package/dist/service/SysConfigService.js +47 -47
- package/dist/service/UserAccountService.d.ts +23 -23
- package/dist/service/UserAccountService.js +107 -107
- package/dist/service/UserSessionService.d.ts +38 -38
- package/dist/service/UserSessionService.js +157 -157
- package/dist/service/VisitStatService.d.ts +14 -14
- package/dist/service/VisitStatService.js +158 -158
- package/dist/service/WorkbenchService.d.ts +53 -53
- package/dist/service/WorkbenchService.js +211 -211
- package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -15
- package/dist/service/anyapi/AnyApiSandboxService.js +110 -110
- package/dist/service/anyapi/AnyApiService.d.ts +27 -27
- package/dist/service/anyapi/AnyApiService.js +181 -181
- package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -50
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -287
- package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -7
- package/dist/service/asyncTask/AsyncTaskService.js +34 -34
- package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -10
- package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -2
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -7
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -216
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -36
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +141 -141
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -46
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +135 -135
- package/dist/service/base/ApiBaseService.d.ts +15 -15
- package/dist/service/base/ApiBaseService.js +50 -50
- package/dist/service/base/ApiRateLimiter.d.ts +10 -10
- package/dist/service/base/ApiRateLimiter.js +51 -51
- package/dist/service/base/BaseService.d.ts +41 -41
- package/dist/service/base/BaseService.js +101 -101
- package/dist/service/base/RedisCacheService.d.ts +20 -20
- package/dist/service/base/RedisCacheService.js +57 -57
- package/dist/service/crudstd/CrudStdActionService.d.ts +17 -17
- package/dist/service/crudstd/CrudStdActionService.js +32 -32
- package/dist/service/crudstd/CrudStdConstant.d.ts +58 -58
- package/dist/service/crudstd/CrudStdConstant.js +64 -64
- package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -10
- package/dist/service/crudstd/CrudStdRelationService.js +121 -121
- package/dist/service/crudstd/CrudStdService.d.ts +70 -69
- package/dist/service/crudstd/CrudStdService.js +403 -392
- package/dist/service/curd/CrudProQuick.d.ts +44 -44
- package/dist/service/curd/CrudProQuick.js +147 -147
- package/dist/service/curd/CurdMixByAccountService.d.ts +9 -9
- package/dist/service/curd/CurdMixByAccountService.js +113 -113
- package/dist/service/curd/CurdMixByDictService.d.ts +13 -13
- package/dist/service/curd/CurdMixByDictService.js +114 -114
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +31 -31
- package/dist/service/curd/CurdMixByLinkToCustomService.js +203 -203
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +9 -9
- package/dist/service/curd/CurdMixBySysConfigService.js +80 -80
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +10 -10
- package/dist/service/curd/CurdMixByWorkbenchService.js +78 -78
- package/dist/service/curd/CurdMixService.d.ts +28 -28
- package/dist/service/curd/CurdMixService.js +100 -100
- package/dist/service/curd/CurdMixUtils.d.ts +57 -57
- package/dist/service/curd/CurdMixUtils.js +331 -331
- package/dist/service/curd/CurdProService.d.ts +32 -32
- package/dist/service/curd/CurdProService.js +212 -212
- package/dist/service/curd/fixCfgModel.d.ts +3 -3
- package/dist/service/curd/fixCfgModel.js +104 -104
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -21
- package/dist/service/proxyapi/ProxyApiLoadService.js +167 -167
- package/dist/service/proxyapi/ProxyApiService.d.ts +61 -61
- package/dist/service/proxyapi/ProxyApiService.js +294 -294
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
- package/dist/service/proxyapi/RouteHandler.d.ts +5 -5
- package/dist/service/proxyapi/RouteHandler.js +9 -9
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
- package/dist/service/proxyapi/RouteTrie.js +63 -63
- package/dist/service/proxyapi/WeightedRandom.d.ts +9 -9
- package/dist/service/proxyapi/WeightedRandom.js +31 -31
- package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -8
- package/dist/service/proxyapi/WeightedRoundRobin.js +32 -32
- package/index.d.ts +10 -10
- package/package.json +87 -87
- package/src/controller/manage/DocLibManageApi.ts +5 -5
- package/src/controller/manage/FileManageApi.ts +5 -5
- package/src/controller/manage/MenuManageApi.ts +4 -4
- package/src/libs/utils/parseConfig.ts +4 -0
- package/src/models/bizmodels.ts +8 -2
- package/src/service/AuthService.ts +6 -1
- package/src/service/EnumInfoService.ts +1 -1
- package/src/service/crudstd/CrudStdService.ts +15 -2
- package/src/service/proxyapi/WeightedRandom.ts +1 -1
- package/src/service/proxyapi/WeightedRoundRobin.ts +1 -1
- package/tsconfig.json +32 -32
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import { BaseApiController } from '../base/BaseApiController';
|
|
3
|
-
/**
|
|
4
|
-
* FaaS方式配置的接口
|
|
5
|
-
*/
|
|
6
|
-
export declare class AnyApiGatewayController extends BaseApiController {
|
|
7
|
-
protected ctx: Context;
|
|
8
|
-
private anyApiService;
|
|
9
|
-
/**
|
|
10
|
-
* 执行配置出来的接口的接口。此接口本身不需要鉴权。鉴权信息在配置中由curdPro底层进行鉴权
|
|
11
|
-
*/
|
|
12
|
-
executeAnyApiMethod(methodCode: string): Promise<any>;
|
|
13
|
-
}
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { BaseApiController } from '../base/BaseApiController';
|
|
3
|
+
/**
|
|
4
|
+
* FaaS方式配置的接口
|
|
5
|
+
*/
|
|
6
|
+
export declare class AnyApiGatewayController extends BaseApiController {
|
|
7
|
+
protected ctx: Context;
|
|
8
|
+
private anyApiService;
|
|
9
|
+
/**
|
|
10
|
+
* 执行配置出来的接口的接口。此接口本身不需要鉴权。鉴权信息在配置中由curdPro底层进行鉴权
|
|
11
|
+
*/
|
|
12
|
+
executeAnyApiMethod(methodCode: string): Promise<any>;
|
|
13
|
+
}
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.AnyApiGatewayController = void 0;
|
|
16
|
-
const core_1 = require("@midwayjs/core");
|
|
17
|
-
const BaseApiController_1 = require("../base/BaseApiController");
|
|
18
|
-
const _ = require("lodash");
|
|
19
|
-
const AnyApiService_1 = require("../../service/anyapi/AnyApiService");
|
|
20
|
-
/**
|
|
21
|
-
* FaaS方式配置的接口
|
|
22
|
-
*/
|
|
23
|
-
let AnyApiGatewayController = class AnyApiGatewayController extends BaseApiController_1.BaseApiController {
|
|
24
|
-
/**
|
|
25
|
-
* 执行配置出来的接口的接口。此接口本身不需要鉴权。鉴权信息在配置中由curdPro底层进行鉴权
|
|
26
|
-
*/
|
|
27
|
-
async executeAnyApiMethod(methodCode) {
|
|
28
|
-
if (!methodCode) {
|
|
29
|
-
throw 'method参数不存在';
|
|
30
|
-
}
|
|
31
|
-
const headers = _.get(this.ctx, 'request.headers') || {};
|
|
32
|
-
const body = _.get(this.ctx, 'request.body') || {};
|
|
33
|
-
const query = this.ctx.query || {};
|
|
34
|
-
return await this.anyApiService.executeAnyApiMethod(methodCode, headers, body, query);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
__decorate([
|
|
38
|
-
(0, core_1.Inject)(),
|
|
39
|
-
__metadata("design:type", Object)
|
|
40
|
-
], AnyApiGatewayController.prototype, "ctx", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, core_1.Inject)(),
|
|
43
|
-
__metadata("design:type", AnyApiService_1.AnyApiService)
|
|
44
|
-
], AnyApiGatewayController.prototype, "anyApiService", void 0);
|
|
45
|
-
__decorate([
|
|
46
|
-
(0, core_1.All)('/execute/:methodCode'),
|
|
47
|
-
__param(0, (0, core_1.Param)('methodCode')),
|
|
48
|
-
__metadata("design:type", Function),
|
|
49
|
-
__metadata("design:paramtypes", [String]),
|
|
50
|
-
__metadata("design:returntype", Promise)
|
|
51
|
-
], AnyApiGatewayController.prototype, "executeAnyApiMethod", null);
|
|
52
|
-
AnyApiGatewayController = __decorate([
|
|
53
|
-
(0, core_1.Controller)('/ns/gw/anyApi')
|
|
54
|
-
], AnyApiGatewayController);
|
|
55
|
-
exports.AnyApiGatewayController = AnyApiGatewayController;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AnyApiGatewayController = void 0;
|
|
16
|
+
const core_1 = require("@midwayjs/core");
|
|
17
|
+
const BaseApiController_1 = require("../base/BaseApiController");
|
|
18
|
+
const _ = require("lodash");
|
|
19
|
+
const AnyApiService_1 = require("../../service/anyapi/AnyApiService");
|
|
20
|
+
/**
|
|
21
|
+
* FaaS方式配置的接口
|
|
22
|
+
*/
|
|
23
|
+
let AnyApiGatewayController = class AnyApiGatewayController extends BaseApiController_1.BaseApiController {
|
|
24
|
+
/**
|
|
25
|
+
* 执行配置出来的接口的接口。此接口本身不需要鉴权。鉴权信息在配置中由curdPro底层进行鉴权
|
|
26
|
+
*/
|
|
27
|
+
async executeAnyApiMethod(methodCode) {
|
|
28
|
+
if (!methodCode) {
|
|
29
|
+
throw 'method参数不存在';
|
|
30
|
+
}
|
|
31
|
+
const headers = _.get(this.ctx, 'request.headers') || {};
|
|
32
|
+
const body = _.get(this.ctx, 'request.body') || {};
|
|
33
|
+
const query = this.ctx.query || {};
|
|
34
|
+
return await this.anyApiService.executeAnyApiMethod(methodCode, headers, body, query);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, core_1.Inject)(),
|
|
39
|
+
__metadata("design:type", Object)
|
|
40
|
+
], AnyApiGatewayController.prototype, "ctx", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, core_1.Inject)(),
|
|
43
|
+
__metadata("design:type", AnyApiService_1.AnyApiService)
|
|
44
|
+
], AnyApiGatewayController.prototype, "anyApiService", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, core_1.All)('/execute/:methodCode'),
|
|
47
|
+
__param(0, (0, core_1.Param)('methodCode')),
|
|
48
|
+
__metadata("design:type", Function),
|
|
49
|
+
__metadata("design:paramtypes", [String]),
|
|
50
|
+
__metadata("design:returntype", Promise)
|
|
51
|
+
], AnyApiGatewayController.prototype, "executeAnyApiMethod", null);
|
|
52
|
+
AnyApiGatewayController = __decorate([
|
|
53
|
+
(0, core_1.Controller)('/ns/gw/anyApi')
|
|
54
|
+
], AnyApiGatewayController);
|
|
55
|
+
exports.AnyApiGatewayController = AnyApiGatewayController;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import { BaseApiController } from '../base/BaseApiController';
|
|
3
|
-
/**
|
|
4
|
-
* 异步任务框架
|
|
5
|
-
*/
|
|
6
|
-
export declare class AsyncTaskController extends BaseApiController {
|
|
7
|
-
protected ctx: Context;
|
|
8
|
-
private asyncTaskService;
|
|
9
|
-
getMyTasks(): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
10
|
-
createTask(): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
11
|
-
cancelTask(id: number): Promise<{
|
|
12
|
-
success: boolean;
|
|
13
|
-
}>;
|
|
14
|
-
downloadExportFile(task_uuid: string, id: string): Promise<any>;
|
|
15
|
-
/**
|
|
16
|
-
* 响应异步任务的导出文件
|
|
17
|
-
* @param taskObj
|
|
18
|
-
*/
|
|
19
|
-
private responseLocalFileForAsyncTask;
|
|
20
|
-
}
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { BaseApiController } from '../base/BaseApiController';
|
|
3
|
+
/**
|
|
4
|
+
* 异步任务框架
|
|
5
|
+
*/
|
|
6
|
+
export declare class AsyncTaskController extends BaseApiController {
|
|
7
|
+
protected ctx: Context;
|
|
8
|
+
private asyncTaskService;
|
|
9
|
+
getMyTasks(): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
10
|
+
createTask(): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
11
|
+
cancelTask(id: number): Promise<{
|
|
12
|
+
success: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
downloadExportFile(task_uuid: string, id: string): Promise<any>;
|
|
15
|
+
/**
|
|
16
|
+
* 响应异步任务的导出文件
|
|
17
|
+
* @param taskObj
|
|
18
|
+
*/
|
|
19
|
+
private responseLocalFileForAsyncTask;
|
|
20
|
+
}
|
|
@@ -1,181 +1,181 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.AsyncTaskController = void 0;
|
|
16
|
-
const fs = require("fs");
|
|
17
|
-
const fs2 = require("node:fs/promises");
|
|
18
|
-
const core_1 = require("@midwayjs/core");
|
|
19
|
-
const BaseApiController_1 = require("../base/BaseApiController");
|
|
20
|
-
const AsyncTaskService_1 = require("../../service/asyncTask/AsyncTaskService");
|
|
21
|
-
const AsyncTaskModel_1 = require("../../models/AsyncTaskModel");
|
|
22
|
-
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
23
|
-
const SystemTables_1 = require("../../models/SystemTables");
|
|
24
|
-
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
25
|
-
const permission_middleware_1 = require("../../middleware/permission.middleware");
|
|
26
|
-
const functions_1 = require("../../libs/utils/functions");
|
|
27
|
-
function fixMyTasksCondition(body, ctx) {
|
|
28
|
-
if (!body.condition) {
|
|
29
|
-
throw new exceptions_1.CommonException('参数不正确');
|
|
30
|
-
}
|
|
31
|
-
body.condition.created_by = ctx.userSession.getSessionInfo().accountId;
|
|
32
|
-
}
|
|
33
|
-
function fixCancelBodyData(body, id) {
|
|
34
|
-
if (!body.data || !body.condition) {
|
|
35
|
-
throw new exceptions_1.CommonException('参数不正确');
|
|
36
|
-
}
|
|
37
|
-
// fix condition
|
|
38
|
-
const conditionObj = (body.condition || {});
|
|
39
|
-
conditionObj.id = id;
|
|
40
|
-
body.condition = conditionObj;
|
|
41
|
-
// fix data
|
|
42
|
-
const dataObj = (body.data || {});
|
|
43
|
-
dataObj.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.CANCELLED;
|
|
44
|
-
body.data = dataObj;
|
|
45
|
-
}
|
|
46
|
-
function fixCreateBodyData(body, ctx) {
|
|
47
|
-
if (!body.data) {
|
|
48
|
-
throw new exceptions_1.CommonException('参数不正确');
|
|
49
|
-
}
|
|
50
|
-
const sessionInfo = ctx.userSession.getSessionInfo();
|
|
51
|
-
// fix data
|
|
52
|
-
const dataObj = (body.data || {});
|
|
53
|
-
const input_params = (0, functions_1.parseJsonObject)(dataObj.input_params) || {};
|
|
54
|
-
const headers = ctx.headers || {};
|
|
55
|
-
input_params.headers = {
|
|
56
|
-
fatcmscsrftoken: headers.fatcmscsrftoken,
|
|
57
|
-
host: headers.host,
|
|
58
|
-
origin: headers.origin,
|
|
59
|
-
};
|
|
60
|
-
dataObj.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.PENDING;
|
|
61
|
-
dataObj.created_by = sessionInfo.accountId;
|
|
62
|
-
dataObj.created_user_session = JSON.stringify(sessionInfo); // 创建人的session信息。用于执行时的鉴权。
|
|
63
|
-
dataObj.input_params = JSON.stringify(input_params);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* 异步任务框架
|
|
67
|
-
*/
|
|
68
|
-
let AsyncTaskController = class AsyncTaskController extends BaseApiController_1.BaseApiController {
|
|
69
|
-
// 获取任务列表
|
|
70
|
-
async getMyTasks() {
|
|
71
|
-
fixMyTasksCondition(this.ctx.request.body, this.ctx);
|
|
72
|
-
return this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE);
|
|
73
|
-
}
|
|
74
|
-
// 创建任务
|
|
75
|
-
async createTask() {
|
|
76
|
-
//每个用户:5秒内只能创建1次任务
|
|
77
|
-
await this.checkUserActionTimeLimit('AsyncTaskController_createTask', 5);
|
|
78
|
-
fixCreateBodyData(this.ctx.request.body, this.ctx);
|
|
79
|
-
const res = await this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_INSERT);
|
|
80
|
-
await this.asyncTaskService.startTask();
|
|
81
|
-
return res;
|
|
82
|
-
}
|
|
83
|
-
// 取消任务
|
|
84
|
-
async cancelTask(id) {
|
|
85
|
-
fixCancelBodyData(this.ctx.request.body, id);
|
|
86
|
-
await this.asyncTaskService.cancelTask(id);
|
|
87
|
-
await this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE);
|
|
88
|
-
return { success: true };
|
|
89
|
-
}
|
|
90
|
-
// 下载异步任务的导出文件
|
|
91
|
-
async downloadExportFile(task_uuid, id) {
|
|
92
|
-
if (!task_uuid) {
|
|
93
|
-
throw new exceptions_1.CommonException('task_uuid is not exist');
|
|
94
|
-
}
|
|
95
|
-
if (!id) {
|
|
96
|
-
throw new exceptions_1.CommonException('id is not exist');
|
|
97
|
-
}
|
|
98
|
-
this.ctx.request.body = {
|
|
99
|
-
condition: {
|
|
100
|
-
task_uuid: task_uuid,
|
|
101
|
-
id: id,
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
const res = await this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE);
|
|
105
|
-
const taskObj = res.getOneObj();
|
|
106
|
-
if (!taskObj) {
|
|
107
|
-
throw new exceptions_1.CommonException('任务不存在');
|
|
108
|
-
}
|
|
109
|
-
const output_file_path = taskObj.output_file_path;
|
|
110
|
-
if (!output_file_path) {
|
|
111
|
-
throw new exceptions_1.CommonException('导出文件不存在, 可能是任务没有执行完成');
|
|
112
|
-
}
|
|
113
|
-
try {
|
|
114
|
-
await fs2.access(output_file_path);
|
|
115
|
-
}
|
|
116
|
-
catch (e) {
|
|
117
|
-
throw new exceptions_1.CommonException('导出文件不存在,可能是文件被删除了。');
|
|
118
|
-
}
|
|
119
|
-
await this.responseLocalFileForAsyncTask(taskObj);
|
|
120
|
-
return undefined;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* 响应异步任务的导出文件
|
|
124
|
-
* @param taskObj
|
|
125
|
-
*/
|
|
126
|
-
async responseLocalFileForAsyncTask(taskObj) {
|
|
127
|
-
const output_file_path = taskObj.output_file_path;
|
|
128
|
-
const outputFileName = taskObj.task_name + '_' + taskObj.id + '.' + taskObj.output_file_format;
|
|
129
|
-
const stat = await fs2.stat(output_file_path);
|
|
130
|
-
const headers = {
|
|
131
|
-
'content-length': '' + stat.size,
|
|
132
|
-
'content-type': 'application/octet-stream',
|
|
133
|
-
'content-disposition': `attachment; filename*=UTF-8''${encodeURIComponent(outputFileName)}`,
|
|
134
|
-
};
|
|
135
|
-
const stream = fs.createReadStream(output_file_path);
|
|
136
|
-
stream.setMaxListeners(50);
|
|
137
|
-
this.logInfo(`[AsyncTaskController]返回本地文件: ${output_file_path}`);
|
|
138
|
-
this.ctx.status = 200;
|
|
139
|
-
this.ctx.set(headers);
|
|
140
|
-
this.ctx.body = stream;
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
__decorate([
|
|
144
|
-
(0, core_1.Inject)(),
|
|
145
|
-
__metadata("design:type", Object)
|
|
146
|
-
], AsyncTaskController.prototype, "ctx", void 0);
|
|
147
|
-
__decorate([
|
|
148
|
-
(0, core_1.Inject)(),
|
|
149
|
-
__metadata("design:type", AsyncTaskService_1.AsyncTaskService)
|
|
150
|
-
], AsyncTaskController.prototype, "asyncTaskService", void 0);
|
|
151
|
-
__decorate([
|
|
152
|
-
(0, core_1.Post)('/getMyTasks'),
|
|
153
|
-
__metadata("design:type", Function),
|
|
154
|
-
__metadata("design:paramtypes", []),
|
|
155
|
-
__metadata("design:returntype", Promise)
|
|
156
|
-
], AsyncTaskController.prototype, "getMyTasks", null);
|
|
157
|
-
__decorate([
|
|
158
|
-
(0, core_1.Post)('/createTask'),
|
|
159
|
-
__metadata("design:type", Function),
|
|
160
|
-
__metadata("design:paramtypes", []),
|
|
161
|
-
__metadata("design:returntype", Promise)
|
|
162
|
-
], AsyncTaskController.prototype, "createTask", null);
|
|
163
|
-
__decorate([
|
|
164
|
-
(0, core_1.Post)('/cancelTask'),
|
|
165
|
-
__param(0, (0, core_1.Query)('id')),
|
|
166
|
-
__metadata("design:type", Function),
|
|
167
|
-
__metadata("design:paramtypes", [Number]),
|
|
168
|
-
__metadata("design:returntype", Promise)
|
|
169
|
-
], AsyncTaskController.prototype, "cancelTask", null);
|
|
170
|
-
__decorate([
|
|
171
|
-
(0, core_1.Get)('/downloadExportFile'),
|
|
172
|
-
__param(0, (0, core_1.Query)('task_uuid')),
|
|
173
|
-
__param(1, (0, core_1.Query)('id')),
|
|
174
|
-
__metadata("design:type", Function),
|
|
175
|
-
__metadata("design:paramtypes", [String, String]),
|
|
176
|
-
__metadata("design:returntype", Promise)
|
|
177
|
-
], AsyncTaskController.prototype, "downloadExportFile", null);
|
|
178
|
-
AsyncTaskController = __decorate([
|
|
179
|
-
(0, core_1.Controller)('/ns/gw/AsyncTask', { middleware: [(0, permission_middleware_1.checkLogin)()] })
|
|
180
|
-
], AsyncTaskController);
|
|
181
|
-
exports.AsyncTaskController = AsyncTaskController;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AsyncTaskController = void 0;
|
|
16
|
+
const fs = require("fs");
|
|
17
|
+
const fs2 = require("node:fs/promises");
|
|
18
|
+
const core_1 = require("@midwayjs/core");
|
|
19
|
+
const BaseApiController_1 = require("../base/BaseApiController");
|
|
20
|
+
const AsyncTaskService_1 = require("../../service/asyncTask/AsyncTaskService");
|
|
21
|
+
const AsyncTaskModel_1 = require("../../models/AsyncTaskModel");
|
|
22
|
+
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
23
|
+
const SystemTables_1 = require("../../models/SystemTables");
|
|
24
|
+
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
25
|
+
const permission_middleware_1 = require("../../middleware/permission.middleware");
|
|
26
|
+
const functions_1 = require("../../libs/utils/functions");
|
|
27
|
+
function fixMyTasksCondition(body, ctx) {
|
|
28
|
+
if (!body.condition) {
|
|
29
|
+
throw new exceptions_1.CommonException('参数不正确');
|
|
30
|
+
}
|
|
31
|
+
body.condition.created_by = ctx.userSession.getSessionInfo().accountId;
|
|
32
|
+
}
|
|
33
|
+
function fixCancelBodyData(body, id) {
|
|
34
|
+
if (!body.data || !body.condition) {
|
|
35
|
+
throw new exceptions_1.CommonException('参数不正确');
|
|
36
|
+
}
|
|
37
|
+
// fix condition
|
|
38
|
+
const conditionObj = (body.condition || {});
|
|
39
|
+
conditionObj.id = id;
|
|
40
|
+
body.condition = conditionObj;
|
|
41
|
+
// fix data
|
|
42
|
+
const dataObj = (body.data || {});
|
|
43
|
+
dataObj.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.CANCELLED;
|
|
44
|
+
body.data = dataObj;
|
|
45
|
+
}
|
|
46
|
+
function fixCreateBodyData(body, ctx) {
|
|
47
|
+
if (!body.data) {
|
|
48
|
+
throw new exceptions_1.CommonException('参数不正确');
|
|
49
|
+
}
|
|
50
|
+
const sessionInfo = ctx.userSession.getSessionInfo();
|
|
51
|
+
// fix data
|
|
52
|
+
const dataObj = (body.data || {});
|
|
53
|
+
const input_params = (0, functions_1.parseJsonObject)(dataObj.input_params) || {};
|
|
54
|
+
const headers = ctx.headers || {};
|
|
55
|
+
input_params.headers = {
|
|
56
|
+
fatcmscsrftoken: headers.fatcmscsrftoken,
|
|
57
|
+
host: headers.host,
|
|
58
|
+
origin: headers.origin,
|
|
59
|
+
};
|
|
60
|
+
dataObj.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.PENDING;
|
|
61
|
+
dataObj.created_by = sessionInfo.accountId;
|
|
62
|
+
dataObj.created_user_session = JSON.stringify(sessionInfo); // 创建人的session信息。用于执行时的鉴权。
|
|
63
|
+
dataObj.input_params = JSON.stringify(input_params);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 异步任务框架
|
|
67
|
+
*/
|
|
68
|
+
let AsyncTaskController = class AsyncTaskController extends BaseApiController_1.BaseApiController {
|
|
69
|
+
// 获取任务列表
|
|
70
|
+
async getMyTasks() {
|
|
71
|
+
fixMyTasksCondition(this.ctx.request.body, this.ctx);
|
|
72
|
+
return this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE);
|
|
73
|
+
}
|
|
74
|
+
// 创建任务
|
|
75
|
+
async createTask() {
|
|
76
|
+
//每个用户:5秒内只能创建1次任务
|
|
77
|
+
await this.checkUserActionTimeLimit('AsyncTaskController_createTask', 5);
|
|
78
|
+
fixCreateBodyData(this.ctx.request.body, this.ctx);
|
|
79
|
+
const res = await this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_INSERT);
|
|
80
|
+
await this.asyncTaskService.startTask();
|
|
81
|
+
return res;
|
|
82
|
+
}
|
|
83
|
+
// 取消任务
|
|
84
|
+
async cancelTask(id) {
|
|
85
|
+
fixCancelBodyData(this.ctx.request.body, id);
|
|
86
|
+
await this.asyncTaskService.cancelTask(id);
|
|
87
|
+
await this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE);
|
|
88
|
+
return { success: true };
|
|
89
|
+
}
|
|
90
|
+
// 下载异步任务的导出文件
|
|
91
|
+
async downloadExportFile(task_uuid, id) {
|
|
92
|
+
if (!task_uuid) {
|
|
93
|
+
throw new exceptions_1.CommonException('task_uuid is not exist');
|
|
94
|
+
}
|
|
95
|
+
if (!id) {
|
|
96
|
+
throw new exceptions_1.CommonException('id is not exist');
|
|
97
|
+
}
|
|
98
|
+
this.ctx.request.body = {
|
|
99
|
+
condition: {
|
|
100
|
+
task_uuid: task_uuid,
|
|
101
|
+
id: id,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
const res = await this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_async_tasks, keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE);
|
|
105
|
+
const taskObj = res.getOneObj();
|
|
106
|
+
if (!taskObj) {
|
|
107
|
+
throw new exceptions_1.CommonException('任务不存在');
|
|
108
|
+
}
|
|
109
|
+
const output_file_path = taskObj.output_file_path;
|
|
110
|
+
if (!output_file_path) {
|
|
111
|
+
throw new exceptions_1.CommonException('导出文件不存在, 可能是任务没有执行完成');
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
await fs2.access(output_file_path);
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
throw new exceptions_1.CommonException('导出文件不存在,可能是文件被删除了。');
|
|
118
|
+
}
|
|
119
|
+
await this.responseLocalFileForAsyncTask(taskObj);
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* 响应异步任务的导出文件
|
|
124
|
+
* @param taskObj
|
|
125
|
+
*/
|
|
126
|
+
async responseLocalFileForAsyncTask(taskObj) {
|
|
127
|
+
const output_file_path = taskObj.output_file_path;
|
|
128
|
+
const outputFileName = taskObj.task_name + '_' + taskObj.id + '.' + taskObj.output_file_format;
|
|
129
|
+
const stat = await fs2.stat(output_file_path);
|
|
130
|
+
const headers = {
|
|
131
|
+
'content-length': '' + stat.size,
|
|
132
|
+
'content-type': 'application/octet-stream',
|
|
133
|
+
'content-disposition': `attachment; filename*=UTF-8''${encodeURIComponent(outputFileName)}`,
|
|
134
|
+
};
|
|
135
|
+
const stream = fs.createReadStream(output_file_path);
|
|
136
|
+
stream.setMaxListeners(50);
|
|
137
|
+
this.logInfo(`[AsyncTaskController]返回本地文件: ${output_file_path}`);
|
|
138
|
+
this.ctx.status = 200;
|
|
139
|
+
this.ctx.set(headers);
|
|
140
|
+
this.ctx.body = stream;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
__decorate([
|
|
144
|
+
(0, core_1.Inject)(),
|
|
145
|
+
__metadata("design:type", Object)
|
|
146
|
+
], AsyncTaskController.prototype, "ctx", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
(0, core_1.Inject)(),
|
|
149
|
+
__metadata("design:type", AsyncTaskService_1.AsyncTaskService)
|
|
150
|
+
], AsyncTaskController.prototype, "asyncTaskService", void 0);
|
|
151
|
+
__decorate([
|
|
152
|
+
(0, core_1.Post)('/getMyTasks'),
|
|
153
|
+
__metadata("design:type", Function),
|
|
154
|
+
__metadata("design:paramtypes", []),
|
|
155
|
+
__metadata("design:returntype", Promise)
|
|
156
|
+
], AsyncTaskController.prototype, "getMyTasks", null);
|
|
157
|
+
__decorate([
|
|
158
|
+
(0, core_1.Post)('/createTask'),
|
|
159
|
+
__metadata("design:type", Function),
|
|
160
|
+
__metadata("design:paramtypes", []),
|
|
161
|
+
__metadata("design:returntype", Promise)
|
|
162
|
+
], AsyncTaskController.prototype, "createTask", null);
|
|
163
|
+
__decorate([
|
|
164
|
+
(0, core_1.Post)('/cancelTask'),
|
|
165
|
+
__param(0, (0, core_1.Query)('id')),
|
|
166
|
+
__metadata("design:type", Function),
|
|
167
|
+
__metadata("design:paramtypes", [Number]),
|
|
168
|
+
__metadata("design:returntype", Promise)
|
|
169
|
+
], AsyncTaskController.prototype, "cancelTask", null);
|
|
170
|
+
__decorate([
|
|
171
|
+
(0, core_1.Get)('/downloadExportFile'),
|
|
172
|
+
__param(0, (0, core_1.Query)('task_uuid')),
|
|
173
|
+
__param(1, (0, core_1.Query)('id')),
|
|
174
|
+
__metadata("design:type", Function),
|
|
175
|
+
__metadata("design:paramtypes", [String, String]),
|
|
176
|
+
__metadata("design:returntype", Promise)
|
|
177
|
+
], AsyncTaskController.prototype, "downloadExportFile", null);
|
|
178
|
+
AsyncTaskController = __decorate([
|
|
179
|
+
(0, core_1.Controller)('/ns/gw/AsyncTask', { middleware: [(0, permission_middleware_1.checkLogin)()] })
|
|
180
|
+
], AsyncTaskController);
|
|
181
|
+
exports.AsyncTaskController = AsyncTaskController;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import { CommonResult } from '../../libs/utils/common-dto';
|
|
3
|
-
import { WorkbenchService } from '../../service/WorkbenchService';
|
|
4
|
-
import { ApiBaseService } from '../../service/base/ApiBaseService';
|
|
5
|
-
/**
|
|
6
|
-
* query形式1:GET: /ns/gw/crudApi/getUser?__query_json__=%7B%22condition%22%3A%7B%22id%22%3A2%7D%7D
|
|
7
|
-
* query形式2:GET: /ns/gw/crudApi/getUser?__query_as__=condition&id=1&name=22
|
|
8
|
-
* query形式3:GET: /ns/gw/crudApi/createUser?__query_as__=data&__query_pick__=id,name&id=1&name=22
|
|
9
|
-
*
|
|
10
|
-
* 执行单个配置的接口
|
|
11
|
-
*/
|
|
12
|
-
export declare class CrudMtdGatewayController extends ApiBaseService {
|
|
13
|
-
protected ctx: Context;
|
|
14
|
-
protected workbenchService: WorkbenchService;
|
|
15
|
-
private curdProService;
|
|
16
|
-
private curdMixService;
|
|
17
|
-
/**
|
|
18
|
-
* 执行配置出来的接口的接口。此接口本身不需要鉴权。鉴权信息在配置中由curdPro底层进行鉴权
|
|
19
|
-
*/
|
|
20
|
-
executeCrudMethod(methodCode: string): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext | CommonResult>;
|
|
21
|
-
}
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { CommonResult } from '../../libs/utils/common-dto';
|
|
3
|
+
import { WorkbenchService } from '../../service/WorkbenchService';
|
|
4
|
+
import { ApiBaseService } from '../../service/base/ApiBaseService';
|
|
5
|
+
/**
|
|
6
|
+
* query形式1:GET: /ns/gw/crudApi/getUser?__query_json__=%7B%22condition%22%3A%7B%22id%22%3A2%7D%7D
|
|
7
|
+
* query形式2:GET: /ns/gw/crudApi/getUser?__query_as__=condition&id=1&name=22
|
|
8
|
+
* query形式3:GET: /ns/gw/crudApi/createUser?__query_as__=data&__query_pick__=id,name&id=1&name=22
|
|
9
|
+
*
|
|
10
|
+
* 执行单个配置的接口
|
|
11
|
+
*/
|
|
12
|
+
export declare class CrudMtdGatewayController extends ApiBaseService {
|
|
13
|
+
protected ctx: Context;
|
|
14
|
+
protected workbenchService: WorkbenchService;
|
|
15
|
+
private curdProService;
|
|
16
|
+
private curdMixService;
|
|
17
|
+
/**
|
|
18
|
+
* 执行配置出来的接口的接口。此接口本身不需要鉴权。鉴权信息在配置中由curdPro底层进行鉴权
|
|
19
|
+
*/
|
|
20
|
+
executeCrudMethod(methodCode: string): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext | CommonResult>;
|
|
21
|
+
}
|