midway-fatcms 0.0.1-beta.76 → 0.0.1-beta.77
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 +177 -177
- 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 +48 -48
- package/dist/controller/base/BaseApiController.js +197 -197
- 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 +39 -39
- package/dist/controller/gateway/CrudStdGatewayController.js +149 -149
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
- package/dist/controller/gateway/DocGatewayController.js +179 -179
- package/dist/controller/gateway/FileController.d.ts +32 -32
- package/dist/controller/gateway/FileController.js +160 -160
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
- package/dist/controller/gateway/PublicApiController.d.ts +33 -33
- package/dist/controller/gateway/PublicApiController.js +201 -201
- 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 +12 -12
- package/dist/controller/manage/AppMangeApi.js +101 -101
- 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 +17 -17
- package/dist/controller/manage/DataDictManageApi.js +165 -165
- 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 +12 -12
- package/dist/controller/manage/SysConfigMangeApi.js +133 -133
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
- package/dist/controller/manage/SystemInfoManageApi.js +74 -74
- package/dist/controller/manage/UserAccountManageApi.d.ts +16 -16
- package/dist/controller/manage/UserAccountManageApi.js +153 -153
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
- package/dist/controller/manage/WorkbenchMangeApi.js +103 -103
- package/dist/controller/myinfo/AuthController.d.ts +37 -37
- package/dist/controller/myinfo/AuthController.js +157 -157
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
- package/dist/controller/myinfo/MyInfoController.js +51 -51
- package/dist/controller/render/AppRenderController.d.ts +12 -12
- package/dist/controller/render/AppRenderController.js +87 -87
- 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 +106 -106
- package/dist/index.js +124 -124
- package/dist/interface.d.ts +29 -29
- package/dist/interface.js +3 -3
- package/dist/libs/crud-pro/CrudPro.d.ts +37 -37
- package/dist/libs/crud-pro/CrudPro.js +139 -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 +106 -106
- package/dist/libs/crud-pro/exceptions.js +119 -119
- package/dist/libs/crud-pro/interfaces.d.ts +175 -166
- package/dist/libs/crud-pro/interfaces.js +12 -12
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +50 -50
- package/dist/libs/crud-pro/models/ExecuteContext.js +87 -87
- 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 +20 -20
- 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 +23 -23
- 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 +49 -30
- package/dist/libs/crud-pro/models/Transaction.js +177 -74
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +19 -29
- package/dist/libs/crud-pro/models/TransactionMySQL.js +48 -83
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +19 -29
- package/dist/libs/crud-pro/models/TransactionPostgres.js +64 -91
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +9 -35
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +61 -100
- 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 +216 -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 +339 -339
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +88 -88
- 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/CrudMonitor.d.ts +9 -9
- package/dist/libs/crud-pro/utils/CrudMonitor.js +12 -12
- 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 +40 -39
- package/dist/libs/crud-pro/utils/MixinUtils.js +258 -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 +35 -35
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +0 -3
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +24 -22
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +14 -14
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +14 -14
- 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/AsymmetricCrypto.d.ts +76 -76
- package/dist/libs/utils/AsymmetricCrypto.js +261 -261
- 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/format-url.d.ts +2 -2
- package/dist/libs/utils/format-url.js +13 -13
- package/dist/libs/utils/functions.d.ts +5 -5
- package/dist/libs/utils/functions.js +76 -76
- 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 -8
- package/dist/libs/utils/parseConfig.js +47 -47
- 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 +37 -37
- package/dist/libs/utils/render-utils.js +154 -154
- 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 +273 -273
- 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 +117 -117
- package/dist/models/SystemEntities.js +17 -17
- 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/WorkbenchInfoTools.d.ts +7 -7
- package/dist/models/WorkbenchInfoTools.js +20 -20
- package/dist/models/bizmodels.d.ts +138 -138
- package/dist/models/bizmodels.js +61 -61
- package/dist/models/contextLogger.d.ts +27 -27
- package/dist/models/contextLogger.js +119 -119
- package/dist/models/devops.d.ts +12 -12
- package/dist/models/devops.js +19 -19
- package/dist/models/userSession.d.ts +66 -65
- package/dist/models/userSession.js +169 -168
- package/dist/schedule/anonymousContext.d.ts +15 -15
- package/dist/schedule/anonymousContext.js +74 -73
- 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 +15 -15
- package/dist/schedule/scheduleNames.js +19 -19
- package/dist/service/AuthService.d.ts +57 -57
- package/dist/service/AuthService.js +270 -265
- package/dist/service/EnumInfoService.d.ts +30 -30
- package/dist/service/EnumInfoService.js +97 -97
- package/dist/service/FileCenterService.d.ts +64 -64
- package/dist/service/FileCenterService.js +422 -422
- package/dist/service/SysAppService.d.ts +14 -14
- package/dist/service/SysAppService.js +96 -96
- package/dist/service/SysConfigService.d.ts +10 -10
- package/dist/service/SysConfigService.js +64 -64
- package/dist/service/SysDictDataService.d.ts +9 -9
- package/dist/service/SysDictDataService.js +72 -72
- package/dist/service/UserAccountService.d.ts +23 -23
- package/dist/service/UserAccountService.js +107 -107
- package/dist/service/UserSessionService.d.ts +43 -43
- package/dist/service/UserSessionService.js +163 -163
- package/dist/service/VisitStatService.d.ts +14 -14
- package/dist/service/VisitStatService.js +158 -158
- package/dist/service/WorkbenchService.d.ts +59 -59
- package/dist/service/WorkbenchService.js +249 -249
- 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/cache/CacheServiceFactory.d.ts +26 -26
- package/dist/service/base/cache/CacheServiceFactory.js +122 -122
- package/dist/service/base/cache/CtxCache.d.ts +18 -18
- package/dist/service/base/cache/CtxCache.js +37 -37
- package/dist/service/base/cache/DiskCache.d.ts +19 -19
- package/dist/service/base/cache/DiskCache.js +74 -74
- package/dist/service/base/cache/MemoryCache.d.ts +12 -12
- package/dist/service/base/cache/MemoryCache.js +58 -58
- package/dist/service/base/cache/NoneCache.d.ts +10 -10
- package/dist/service/base/cache/NoneCache.js +19 -19
- package/dist/service/base/cache/RedisCache.d.ts +14 -14
- package/dist/service/base/cache/RedisCache.js +31 -31
- 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 +60 -60
- package/dist/service/crudstd/CrudStdService.js +376 -376
- package/dist/service/curd/CrudProQuick.d.ts +50 -50
- package/dist/service/curd/CrudProQuick.js +163 -163
- package/dist/service/curd/CurdMixByAccountService.d.ts +13 -13
- package/dist/service/curd/CurdMixByAccountService.js +151 -151
- package/dist/service/curd/CurdMixByDictService.d.ts +12 -12
- package/dist/service/curd/CurdMixByDictService.js +114 -114
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +30 -30
- package/dist/service/curd/CurdMixByLinkToCustomService.js +209 -209
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +13 -13
- package/dist/service/curd/CurdMixBySysConfigService.js +116 -116
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +11 -11
- package/dist/service/curd/CurdMixByWorkbenchService.js +80 -80
- 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/libs/crud-pro/CrudPro.ts +5 -0
- package/src/libs/crud-pro/interfaces.ts +10 -1
- package/src/libs/crud-pro/models/Transaction.ts +141 -19
- package/src/libs/crud-pro/models/TransactionMySQL.ts +38 -69
- package/src/libs/crud-pro/models/TransactionPostgres.ts +49 -67
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +51 -87
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +3 -3
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +13 -22
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +3 -3
- package/src/libs/crud-pro/utils/CrudMonitor.ts +13 -13
- package/src/libs/crud-pro/utils/MixinUtils.ts +3 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertMix.ts +24 -24
- package/src/libs/utils/AsymmetricCrypto.ts +307 -307
- package/src/libs/utils/format-url.ts +15 -15
- package/src/libs/utils/render-utils.ts +216 -216
- package/src/models/WorkbenchInfoTools.ts +19 -19
- package/src/models/userSession.ts +2 -0
- package/src/schedule/anonymousContext.ts +2 -1
- package/src/service/AuthService.ts +7 -1
- package/src/service/SysAppService.ts +88 -88
- package/src/service/SysDictDataService.ts +63 -63
- package/src/service/WorkbenchService.ts +277 -277
- package/src/service/base/cache/CacheServiceFactory.ts +135 -135
- package/src/service/base/cache/CtxCache.ts +45 -45
- package/src/service/base/cache/DiskCache.ts +82 -82
- package/src/service/base/cache/MemoryCache.ts +68 -68
- package/src/service/base/cache/NoneCache.ts +24 -24
- package/src/service/base/cache/RedisCache.ts +41 -41
- package/tsconfig.json +32 -32
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +0 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +0 -128
- package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +0 -127
|
@@ -1,24 +1,91 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {IConnectionPool, IPoolConnectionClient, IPoolConnectionQueryResult} from '../interfaces';
|
|
2
2
|
import { SqlDbType } from './keys';
|
|
3
3
|
import { TransactionMySQL } from './TransactionMySQL';
|
|
4
4
|
import { TransactionPostgres } from './TransactionPostgres';
|
|
5
5
|
import { TransactionSqlServer } from './TransactionSqlServer';
|
|
6
6
|
|
|
7
|
+
class TransactionConnection implements IPoolConnectionClient {
|
|
8
|
+
originConnection: IPoolConnectionClient;
|
|
9
|
+
private isFinished: boolean = false;
|
|
10
|
+
private isTxBegan: boolean = false;
|
|
11
|
+
private isTxCommitted: boolean = false;
|
|
12
|
+
private isTxRollback: boolean = false;
|
|
13
|
+
private isReleased: boolean = false;
|
|
14
|
+
|
|
15
|
+
constructor(originConnection: IPoolConnectionClient) {
|
|
16
|
+
this.originConnection = originConnection;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async query(sql: string, values: any[]): Promise<IPoolConnectionQueryResult> {
|
|
20
|
+
try {
|
|
21
|
+
return await this.originConnection.query(sql, values);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error('[crud-pro]TransactionConnection',error);
|
|
24
|
+
throw error;
|
|
25
|
+
} finally {
|
|
26
|
+
this.isFinished = true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
async beginTransaction() {
|
|
32
|
+
this.isTxBegan = true;
|
|
33
|
+
await this.originConnection.beginTransaction();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async commit() {
|
|
37
|
+
this.isTxCommitted = true;
|
|
38
|
+
await this.originConnection.commit();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async rollback() {
|
|
42
|
+
this.isTxRollback = true;
|
|
43
|
+
await this.originConnection.commit();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async release() {
|
|
47
|
+
if (this.isReleased) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.isReleased = true;
|
|
51
|
+
try {
|
|
52
|
+
if (this.isTxBegan && !this.isTxRollback && !this.isTxCommitted) {
|
|
53
|
+
await this.commit();
|
|
54
|
+
}
|
|
55
|
+
await this.originConnection.release();
|
|
56
|
+
} catch (e) {
|
|
57
|
+
console.log('[crud-pro] MySqlConnectionClient release ', e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async releaseOnlyFinished() {
|
|
62
|
+
if (this.isFinished) {
|
|
63
|
+
await this.release();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
7
70
|
class Transaction {
|
|
8
71
|
private transactionMySQL: TransactionMySQL = new TransactionMySQL();
|
|
9
72
|
private transactionPostgres: TransactionPostgres = new TransactionPostgres();
|
|
10
73
|
private transactionSqlServer: TransactionSqlServer = new TransactionSqlServer();
|
|
74
|
+
|
|
75
|
+
private isBeginTransaction = false;
|
|
76
|
+
private connectionMap: Record<string, TransactionConnection> = {};
|
|
77
|
+
private connectionList: TransactionConnection[] = [];
|
|
78
|
+
|
|
79
|
+
|
|
11
80
|
private isReleased = false;
|
|
12
81
|
|
|
13
82
|
private getTxObj(pool: IConnectionPool): TransactionMySQL | TransactionPostgres | TransactionSqlServer {
|
|
14
83
|
if (pool.dbType === SqlDbType.postgres) {
|
|
15
84
|
return this.transactionPostgres;
|
|
16
85
|
}
|
|
17
|
-
|
|
18
86
|
if (pool.dbType === SqlDbType.sqlserver) {
|
|
19
87
|
return this.transactionSqlServer;
|
|
20
88
|
}
|
|
21
|
-
|
|
22
89
|
if (!pool.dbType || pool.dbType === SqlDbType.mysql) {
|
|
23
90
|
return this.transactionMySQL;
|
|
24
91
|
}
|
|
@@ -29,53 +96,108 @@ class Transaction {
|
|
|
29
96
|
* 获取链接对象
|
|
30
97
|
* @param pool
|
|
31
98
|
*/
|
|
32
|
-
public async getTxConnection(pool: IConnectionPool): Promise<
|
|
99
|
+
public async getTxConnection(pool: IConnectionPool): Promise<TransactionConnection> {
|
|
33
100
|
if (this.isReleased) {
|
|
34
|
-
const msg = '[Transaction] getTxConnection error, the txObject is isReleased, please check your code . DB request must be await';
|
|
101
|
+
const msg = '[crud-pro][Transaction] getTxConnection error, the txObject is isReleased, please check your code . DB request must be await';
|
|
35
102
|
console.error(msg);
|
|
36
103
|
throw new Error(msg);
|
|
37
104
|
}
|
|
38
105
|
|
|
39
|
-
|
|
40
|
-
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
// 尽量复用同一个连接。但是如果并行请求,也允许使用多个链接。
|
|
109
|
+
// 复用一个链接:可以使用事务。
|
|
110
|
+
// 使用多个链接:不能使用事务。
|
|
111
|
+
let connection = this.connectionMap[pool.poolName];
|
|
112
|
+
if (!connection) {
|
|
113
|
+
|
|
114
|
+
const txObj = this.getTxObj(pool);
|
|
115
|
+
const connection0 = await txObj.getTxConnection(pool);
|
|
116
|
+
connection = new TransactionConnection(connection0);
|
|
117
|
+
|
|
118
|
+
this.connectionMap[pool.poolName] = connection;
|
|
119
|
+
this.connectionList.push(connection);
|
|
120
|
+
|
|
121
|
+
// 开启了事务
|
|
122
|
+
if (this.isBeginTransaction) {
|
|
123
|
+
await connection.beginTransaction();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return connection;
|
|
128
|
+
|
|
41
129
|
}
|
|
42
130
|
|
|
43
131
|
/**
|
|
44
132
|
* 开始事务
|
|
45
133
|
*/
|
|
46
134
|
public beginTx() {
|
|
47
|
-
this.
|
|
48
|
-
this.transactionPostgres.beginTx();
|
|
49
|
-
this.transactionSqlServer.beginTx();
|
|
135
|
+
this.isBeginTransaction = true;
|
|
50
136
|
}
|
|
51
137
|
|
|
52
138
|
/**
|
|
53
139
|
* 提交事务
|
|
54
140
|
*/
|
|
55
141
|
public async commitTx() {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
142
|
+
if (!this.isBeginTransaction) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const connections = this.connectionList;
|
|
146
|
+
for (let i = 0; i < connections.length; i++) {
|
|
147
|
+
const connection = connections[i];
|
|
148
|
+
await connection.commit();
|
|
149
|
+
}
|
|
59
150
|
}
|
|
60
151
|
|
|
61
152
|
/**
|
|
62
153
|
* 事务回滚
|
|
63
154
|
*/
|
|
64
155
|
public async rollbackTx() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
156
|
+
if (!this.isBeginTransaction) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const connections = this.connectionList;
|
|
160
|
+
for (let i = 0; i < connections.length; i++) {
|
|
161
|
+
const connection = connections[i];
|
|
162
|
+
await connection.rollback();
|
|
163
|
+
}
|
|
68
164
|
}
|
|
69
165
|
|
|
70
166
|
/**
|
|
71
167
|
* 释放连接
|
|
72
168
|
*/
|
|
73
169
|
public async releaseTx() {
|
|
74
|
-
await this.transactionMySQL.releaseTx();
|
|
75
|
-
await this.transactionPostgres.releaseTx();
|
|
76
|
-
await this.transactionSqlServer.releaseTx();
|
|
77
170
|
this.isReleased = true;
|
|
171
|
+
|
|
172
|
+
// 不管有没有开启事务,都要释放连接。
|
|
173
|
+
const connections = this.connectionList;
|
|
174
|
+
for (let i = 0; i < connections.length; i++) {
|
|
175
|
+
const connection = connections[i];
|
|
176
|
+
try {
|
|
177
|
+
await connection.releaseOnlyFinished();
|
|
178
|
+
} catch (e) {
|
|
179
|
+
console.error(e);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
78
182
|
}
|
|
183
|
+
|
|
184
|
+
public async releaseTxOnlyReleased(){
|
|
185
|
+
if (!this.isReleased) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// 不管有没有开启事务,都要释放连接。
|
|
190
|
+
const connections = this.connectionList;
|
|
191
|
+
for (let i = 0; i < connections.length; i++) {
|
|
192
|
+
const connection = connections[i];
|
|
193
|
+
try {
|
|
194
|
+
await connection.releaseOnlyFinished();
|
|
195
|
+
} catch (e) {
|
|
196
|
+
console.error(e);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
79
201
|
}
|
|
80
202
|
|
|
81
203
|
export { Transaction };
|
|
@@ -1,88 +1,57 @@
|
|
|
1
1
|
import { PoolConnection, Pool } from 'mysql2/promise';
|
|
2
|
-
import {
|
|
2
|
+
import {IConnectionPool, IPoolConnectionClient, IPoolConnectionQueryResult} from '../interfaces';
|
|
3
3
|
import { CrudMonitor } from "@/libs/crud-pro/utils/CrudMonitor";
|
|
4
4
|
|
|
5
|
-
class TransactionMySQL {
|
|
6
|
-
private isBeginTransaction = false;
|
|
7
|
-
private connectionMap: Record<string, PoolConnection> = {};
|
|
8
|
-
private connectionList: PoolConnection[] = [];
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* 获取链接对象
|
|
12
|
-
* @param pool
|
|
13
|
-
*/
|
|
14
|
-
public async getTxConnection(pool: IConnectionPool): Promise<PoolConnection> {
|
|
15
|
-
|
|
16
|
-
// 尽量复用同一个连接
|
|
17
|
-
let connection = this.connectionMap[pool.poolName];
|
|
18
|
-
if (!connection) {
|
|
19
|
-
const poolInstance: Pool = pool.poolInstance as any;
|
|
20
|
-
connection = await poolInstance.getConnection();
|
|
21
5
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
6
|
+
class MySqlConnectionClient implements IPoolConnectionClient {
|
|
7
|
+
originConnection: PoolConnection;
|
|
8
|
+
constructor(originConnection: PoolConnection) {
|
|
9
|
+
this.originConnection = originConnection;
|
|
10
|
+
CrudMonitor.mysqlGetConnectionCount++;
|
|
11
|
+
}
|
|
12
|
+
async query(sql: string, values: any[]): Promise<IPoolConnectionQueryResult> {
|
|
13
|
+
const res = await this.originConnection.query(sql, values);
|
|
14
|
+
const rows = res[0] as any;
|
|
15
|
+
return {
|
|
16
|
+
rows,
|
|
17
|
+
originRes: res
|
|
30
18
|
}
|
|
31
|
-
return connection;
|
|
32
19
|
}
|
|
33
20
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
*/
|
|
37
|
-
public beginTx() {
|
|
38
|
-
this.isBeginTransaction = true;
|
|
21
|
+
async beginTransaction() {
|
|
22
|
+
await this.originConnection.beginTransaction();
|
|
39
23
|
}
|
|
40
24
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*/
|
|
44
|
-
public async commitTx() {
|
|
45
|
-
if (!this.isBeginTransaction) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const connections = this.connectionList;
|
|
49
|
-
for (let i = 0; i < connections.length; i++) {
|
|
50
|
-
const connection = connections[i];
|
|
51
|
-
await connection.commit();
|
|
52
|
-
}
|
|
25
|
+
async commit() {
|
|
26
|
+
await this.originConnection.commit();
|
|
53
27
|
}
|
|
54
28
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
await connection.rollback();
|
|
29
|
+
async rollback() {
|
|
30
|
+
await this.originConnection.commit();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async release() {
|
|
34
|
+
try {
|
|
35
|
+
CrudMonitor.mysqlReleaseConnectionCount++;
|
|
36
|
+
await this.originConnection.release();
|
|
37
|
+
} catch (e) {
|
|
38
|
+
console.log('[crud-pro] MySqlConnectionClient release ', e);
|
|
66
39
|
}
|
|
67
40
|
}
|
|
68
41
|
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class TransactionMySQL {
|
|
69
47
|
/**
|
|
70
|
-
*
|
|
48
|
+
* 获取链接对象
|
|
49
|
+
* @param pool
|
|
71
50
|
*/
|
|
72
|
-
public async
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const connection = connections[i];
|
|
77
|
-
try {
|
|
78
|
-
CrudMonitor.mysqlReleaseConnectionCount++;
|
|
79
|
-
await connection.release();
|
|
80
|
-
} catch (e) {
|
|
81
|
-
console.error(e);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
this.connectionList = [];
|
|
85
|
-
this.connectionMap = {};
|
|
51
|
+
public async getTxConnection(pool: IConnectionPool): Promise<MySqlConnectionClient> {
|
|
52
|
+
const poolInstance: Pool = pool.poolInstance as any;
|
|
53
|
+
const originConnection = await poolInstance.getConnection();
|
|
54
|
+
return new MySqlConnectionClient(originConnection);
|
|
86
55
|
}
|
|
87
56
|
}
|
|
88
57
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PoolClient
|
|
2
|
-
import {
|
|
3
|
-
import {CrudMonitor} from "@/libs/crud-pro/utils/CrudMonitor";
|
|
1
|
+
import {Pool, PoolClient} from 'pg';
|
|
2
|
+
import {IConnectionPool, IPoolConnectionClient, IPoolConnectionQueryResult} from '../interfaces';
|
|
3
|
+
import { CrudMonitor } from "@/libs/crud-pro/utils/CrudMonitor";
|
|
4
4
|
|
|
5
5
|
async function beginTransaction(connection: PoolClient) {
|
|
6
6
|
return await connection.query('BEGIN');
|
|
@@ -14,83 +14,65 @@ async function rollback(connection: PoolClient) {
|
|
|
14
14
|
return await connection.query('ROLLBACK');
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
class TransactionPostgres {
|
|
18
|
-
private isBeginTransaction = false;
|
|
19
|
-
private connectionMap: Record<string, PoolClient> = {};
|
|
20
|
-
private connectionList: PoolClient[] = [];
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
18
|
+
class PostgresConnectionClient implements IPoolConnectionClient {
|
|
19
|
+
originConnection: PoolClient;
|
|
20
|
+
constructor(originConnection: PoolClient) {
|
|
21
|
+
this.originConnection = originConnection;
|
|
22
|
+
CrudMonitor.postgresGetConnectionCount++;
|
|
23
|
+
}
|
|
24
|
+
async query(sql: string, values: any[]): Promise<IPoolConnectionQueryResult> {
|
|
25
|
+
const pgClient = this.originConnection;
|
|
26
|
+
const result = await pgClient.query({
|
|
27
|
+
text: sql,
|
|
28
|
+
values: values || [],
|
|
29
|
+
});
|
|
30
|
+
let rows: any[] = [];
|
|
31
|
+
if (result && Array.isArray(result.rows)) {
|
|
32
|
+
rows = result.rows;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
rows,
|
|
37
|
+
originRes: result
|
|
38
38
|
}
|
|
39
|
-
return connection;
|
|
40
39
|
}
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*/
|
|
45
|
-
public beginTx() {
|
|
46
|
-
this.isBeginTransaction = true;
|
|
41
|
+
async beginTransaction() {
|
|
42
|
+
await beginTransaction(this.originConnection);
|
|
47
43
|
}
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
*/
|
|
52
|
-
public async commitTx() {
|
|
53
|
-
if (!this.isBeginTransaction) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const connections = this.connectionList;
|
|
57
|
-
for (let i = 0; i < connections.length; i++) {
|
|
58
|
-
const connection = connections[i];
|
|
59
|
-
await commit(connection);
|
|
60
|
-
}
|
|
45
|
+
async commit() {
|
|
46
|
+
await commit(this.originConnection);
|
|
61
47
|
}
|
|
62
48
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
49
|
+
async rollback() {
|
|
50
|
+
await rollback(this.originConnection);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
async release() {
|
|
55
|
+
try {
|
|
56
|
+
CrudMonitor.postgresReleaseConnectionCount++;
|
|
57
|
+
await this.originConnection.release();
|
|
58
|
+
} catch (e) {
|
|
59
|
+
console.log('[crud-pro] PostgresConnectionClient release ', e);
|
|
74
60
|
}
|
|
75
61
|
}
|
|
76
62
|
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class TransactionPostgres {
|
|
77
68
|
/**
|
|
78
|
-
*
|
|
69
|
+
* 获取链接对象
|
|
70
|
+
* @param pool
|
|
79
71
|
*/
|
|
80
|
-
public async
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const connection = connections[i];
|
|
85
|
-
try {
|
|
86
|
-
CrudMonitor.postgresReleaseConnectionCount++;
|
|
87
|
-
await connection.release();
|
|
88
|
-
} catch (e) {
|
|
89
|
-
console.error(e);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
this.connectionList = [];
|
|
93
|
-
this.connectionMap = {};
|
|
72
|
+
public async getTxConnection(pool: IConnectionPool): Promise<PostgresConnectionClient> {
|
|
73
|
+
const poolInstance: Pool = pool.poolInstance as any;
|
|
74
|
+
const originConnection = await poolInstance.connect();
|
|
75
|
+
return new PostgresConnectionClient(originConnection);
|
|
94
76
|
}
|
|
95
77
|
}
|
|
96
78
|
|
|
@@ -1,113 +1,77 @@
|
|
|
1
1
|
import { ConnectionPool, Request, Transaction } from 'mssql';
|
|
2
|
-
import {
|
|
3
|
-
import {CrudMonitor} from "@/libs/crud-pro/utils/CrudMonitor";
|
|
2
|
+
import {IConnectionPool, IPoolConnectionClient, IPoolConnectionQueryResult} from '../interfaces';
|
|
3
|
+
import { CrudMonitor } from "@/libs/crud-pro/utils/CrudMonitor";
|
|
4
|
+
import * as _ from 'lodash';
|
|
4
5
|
|
|
5
|
-
interface ISqlServerConnection extends IPoolConnectionClient {
|
|
6
|
-
originConnection: ConnectionPool;
|
|
7
|
-
}
|
|
8
6
|
|
|
9
|
-
class TransactionSqlServer {
|
|
10
|
-
private isBeginTransaction = false;
|
|
11
|
-
private connectionMap: Record<string, ISqlServerConnection> = {};
|
|
12
|
-
private connectionList: ISqlServerConnection[] = [];
|
|
13
|
-
private transactionList: Transaction[] = [];
|
|
14
7
|
|
|
8
|
+
class SqlServerConnectionClient implements IPoolConnectionClient {
|
|
9
|
+
originConnection: ConnectionPool;
|
|
10
|
+
private sqlServerTransaction: Transaction;
|
|
11
|
+
constructor(originConnection: ConnectionPool) {
|
|
12
|
+
this.originConnection = originConnection;
|
|
13
|
+
}
|
|
14
|
+
async query(sql: string, values: any[]): Promise<IPoolConnectionQueryResult> {
|
|
15
|
+
const request = new Request(this.originConnection);
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
let connection = this.connectionMap[pool.poolName];
|
|
22
|
-
if (!connection) {
|
|
23
|
-
connection = await this.connectAndCreateConnection(pool);
|
|
24
|
-
this.connectionMap[pool.poolName] = connection;
|
|
25
|
-
this.connectionList.push(connection);
|
|
26
|
-
CrudMonitor.mssqlGetConnectionCount++;
|
|
27
|
-
|
|
28
|
-
// 开启了事务
|
|
29
|
-
if (this.isBeginTransaction) {
|
|
30
|
-
await this.beginTransaction(connection);
|
|
17
|
+
if (Array.isArray(values)) {
|
|
18
|
+
for (let i = 0; i < values.length; i++) {
|
|
19
|
+
const index = i + 1;
|
|
20
|
+
const value = values[i];
|
|
21
|
+
request.input(`fatcms_ms${index}`, value);
|
|
31
22
|
}
|
|
32
23
|
}
|
|
33
|
-
return connection;
|
|
34
|
-
}
|
|
35
24
|
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
const originConnection = await poolInstance.connect();
|
|
25
|
+
const res = await request.query(sql);
|
|
26
|
+
const rows = _.get(res, 'recordsets[0]') || [];
|
|
39
27
|
return {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const request = new Request(originConnection);
|
|
43
|
-
if (Array.isArray(values)) {
|
|
44
|
-
for (let i = 0; i < values.length; i++) {
|
|
45
|
-
const index = i + 1;
|
|
46
|
-
const value = values[i];
|
|
47
|
-
request.input(`fatcms_ms${index}`, value);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return request.query(sql);
|
|
51
|
-
},
|
|
28
|
+
rows,
|
|
29
|
+
originRes: res
|
|
52
30
|
};
|
|
53
31
|
}
|
|
54
32
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
async beginTransaction() {
|
|
36
|
+
const originConnection: ConnectionPool = this.originConnection;
|
|
37
|
+
const tmpTx = new Transaction(originConnection);
|
|
38
|
+
this.sqlServerTransaction = tmpTx;
|
|
39
|
+
return await tmpTx.begin();
|
|
60
40
|
}
|
|
61
41
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
public async commitTx() {
|
|
66
|
-
if (!this.isBeginTransaction) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const transactions = this.transactionList;
|
|
70
|
-
for (let i = 0; i < transactions.length; i++) {
|
|
71
|
-
const tmpTx = transactions[i];
|
|
72
|
-
await tmpTx.commit();
|
|
73
|
-
}
|
|
42
|
+
async commit() {
|
|
43
|
+
const tmpTx = this.sqlServerTransaction;
|
|
44
|
+
await tmpTx.commit();
|
|
74
45
|
}
|
|
75
46
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
public async rollbackTx() {
|
|
80
|
-
if (!this.isBeginTransaction) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
const transactions = this.transactionList;
|
|
84
|
-
for (let i = 0; i < transactions.length; i++) {
|
|
85
|
-
const tmpTx = transactions[i];
|
|
86
|
-
await tmpTx.rollback();
|
|
87
|
-
}
|
|
47
|
+
async rollback() {
|
|
48
|
+
const tmpTx = this.sqlServerTransaction;
|
|
49
|
+
await tmpTx.rollback();
|
|
88
50
|
}
|
|
89
51
|
|
|
90
|
-
/**
|
|
91
|
-
* 释放连接
|
|
92
|
-
*/
|
|
93
|
-
public async releaseTx() {
|
|
94
52
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
CrudMonitor.
|
|
53
|
+
async release() {
|
|
54
|
+
try {
|
|
55
|
+
CrudMonitor.postgresReleaseConnectionCount++;
|
|
56
|
+
} catch (e) {
|
|
57
|
+
console.log('[crud-pro] SqlServerConnectionClient release ', e);
|
|
98
58
|
}
|
|
99
|
-
|
|
100
|
-
this.connectionMap = {};
|
|
101
|
-
this.connectionList = [];
|
|
102
|
-
this.transactionList = [];
|
|
103
59
|
}
|
|
104
60
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
class TransactionSqlServer {
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 获取链接对象
|
|
67
|
+
* @param pool
|
|
68
|
+
*/
|
|
69
|
+
public async getTxConnection(pool: IConnectionPool): Promise<IPoolConnectionClient> {
|
|
70
|
+
const poolInstance: ConnectionPool = pool.poolInstance as any;
|
|
71
|
+
const originConnection = await poolInstance.connect();
|
|
72
|
+
return new SqlServerConnectionClient(originConnection);
|
|
110
73
|
}
|
|
74
|
+
|
|
111
75
|
}
|
|
112
76
|
|
|
113
77
|
export { TransactionSqlServer };
|
|
@@ -3,7 +3,7 @@ import { CrudProServiceBase } from './CrudProServiceBase';
|
|
|
3
3
|
import { IRequestCfgModel } from '../interfaces';
|
|
4
4
|
import { MixinUtils } from '../utils/MixinUtils';
|
|
5
5
|
import { ICurdProServiceHub } from '../models/ServiceHub';
|
|
6
|
-
import { pickAndConvertRowsByMix } from '../utils/sqlConvert/convertMix';
|
|
6
|
+
// import { pickAndConvertRowsByMix } from '../utils/sqlConvert/convertMix';
|
|
7
7
|
import MemoryRefreshCache from '../utils/MemoryRefreshCache';
|
|
8
8
|
|
|
9
9
|
const methodCache = new MemoryRefreshCache();
|
|
@@ -57,7 +57,7 @@ class CrudProCachedCfgService extends CrudProServiceBase {
|
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
const queryRes = await this.executeUnsafeQuery(baseInfo, sql, [method]);
|
|
60
|
-
const rows2: any[] =
|
|
60
|
+
const rows2: any[] = queryRes.rows || [];
|
|
61
61
|
if (rows2.length > 0) {
|
|
62
62
|
return parseMethodInfo(rows2[0]);
|
|
63
63
|
}
|
|
@@ -73,7 +73,7 @@ class CrudProCachedCfgService extends CrudProServiceBase {
|
|
|
73
73
|
sqlDbType: sysDatabaseDbType,
|
|
74
74
|
};
|
|
75
75
|
const queryRes = await this.executeUnsafeQuery(baseInfo, sql);
|
|
76
|
-
const rows2: any[] =
|
|
76
|
+
const rows2: any[] = queryRes.rows || [];
|
|
77
77
|
return rows2.map(row => {
|
|
78
78
|
return parseMethodInfo(row);
|
|
79
79
|
});
|