midway-fatcms 0.0.1-beta.71 → 0.0.1-beta.72
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 +171 -171
- 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 +42 -42
- package/dist/controller/base/BaseApiController.js +189 -189
- 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 -15
- package/dist/controller/manage/DataDictManageApi.js +165 -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 +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 +72 -72
- 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 -33
- package/dist/controller/myinfo/AuthController.js +157 -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 +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 +105 -104
- package/dist/index.js +123 -122
- 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 +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 +106 -106
- package/dist/libs/crud-pro/exceptions.js +119 -119
- package/dist/libs/crud-pro/interfaces.d.ts +166 -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 +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 +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/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 +35 -35
- 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 +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/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/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 -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 -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 +65 -64
- package/dist/models/userSession.js +168 -167
- package/dist/schedule/anonymousContext.d.ts +14 -14
- package/dist/schedule/anonymousContext.js +62 -61
- 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 +57 -71
- package/dist/service/AuthService.js +265 -270
- package/dist/service/EnumInfoService.d.ts +30 -31
- package/dist/service/EnumInfoService.js +97 -120
- 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 -0
- package/dist/service/SysDictDataService.js +72 -0
- 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 +23 -23
- package/dist/service/base/cache/CacheServiceFactory.js +83 -83
- 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 +202 -202
- 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/controller/base/BaseApiController.ts +6 -7
- package/src/controller/manage/DataDictManageApi.ts +41 -0
- package/src/controller/myinfo/AuthController.ts +23 -4
- package/src/index.ts +1 -0
- package/src/libs/utils/AsymmetricCrypto.ts +307 -310
- package/src/libs/utils/format-url.ts +15 -15
- package/src/libs/utils/functions.ts +7 -3
- package/src/libs/utils/render-utils.ts +216 -216
- package/src/models/WorkbenchInfoTools.ts +19 -19
- package/src/models/bizmodels.ts +1 -1
- package/src/models/userSession.ts +2 -0
- package/src/schedule/anonymousContext.ts +1 -0
- package/src/service/AuthService.ts +44 -48
- package/src/service/EnumInfoService.ts +16 -42
- package/src/service/SysAppService.ts +88 -88
- package/src/service/SysDictDataService.ts +63 -0
- package/src/service/WorkbenchService.ts +277 -277
- package/src/service/base/cache/CacheServiceFactory.ts +86 -86
- 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
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import { Inject, Provide, Config } from '@midwayjs/core';
|
|
2
|
-
import { Context } from '@midwayjs/koa';
|
|
3
|
-
import {CacheNameEnum, ICacheService, IfatcmsCacheConfig, IWorkbenchConfigCacheLevel} from '@/models/bizmodels';
|
|
4
|
-
import { CacheLevelEnum, } from '@/models/SystemEntities';
|
|
5
|
-
import { RedisService } from '@midwayjs/redis';
|
|
6
|
-
import { CtxCache } from './CtxCache';
|
|
7
|
-
import { RedisCache } from './RedisCache';
|
|
8
|
-
import { DiskCache } from './DiskCache';
|
|
9
|
-
import { MemoryCache } from './MemoryCache';
|
|
10
|
-
import { NoneCache } from './NoneCache';
|
|
11
|
-
|
|
12
|
-
interface IGetJsonObjectCacheParam {
|
|
13
|
-
cacheName: CacheNameEnum;
|
|
14
|
-
cacheKey: string;
|
|
15
|
-
refreshCache?: boolean;
|
|
16
|
-
getter: () => Promise<any>;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
interface IRemoveItemCacheParam {
|
|
20
|
-
cacheName: CacheNameEnum;
|
|
21
|
-
cacheKey: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const defaultCacheConfig: IWorkbenchConfigCacheLevel = {
|
|
25
|
-
cacheLevel: CacheLevelEnum.MEMORY,
|
|
26
|
-
cacheSecond: 60 * 60 * 24 * 7
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@Provide()
|
|
30
|
-
export class CacheServiceFactory {
|
|
31
|
-
@Inject()
|
|
32
|
-
protected ctx: Context;
|
|
33
|
-
|
|
34
|
-
@Config('fatcmsCache')
|
|
35
|
-
private fatcmsCache: IfatcmsCacheConfig;
|
|
36
|
-
|
|
37
|
-
@Inject()
|
|
38
|
-
protected redisService: RedisService;
|
|
39
|
-
|
|
40
|
-
private getCacheService(cacheLevelEnum: CacheLevelEnum, cacheName: CacheNameEnum, cacheSecond: number): ICacheService {
|
|
41
|
-
switch (cacheLevelEnum) {
|
|
42
|
-
case CacheLevelEnum.CONTEXT:
|
|
43
|
-
return new CtxCache(this.ctx, cacheName);
|
|
44
|
-
case CacheLevelEnum.REDIS:
|
|
45
|
-
return new RedisCache(this.ctx, cacheName, this.redisService, cacheSecond);
|
|
46
|
-
case CacheLevelEnum.DISK:
|
|
47
|
-
return new DiskCache(this.ctx, cacheName, this.fatcmsCache, cacheSecond);
|
|
48
|
-
case CacheLevelEnum.MEMORY:
|
|
49
|
-
return new MemoryCache(this.ctx, cacheName, cacheSecond);
|
|
50
|
-
case CacheLevelEnum.NONE:
|
|
51
|
-
return new NoneCache(this.ctx, cacheName);
|
|
52
|
-
default:
|
|
53
|
-
return new NoneCache(this.ctx, cacheName);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
public getCacheServiceByName(cacheName: CacheNameEnum): ICacheService {
|
|
59
|
-
const cacheConfig: Record<CacheNameEnum, IWorkbenchConfigCacheLevel> = (this.fatcmsCache?.cacheConfig || {}) as any;
|
|
60
|
-
if (cacheConfig[cacheName]) {
|
|
61
|
-
const { cacheLevel, cacheSecond } = Object.assign({}, defaultCacheConfig, cacheConfig[cacheName]) ;
|
|
62
|
-
return this.getCacheService(cacheLevel, cacheName, cacheSecond);
|
|
63
|
-
}
|
|
64
|
-
const { cacheLevel, cacheSecond } = defaultCacheConfig;
|
|
65
|
-
return this.getCacheService(cacheLevel, cacheName, cacheSecond);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
public async getJsonObjectCache(param: IGetJsonObjectCacheParam): Promise<any> {
|
|
70
|
-
const {cacheName, cacheKey, refreshCache, getter} = param;
|
|
71
|
-
const cacheService = this.getCacheServiceByName(cacheName);
|
|
72
|
-
let obj = await cacheService.getJsonObject(cacheKey);
|
|
73
|
-
if (!obj || refreshCache === true) {
|
|
74
|
-
obj = await getter();
|
|
75
|
-
await cacheService.setJsonObject(cacheKey, obj);
|
|
76
|
-
}
|
|
77
|
-
return obj;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
public async removeItemCache(param: IRemoveItemCacheParam): Promise<any> {
|
|
81
|
-
const {cacheName, cacheKey } = param;
|
|
82
|
-
const cacheService = this.getCacheServiceByName(cacheName);
|
|
83
|
-
return await cacheService.removeItem(cacheKey);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
}
|
|
1
|
+
import { Inject, Provide, Config } from '@midwayjs/core';
|
|
2
|
+
import { Context } from '@midwayjs/koa';
|
|
3
|
+
import {CacheNameEnum, ICacheService, IfatcmsCacheConfig, IWorkbenchConfigCacheLevel} from '@/models/bizmodels';
|
|
4
|
+
import { CacheLevelEnum, } from '@/models/SystemEntities';
|
|
5
|
+
import { RedisService } from '@midwayjs/redis';
|
|
6
|
+
import { CtxCache } from './CtxCache';
|
|
7
|
+
import { RedisCache } from './RedisCache';
|
|
8
|
+
import { DiskCache } from './DiskCache';
|
|
9
|
+
import { MemoryCache } from './MemoryCache';
|
|
10
|
+
import { NoneCache } from './NoneCache';
|
|
11
|
+
|
|
12
|
+
interface IGetJsonObjectCacheParam {
|
|
13
|
+
cacheName: CacheNameEnum;
|
|
14
|
+
cacheKey: string;
|
|
15
|
+
refreshCache?: boolean;
|
|
16
|
+
getter: () => Promise<any>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface IRemoveItemCacheParam {
|
|
20
|
+
cacheName: CacheNameEnum;
|
|
21
|
+
cacheKey: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const defaultCacheConfig: IWorkbenchConfigCacheLevel = {
|
|
25
|
+
cacheLevel: CacheLevelEnum.MEMORY,
|
|
26
|
+
cacheSecond: 60 * 60 * 24 * 7
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@Provide()
|
|
30
|
+
export class CacheServiceFactory {
|
|
31
|
+
@Inject()
|
|
32
|
+
protected ctx: Context;
|
|
33
|
+
|
|
34
|
+
@Config('fatcmsCache')
|
|
35
|
+
private fatcmsCache: IfatcmsCacheConfig;
|
|
36
|
+
|
|
37
|
+
@Inject()
|
|
38
|
+
protected redisService: RedisService;
|
|
39
|
+
|
|
40
|
+
private getCacheService(cacheLevelEnum: CacheLevelEnum, cacheName: CacheNameEnum, cacheSecond: number): ICacheService {
|
|
41
|
+
switch (cacheLevelEnum) {
|
|
42
|
+
case CacheLevelEnum.CONTEXT:
|
|
43
|
+
return new CtxCache(this.ctx, cacheName);
|
|
44
|
+
case CacheLevelEnum.REDIS:
|
|
45
|
+
return new RedisCache(this.ctx, cacheName, this.redisService, cacheSecond);
|
|
46
|
+
case CacheLevelEnum.DISK:
|
|
47
|
+
return new DiskCache(this.ctx, cacheName, this.fatcmsCache, cacheSecond);
|
|
48
|
+
case CacheLevelEnum.MEMORY:
|
|
49
|
+
return new MemoryCache(this.ctx, cacheName, cacheSecond);
|
|
50
|
+
case CacheLevelEnum.NONE:
|
|
51
|
+
return new NoneCache(this.ctx, cacheName);
|
|
52
|
+
default:
|
|
53
|
+
return new NoneCache(this.ctx, cacheName);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
public getCacheServiceByName(cacheName: CacheNameEnum): ICacheService {
|
|
59
|
+
const cacheConfig: Record<CacheNameEnum, IWorkbenchConfigCacheLevel> = (this.fatcmsCache?.cacheConfig || {}) as any;
|
|
60
|
+
if (cacheConfig[cacheName]) {
|
|
61
|
+
const { cacheLevel, cacheSecond } = Object.assign({}, defaultCacheConfig, cacheConfig[cacheName]) ;
|
|
62
|
+
return this.getCacheService(cacheLevel, cacheName, cacheSecond);
|
|
63
|
+
}
|
|
64
|
+
const { cacheLevel, cacheSecond } = defaultCacheConfig;
|
|
65
|
+
return this.getCacheService(cacheLevel, cacheName, cacheSecond);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
public async getJsonObjectCache(param: IGetJsonObjectCacheParam): Promise<any> {
|
|
70
|
+
const {cacheName, cacheKey, refreshCache, getter} = param;
|
|
71
|
+
const cacheService = this.getCacheServiceByName(cacheName);
|
|
72
|
+
let obj = await cacheService.getJsonObject(cacheKey);
|
|
73
|
+
if (!obj || refreshCache === true) {
|
|
74
|
+
obj = await getter();
|
|
75
|
+
await cacheService.setJsonObject(cacheKey, obj);
|
|
76
|
+
}
|
|
77
|
+
return obj;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public async removeItemCache(param: IRemoveItemCacheParam): Promise<any> {
|
|
81
|
+
const {cacheName, cacheKey } = param;
|
|
82
|
+
const cacheService = this.getCacheServiceByName(cacheName);
|
|
83
|
+
return await cacheService.removeItem(cacheKey);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { ICacheService } from '@/models/bizmodels';
|
|
2
|
-
import { CacheNameEnum} from "@/models/bizmodels";
|
|
3
|
-
import { Context } from '@midwayjs/koa';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export class CtxCache implements ICacheService {
|
|
8
|
-
private ctx: Context;
|
|
9
|
-
private cacheName: CacheNameEnum;
|
|
10
|
-
constructor(ctx: Context, cacheName: CacheNameEnum) {
|
|
11
|
-
this.ctx = ctx;
|
|
12
|
-
this.cacheName = cacheName;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
private getCacheMap(): Map<string, any> {
|
|
16
|
-
if (!this.ctx.baseCtxCacheMap) {
|
|
17
|
-
this.ctx.baseCtxCacheMap = new Map();
|
|
18
|
-
}
|
|
19
|
-
if (!this.ctx.baseCtxCacheMap.has(this.cacheName)) {
|
|
20
|
-
this.ctx.baseCtxCacheMap.set(this.cacheName, new Map());
|
|
21
|
-
}
|
|
22
|
-
return this.ctx.baseCtxCacheMap.get(this.cacheName);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async getJsonObject(key: string): Promise<any> {
|
|
26
|
-
const cacheMap = this.getCacheMap();
|
|
27
|
-
return cacheMap.get(key);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* 设置缓存对象
|
|
32
|
-
* @param key
|
|
33
|
-
* @param obj
|
|
34
|
-
* @returns
|
|
35
|
-
*/
|
|
36
|
-
async setJsonObject(key: string, obj: any): Promise<any> {
|
|
37
|
-
const cacheMap = this.getCacheMap();
|
|
38
|
-
cacheMap.set(key, obj);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async removeItem(key: string): Promise<any> {
|
|
42
|
-
const cacheMap = this.getCacheMap();
|
|
43
|
-
cacheMap.delete(key);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
1
|
+
import { ICacheService } from '@/models/bizmodels';
|
|
2
|
+
import { CacheNameEnum} from "@/models/bizmodels";
|
|
3
|
+
import { Context } from '@midwayjs/koa';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export class CtxCache implements ICacheService {
|
|
8
|
+
private ctx: Context;
|
|
9
|
+
private cacheName: CacheNameEnum;
|
|
10
|
+
constructor(ctx: Context, cacheName: CacheNameEnum) {
|
|
11
|
+
this.ctx = ctx;
|
|
12
|
+
this.cacheName = cacheName;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
private getCacheMap(): Map<string, any> {
|
|
16
|
+
if (!this.ctx.baseCtxCacheMap) {
|
|
17
|
+
this.ctx.baseCtxCacheMap = new Map();
|
|
18
|
+
}
|
|
19
|
+
if (!this.ctx.baseCtxCacheMap.has(this.cacheName)) {
|
|
20
|
+
this.ctx.baseCtxCacheMap.set(this.cacheName, new Map());
|
|
21
|
+
}
|
|
22
|
+
return this.ctx.baseCtxCacheMap.get(this.cacheName);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async getJsonObject(key: string): Promise<any> {
|
|
26
|
+
const cacheMap = this.getCacheMap();
|
|
27
|
+
return cacheMap.get(key);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 设置缓存对象
|
|
32
|
+
* @param key
|
|
33
|
+
* @param obj
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
async setJsonObject(key: string, obj: any): Promise<any> {
|
|
37
|
+
const cacheMap = this.getCacheMap();
|
|
38
|
+
cacheMap.set(key, obj);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async removeItem(key: string): Promise<any> {
|
|
42
|
+
const cacheMap = this.getCacheMap();
|
|
43
|
+
cacheMap.delete(key);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import * as md5 from 'md5';
|
|
3
|
-
import * as fs from 'fs/promises';
|
|
4
|
-
import * as fs2 from 'fs';
|
|
5
|
-
import * as path from 'path';
|
|
6
|
-
import { parseJsonObject } from '@/libs/utils/functions';
|
|
7
|
-
import { ICacheService, IfatcmsCacheConfig } from '@/models/bizmodels';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class DiskCache implements ICacheService {
|
|
11
|
-
protected ctx: Context;
|
|
12
|
-
protected cacheName: string;
|
|
13
|
-
private fatcmsCache: IfatcmsCacheConfig;
|
|
14
|
-
private cacheSecond: number;
|
|
15
|
-
constructor(ctx: Context, cacheName: string, fatcmsCache: IfatcmsCacheConfig,cacheSecond: number) {
|
|
16
|
-
this.ctx = ctx;
|
|
17
|
-
this.cacheName = cacheName;
|
|
18
|
-
this.fatcmsCache = fatcmsCache;
|
|
19
|
-
this.cacheSecond = cacheSecond;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* 获取缓存文件路径
|
|
25
|
-
* @param key
|
|
26
|
-
* @param checkDirExist
|
|
27
|
-
* @private
|
|
28
|
-
*/
|
|
29
|
-
private async getCacheFilePath(key: string, checkDirExist: boolean = true): Promise<string> {
|
|
30
|
-
const cacheDir0 = this.fatcmsCache.diskCacheDir;
|
|
31
|
-
const cacheDir = path.join(cacheDir0, this.cacheName);
|
|
32
|
-
if (checkDirExist) {
|
|
33
|
-
const isDirExist = await fs2.promises.access(cacheDir).then(() => true, () => false);
|
|
34
|
-
if (!isDirExist) {
|
|
35
|
-
await fs2.promises.mkdir(cacheDir, { recursive: true });
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return path.join(cacheDir, `${md5(key)}.json`);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async getJsonObject(key: string): Promise<any> {
|
|
42
|
-
const cacheFilePath = await this.getCacheFilePath(key, false);
|
|
43
|
-
try {
|
|
44
|
-
const str = await fs.readFile(cacheFilePath, 'utf8');
|
|
45
|
-
const data = parseJsonObject(str);
|
|
46
|
-
if (data && data.key === key && data.expireAt > Date.now()) {
|
|
47
|
-
return data.data;
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
} catch (error) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
async setJsonObject(key: string, obj: any, cacheSecond0?: number): Promise<any> {
|
|
57
|
-
const cacheSecond = cacheSecond0 || this.cacheSecond || 60;
|
|
58
|
-
|
|
59
|
-
const str = JSON.stringify({
|
|
60
|
-
data: obj,
|
|
61
|
-
key,
|
|
62
|
-
expireAt: Date.now() + cacheSecond * 1000,
|
|
63
|
-
});
|
|
64
|
-
const cacheFilePath = await this.getCacheFilePath(key);
|
|
65
|
-
try {
|
|
66
|
-
await fs.writeFile(cacheFilePath, str, 'utf8');
|
|
67
|
-
return true;
|
|
68
|
-
} catch (error) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
async removeItem(key: string): Promise<any> {
|
|
74
|
-
const cacheFilePath = await this.getCacheFilePath(key);
|
|
75
|
-
try {
|
|
76
|
-
await fs.unlink(cacheFilePath);
|
|
77
|
-
return true;
|
|
78
|
-
} catch (error) {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import * as md5 from 'md5';
|
|
3
|
+
import * as fs from 'fs/promises';
|
|
4
|
+
import * as fs2 from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import { parseJsonObject } from '@/libs/utils/functions';
|
|
7
|
+
import { ICacheService, IfatcmsCacheConfig } from '@/models/bizmodels';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export class DiskCache implements ICacheService {
|
|
11
|
+
protected ctx: Context;
|
|
12
|
+
protected cacheName: string;
|
|
13
|
+
private fatcmsCache: IfatcmsCacheConfig;
|
|
14
|
+
private cacheSecond: number;
|
|
15
|
+
constructor(ctx: Context, cacheName: string, fatcmsCache: IfatcmsCacheConfig,cacheSecond: number) {
|
|
16
|
+
this.ctx = ctx;
|
|
17
|
+
this.cacheName = cacheName;
|
|
18
|
+
this.fatcmsCache = fatcmsCache;
|
|
19
|
+
this.cacheSecond = cacheSecond;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 获取缓存文件路径
|
|
25
|
+
* @param key
|
|
26
|
+
* @param checkDirExist
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
private async getCacheFilePath(key: string, checkDirExist: boolean = true): Promise<string> {
|
|
30
|
+
const cacheDir0 = this.fatcmsCache.diskCacheDir;
|
|
31
|
+
const cacheDir = path.join(cacheDir0, this.cacheName);
|
|
32
|
+
if (checkDirExist) {
|
|
33
|
+
const isDirExist = await fs2.promises.access(cacheDir).then(() => true, () => false);
|
|
34
|
+
if (!isDirExist) {
|
|
35
|
+
await fs2.promises.mkdir(cacheDir, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return path.join(cacheDir, `${md5(key)}.json`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async getJsonObject(key: string): Promise<any> {
|
|
42
|
+
const cacheFilePath = await this.getCacheFilePath(key, false);
|
|
43
|
+
try {
|
|
44
|
+
const str = await fs.readFile(cacheFilePath, 'utf8');
|
|
45
|
+
const data = parseJsonObject(str);
|
|
46
|
+
if (data && data.key === key && data.expireAt > Date.now()) {
|
|
47
|
+
return data.data;
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
async setJsonObject(key: string, obj: any, cacheSecond0?: number): Promise<any> {
|
|
57
|
+
const cacheSecond = cacheSecond0 || this.cacheSecond || 60;
|
|
58
|
+
|
|
59
|
+
const str = JSON.stringify({
|
|
60
|
+
data: obj,
|
|
61
|
+
key,
|
|
62
|
+
expireAt: Date.now() + cacheSecond * 1000,
|
|
63
|
+
});
|
|
64
|
+
const cacheFilePath = await this.getCacheFilePath(key);
|
|
65
|
+
try {
|
|
66
|
+
await fs.writeFile(cacheFilePath, str, 'utf8');
|
|
67
|
+
return true;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async removeItem(key: string): Promise<any> {
|
|
74
|
+
const cacheFilePath = await this.getCacheFilePath(key);
|
|
75
|
+
try {
|
|
76
|
+
await fs.unlink(cacheFilePath);
|
|
77
|
+
return true;
|
|
78
|
+
} catch (error) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import { LRUCache } from 'lru-cache';
|
|
3
|
-
import { ICacheService } from '@/models/bizmodels';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const LRU_CACHE_MAP = new Map<string, LRUCache<string, any>>();
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class MemoryCache implements ICacheService {
|
|
11
|
-
protected ctx: Context;
|
|
12
|
-
protected cacheName: string;
|
|
13
|
-
protected cacheSecond: number;
|
|
14
|
-
|
|
15
|
-
constructor(ctx: Context, cacheName: string, cacheSecond:number) {
|
|
16
|
-
this.ctx = ctx;
|
|
17
|
-
this.cacheName = cacheName;
|
|
18
|
-
this.cacheSecond = cacheSecond;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
private getLruCache(): LRUCache<string, any> {
|
|
22
|
-
if (!LRU_CACHE_MAP.has(this.cacheName)) {
|
|
23
|
-
const lruCache = new LRUCache<string, any>({
|
|
24
|
-
max: 2000,
|
|
25
|
-
ttl: 1000 * 60 * 60 * 24,
|
|
26
|
-
ttlAutopurge: true,
|
|
27
|
-
});
|
|
28
|
-
LRU_CACHE_MAP.set(this.cacheName, lruCache);
|
|
29
|
-
}
|
|
30
|
-
return LRU_CACHE_MAP.get(this.cacheName);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
async getJsonObject(key: string): Promise<any> {
|
|
34
|
-
try {
|
|
35
|
-
const lruCache = this.getLruCache();
|
|
36
|
-
const saveObj = lruCache.get(key);
|
|
37
|
-
if (saveObj && saveObj.key === key && saveObj.expireAt > Date.now()) {
|
|
38
|
-
return saveObj.data;
|
|
39
|
-
}
|
|
40
|
-
return null;
|
|
41
|
-
} catch (error) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
async setJsonObject(key: string, obj: any, cacheSecond0: number): Promise<any> {
|
|
48
|
-
const cacheSecond = cacheSecond0 || this.cacheSecond || 60;
|
|
49
|
-
const lruCache = this.getLruCache();
|
|
50
|
-
const saveObj = {
|
|
51
|
-
data: obj,
|
|
52
|
-
key,
|
|
53
|
-
expireAt: Date.now() + cacheSecond * 1000,
|
|
54
|
-
};
|
|
55
|
-
lruCache.set(key, saveObj);
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
async removeItem(key: string): Promise<any> {
|
|
60
|
-
try {
|
|
61
|
-
const lruCache = this.getLruCache();
|
|
62
|
-
lruCache.delete(key);
|
|
63
|
-
return true;
|
|
64
|
-
} catch (error) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { LRUCache } from 'lru-cache';
|
|
3
|
+
import { ICacheService } from '@/models/bizmodels';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
const LRU_CACHE_MAP = new Map<string, LRUCache<string, any>>();
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export class MemoryCache implements ICacheService {
|
|
11
|
+
protected ctx: Context;
|
|
12
|
+
protected cacheName: string;
|
|
13
|
+
protected cacheSecond: number;
|
|
14
|
+
|
|
15
|
+
constructor(ctx: Context, cacheName: string, cacheSecond:number) {
|
|
16
|
+
this.ctx = ctx;
|
|
17
|
+
this.cacheName = cacheName;
|
|
18
|
+
this.cacheSecond = cacheSecond;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
private getLruCache(): LRUCache<string, any> {
|
|
22
|
+
if (!LRU_CACHE_MAP.has(this.cacheName)) {
|
|
23
|
+
const lruCache = new LRUCache<string, any>({
|
|
24
|
+
max: 2000,
|
|
25
|
+
ttl: 1000 * 60 * 60 * 24,
|
|
26
|
+
ttlAutopurge: true,
|
|
27
|
+
});
|
|
28
|
+
LRU_CACHE_MAP.set(this.cacheName, lruCache);
|
|
29
|
+
}
|
|
30
|
+
return LRU_CACHE_MAP.get(this.cacheName);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async getJsonObject(key: string): Promise<any> {
|
|
34
|
+
try {
|
|
35
|
+
const lruCache = this.getLruCache();
|
|
36
|
+
const saveObj = lruCache.get(key);
|
|
37
|
+
if (saveObj && saveObj.key === key && saveObj.expireAt > Date.now()) {
|
|
38
|
+
return saveObj.data;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
} catch (error) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
async setJsonObject(key: string, obj: any, cacheSecond0: number): Promise<any> {
|
|
48
|
+
const cacheSecond = cacheSecond0 || this.cacheSecond || 60;
|
|
49
|
+
const lruCache = this.getLruCache();
|
|
50
|
+
const saveObj = {
|
|
51
|
+
data: obj,
|
|
52
|
+
key,
|
|
53
|
+
expireAt: Date.now() + cacheSecond * 1000,
|
|
54
|
+
};
|
|
55
|
+
lruCache.set(key, saveObj);
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async removeItem(key: string): Promise<any> {
|
|
60
|
+
try {
|
|
61
|
+
const lruCache = this.getLruCache();
|
|
62
|
+
lruCache.delete(key);
|
|
63
|
+
return true;
|
|
64
|
+
} catch (error) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { ICacheService } from '@/models/bizmodels';
|
|
2
|
-
import { Context } from '@midwayjs/koa';
|
|
3
|
-
|
|
4
|
-
export class NoneCache implements ICacheService {
|
|
5
|
-
protected ctx: Context;
|
|
6
|
-
protected cacheName: string;
|
|
7
|
-
|
|
8
|
-
constructor(ctx: Context, cacheName: string) {
|
|
9
|
-
this.ctx = ctx;
|
|
10
|
-
this.cacheName = cacheName;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
async getJsonObject(key: string): Promise<any> {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async setJsonObject(key: string, obj: any, expireSecond?: number): Promise<any> {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async removeItem(key: string): Promise<any> {
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
1
|
+
import { ICacheService } from '@/models/bizmodels';
|
|
2
|
+
import { Context } from '@midwayjs/koa';
|
|
3
|
+
|
|
4
|
+
export class NoneCache implements ICacheService {
|
|
5
|
+
protected ctx: Context;
|
|
6
|
+
protected cacheName: string;
|
|
7
|
+
|
|
8
|
+
constructor(ctx: Context, cacheName: string) {
|
|
9
|
+
this.ctx = ctx;
|
|
10
|
+
this.cacheName = cacheName;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async getJsonObject(key: string): Promise<any> {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async setJsonObject(key: string, obj: any, expireSecond?: number): Promise<any> {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async removeItem(key: string): Promise<any> {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|