midway-fatcms 0.0.1-beta.1
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/README.md +1 -0
- package/dist/config/config.default.d.ts +3 -0
- package/dist/config/config.default.js +148 -0
- package/dist/config/seed/aeskey.txt +1 -0
- package/dist/config/utils.d.ts +1 -0
- package/dist/config/utils.js +23 -0
- package/dist/configuration.d.ts +6 -0
- package/dist/configuration.js +89 -0
- package/dist/controller/base/BaseApiController.d.ts +31 -0
- package/dist/controller/base/BaseApiController.js +138 -0
- package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -0
- package/dist/controller/gateway/AnyApiGatewayController.js +55 -0
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -0
- package/dist/controller/gateway/CrudMtdGatewayController.js +116 -0
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +38 -0
- package/dist/controller/gateway/CrudStdGatewayController.js +137 -0
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -0
- package/dist/controller/gateway/DocGatewayController.js +174 -0
- package/dist/controller/gateway/FileController.d.ts +25 -0
- package/dist/controller/gateway/FileController.js +129 -0
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -0
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -0
- package/dist/controller/gateway/PublicApiController.d.ts +27 -0
- package/dist/controller/gateway/PublicApiController.js +167 -0
- package/dist/controller/gateway/StaticController.d.ts +21 -0
- package/dist/controller/gateway/StaticController.js +265 -0
- package/dist/controller/helpers.controller.d.ts +39 -0
- package/dist/controller/helpers.controller.js +188 -0
- package/dist/controller/home.controller.d.ts +9 -0
- package/dist/controller/home.controller.js +71 -0
- package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -0
- package/dist/controller/manage/AnyApiMangeApi.js +98 -0
- package/dist/controller/manage/AppLogMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppLogMangeApi.js +88 -0
- package/dist/controller/manage/AppMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppMangeApi.js +88 -0
- package/dist/controller/manage/AppPageMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppPageMangeApi.js +87 -0
- package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -0
- package/dist/controller/manage/AppSchemaHistoryApi.js +83 -0
- package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -0
- package/dist/controller/manage/CrudMethodsMangeApi.js +84 -0
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +38 -0
- package/dist/controller/manage/CrudStandardDesignApi.js +339 -0
- package/dist/controller/manage/DataDictManageApi.d.ts +15 -0
- package/dist/controller/manage/DataDictManageApi.js +133 -0
- package/dist/controller/manage/DeployManageApi.d.ts +19 -0
- package/dist/controller/manage/DeployManageApi.js +176 -0
- package/dist/controller/manage/DocLibManageApi.d.ts +10 -0
- package/dist/controller/manage/DocLibManageApi.js +104 -0
- package/dist/controller/manage/DocManageApi.d.ts +11 -0
- package/dist/controller/manage/DocManageApi.js +130 -0
- package/dist/controller/manage/FileManageApi.d.ts +13 -0
- package/dist/controller/manage/FileManageApi.js +77 -0
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -0
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -0
- package/dist/controller/manage/MenuManageApi.d.ts +10 -0
- package/dist/controller/manage/MenuManageApi.js +93 -0
- package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -0
- package/dist/controller/manage/ProxyApiMangeApi.js +87 -0
- package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -0
- package/dist/controller/manage/SuperAdminManageApi.js +149 -0
- package/dist/controller/manage/SysConfigMangeApi.d.ts +11 -0
- package/dist/controller/manage/SysConfigMangeApi.js +124 -0
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -0
- package/dist/controller/manage/SystemInfoManageApi.js +66 -0
- package/dist/controller/manage/UserAccountManageApi.d.ts +14 -0
- package/dist/controller/manage/UserAccountManageApi.js +124 -0
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -0
- package/dist/controller/manage/WorkbenchMangeApi.js +103 -0
- package/dist/controller/medstatistic/MedAdminController.d.ts +35 -0
- package/dist/controller/medstatistic/MedAdminController.js +205 -0
- package/dist/controller/medstatistic/MedClientController.d.ts +28 -0
- package/dist/controller/medstatistic/MedClientController.js +188 -0
- package/dist/controller/medstatistic/MedMessageService.d.ts +19 -0
- package/dist/controller/medstatistic/MedMessageService.js +95 -0
- package/dist/controller/medstatistic/MedScoreService.d.ts +21 -0
- package/dist/controller/medstatistic/MedScoreService.js +107 -0
- package/dist/controller/medstatistic/constants.d.ts +32 -0
- package/dist/controller/medstatistic/constants.js +43 -0
- package/dist/controller/myinfo/AuthController.d.ts +37 -0
- package/dist/controller/myinfo/AuthController.js +189 -0
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -0
- package/dist/controller/myinfo/MyInfoController.js +51 -0
- package/dist/controller/render/AppRenderController.d.ts +11 -0
- package/dist/controller/render/AppRenderController.js +85 -0
- package/dist/controller/test.controller.d.ts +8 -0
- package/dist/controller/test.controller.js +51 -0
- package/dist/filter/default.filter.d.ts +7 -0
- package/dist/filter/default.filter.js +23 -0
- package/dist/filter/notfound.filter.d.ts +5 -0
- package/dist/filter/notfound.filter.js +20 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.js +88 -0
- package/dist/interface.d.ts +27 -0
- package/dist/interface.js +3 -0
- package/dist/libs/crud-pro/CrudPro.d.ts +36 -0
- package/dist/libs/crud-pro/CrudPro.js +131 -0
- package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -0
- package/dist/libs/crud-pro/defaultConfigs.js +13 -0
- package/dist/libs/crud-pro/exceptions.d.ts +104 -0
- package/dist/libs/crud-pro/exceptions.js +117 -0
- package/dist/libs/crud-pro/interfaces.d.ts +157 -0
- package/dist/libs/crud-pro/interfaces.js +12 -0
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +42 -0
- package/dist/libs/crud-pro/models/ExecuteContext.js +79 -0
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +31 -0
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +64 -0
- package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -0
- package/dist/libs/crud-pro/models/FuncContext.js +6 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -0
- package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -0
- package/dist/libs/crud-pro/models/RequestModel.js +113 -0
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -0
- package/dist/libs/crud-pro/models/ServiceHub.js +2 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +22 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -0
- package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -0
- package/dist/libs/crud-pro/models/SqlSegArg.js +12 -0
- package/dist/libs/crud-pro/models/Transaction.d.ts +29 -0
- package/dist/libs/crud-pro/models/Transaction.js +67 -0
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +28 -0
- package/dist/libs/crud-pro/models/TransactionMySQL.js +76 -0
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +28 -0
- package/dist/libs/crud-pro/models/TransactionPostgres.js +85 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +34 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +92 -0
- package/dist/libs/crud-pro/models/keys.d.ts +106 -0
- package/dist/libs/crud-pro/models/keys.js +149 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +10 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +61 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +112 -0
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -0
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +227 -0
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -0
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -0
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -0
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +342 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +174 -0
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -0
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +333 -0
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +28 -0
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +78 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +8 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +53 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -0
- package/dist/libs/crud-pro/sql.txt +120 -0
- package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -0
- package/dist/libs/crud-pro/utils/CompareUtils.js +25 -0
- package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -0
- package/dist/libs/crud-pro/utils/DatabaseName.js +29 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -0
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -0
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -0
- package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -0
- package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -0
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -0
- package/dist/libs/crud-pro/utils/MixinUtils.js +255 -0
- package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -0
- package/dist/libs/crud-pro/utils/ModelUtils.js +49 -0
- package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -0
- package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -0
- package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -0
- package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -0
- package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -0
- package/dist/libs/crud-pro/utils/TypeUtils.js +166 -0
- package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -0
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -0
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -0
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +21 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +11 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +11 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -0
- package/dist/libs/utils/common-dto.d.ts +18 -0
- package/dist/libs/utils/common-dto.js +40 -0
- package/dist/libs/utils/crypto-utils.d.ts +3 -0
- package/dist/libs/utils/crypto-utils.js +46 -0
- package/dist/libs/utils/fatcms-request.d.ts +30 -0
- package/dist/libs/utils/fatcms-request.js +104 -0
- package/dist/libs/utils/functions.d.ts +4 -0
- package/dist/libs/utils/functions.js +63 -0
- package/dist/libs/utils/ordernum-utils.d.ts +2 -0
- package/dist/libs/utils/ordernum-utils.js +13 -0
- package/dist/libs/utils/parseConfig.d.ts +7 -0
- package/dist/libs/utils/parseConfig.js +44 -0
- package/dist/libs/utils/parseCreateSql.d.ts +5 -0
- package/dist/libs/utils/parseCreateSql.js +86 -0
- package/dist/libs/utils/render-utils.d.ts +28 -0
- package/dist/libs/utils/render-utils.js +135 -0
- package/dist/middleware/forbidden.middleware.d.ts +10 -0
- package/dist/middleware/forbidden.middleware.js +70 -0
- package/dist/middleware/global.middleware.d.ts +10 -0
- package/dist/middleware/global.middleware.js +246 -0
- package/dist/middleware/permission.middleware.d.ts +18 -0
- package/dist/middleware/permission.middleware.js +74 -0
- package/dist/middleware/tx.middleware.d.ts +9 -0
- package/dist/middleware/tx.middleware.js +40 -0
- package/dist/models/SystemEntities.d.ts +98 -0
- package/dist/models/SystemEntities.js +2 -0
- package/dist/models/SystemPerm.d.ts +95 -0
- package/dist/models/SystemPerm.js +100 -0
- package/dist/models/SystemTables.d.ts +27 -0
- package/dist/models/SystemTables.js +30 -0
- package/dist/models/bizmodels.d.ts +69 -0
- package/dist/models/bizmodels.js +34 -0
- package/dist/models/contextLogger.d.ts +25 -0
- package/dist/models/contextLogger.js +112 -0
- package/dist/models/devops.d.ts +12 -0
- package/dist/models/devops.js +19 -0
- package/dist/models/userSession.d.ts +61 -0
- package/dist/models/userSession.js +165 -0
- package/dist/schedule/index.d.ts +3 -0
- package/dist/schedule/index.js +69 -0
- package/dist/service/AuthService.d.ts +70 -0
- package/dist/service/AuthService.js +248 -0
- package/dist/service/EnumInfoService.d.ts +30 -0
- package/dist/service/EnumInfoService.js +123 -0
- package/dist/service/FileCenterService.d.ts +43 -0
- package/dist/service/FileCenterService.js +347 -0
- package/dist/service/SysConfigService.d.ts +7 -0
- package/dist/service/SysConfigService.js +45 -0
- package/dist/service/UserAccountService.d.ts +23 -0
- package/dist/service/UserAccountService.js +103 -0
- package/dist/service/UserSessionService.d.ts +16 -0
- package/dist/service/UserSessionService.js +85 -0
- package/dist/service/VisitStatService.d.ts +14 -0
- package/dist/service/VisitStatService.js +165 -0
- package/dist/service/WorkbenchService.d.ts +20 -0
- package/dist/service/WorkbenchService.js +153 -0
- package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -0
- package/dist/service/anyapi/AnyApiSandboxService.js +122 -0
- package/dist/service/anyapi/AnyApiService.d.ts +27 -0
- package/dist/service/anyapi/AnyApiService.js +179 -0
- package/dist/service/base/ApiBaseService.d.ts +15 -0
- package/dist/service/base/ApiBaseService.js +50 -0
- package/dist/service/base/ApiRateLimiter.d.ts +10 -0
- package/dist/service/base/ApiRateLimiter.js +51 -0
- package/dist/service/base/BaseService.d.ts +29 -0
- package/dist/service/base/BaseService.js +79 -0
- package/dist/service/base/RedisCacheService.d.ts +13 -0
- package/dist/service/base/RedisCacheService.js +50 -0
- package/dist/service/crudstd/CrudStdActionService.d.ts +17 -0
- package/dist/service/crudstd/CrudStdActionService.js +32 -0
- package/dist/service/crudstd/CrudStdConstant.d.ts +58 -0
- package/dist/service/crudstd/CrudStdConstant.js +64 -0
- package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -0
- package/dist/service/crudstd/CrudStdRelationService.js +85 -0
- package/dist/service/crudstd/CrudStdService.d.ts +50 -0
- package/dist/service/crudstd/CrudStdService.js +182 -0
- package/dist/service/curd/CurdMixByAccountService.d.ts +9 -0
- package/dist/service/curd/CurdMixByAccountService.js +87 -0
- package/dist/service/curd/CurdMixByDictService.d.ts +13 -0
- package/dist/service/curd/CurdMixByDictService.js +111 -0
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +22 -0
- package/dist/service/curd/CurdMixByLinkToCustomService.js +154 -0
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +9 -0
- package/dist/service/curd/CurdMixBySysConfigService.js +78 -0
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +10 -0
- package/dist/service/curd/CurdMixByWorkbenchService.js +76 -0
- package/dist/service/curd/CurdMixService.d.ts +17 -0
- package/dist/service/curd/CurdMixService.js +76 -0
- package/dist/service/curd/CurdMixUtils.d.ts +28 -0
- package/dist/service/curd/CurdMixUtils.js +201 -0
- package/dist/service/curd/CurdProService.d.ts +39 -0
- package/dist/service/curd/CurdProService.js +322 -0
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -0
- package/dist/service/proxyapi/ProxyApiLoadService.js +164 -0
- package/dist/service/proxyapi/ProxyApiService.d.ts +60 -0
- package/dist/service/proxyapi/ProxyApiService.js +260 -0
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -0
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -0
- package/dist/service/proxyapi/RouteHandler.d.ts +5 -0
- package/dist/service/proxyapi/RouteHandler.js +9 -0
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -0
- package/dist/service/proxyapi/RouteTrie.js +63 -0
- package/dist/service/proxyapi/WeightedRandom.d.ts +9 -0
- package/dist/service/proxyapi/WeightedRandom.js +31 -0
- package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -0
- package/dist/service/proxyapi/WeightedRoundRobin.js +32 -0
- package/index.d.ts +10 -0
- package/package.json +71 -0
- package/src/config/config.default.ts +172 -0
- package/src/config/seed/aeskey.txt +1 -0
- package/src/config/utils.ts +23 -0
- package/src/configuration.ts +83 -0
- package/src/controller/base/BaseApiController.ts +145 -0
- package/src/controller/gateway/AnyApiGatewayController.ts +33 -0
- package/src/controller/gateway/CrudMtdGatewayController.ts +107 -0
- package/src/controller/gateway/CrudStdGatewayController.ts +101 -0
- package/src/controller/gateway/DocGatewayController.ts +165 -0
- package/src/controller/gateway/FileController.ts +110 -0
- package/src/controller/gateway/ProxyApiGatewayController.ts +47 -0
- package/src/controller/gateway/PublicApiController.ts +145 -0
- package/src/controller/gateway/StaticController.ts +303 -0
- package/src/controller/helpers.controller.ts +161 -0
- package/src/controller/home.controller.ts +71 -0
- package/src/controller/manage/AnyApiMangeApi.ts +66 -0
- package/src/controller/manage/AppLogMangeApi.ts +53 -0
- package/src/controller/manage/AppMangeApi.ts +53 -0
- package/src/controller/manage/AppPageMangeApi.ts +52 -0
- package/src/controller/manage/AppSchemaHistoryApi.ts +49 -0
- package/src/controller/manage/CrudMethodsMangeApi.ts +49 -0
- package/src/controller/manage/CrudStandardDesignApi.ts +353 -0
- package/src/controller/manage/DataDictManageApi.ts +78 -0
- package/src/controller/manage/DeployManageApi.ts +179 -0
- package/src/controller/manage/DocLibManageApi.ts +69 -0
- package/src/controller/manage/DocManageApi.ts +99 -0
- package/src/controller/manage/FileManageApi.ts +45 -0
- package/src/controller/manage/LowCodeTplManageApi.ts +52 -0
- package/src/controller/manage/MenuManageApi.ts +63 -0
- package/src/controller/manage/ProxyApiMangeApi.ts +52 -0
- package/src/controller/manage/SuperAdminManageApi.ts +138 -0
- package/src/controller/manage/SysConfigMangeApi.ts +95 -0
- package/src/controller/manage/SystemInfoManageApi.ts +48 -0
- package/src/controller/manage/UserAccountManageApi.ts +88 -0
- package/src/controller/manage/WorkbenchMangeApi.ts +72 -0
- package/src/controller/medstatistic/MedAdminController.ts +221 -0
- package/src/controller/medstatistic/MedClientController.ts +188 -0
- package/src/controller/medstatistic/MedMessageService.ts +89 -0
- package/src/controller/medstatistic/MedScoreService.ts +108 -0
- package/src/controller/medstatistic/constants.ts +63 -0
- package/src/controller/myinfo/AuthController.ts +174 -0
- package/src/controller/myinfo/MyInfoController.ts +32 -0
- package/src/controller/render/AppRenderController.ts +76 -0
- package/src/controller/test.controller.ts +37 -0
- package/src/filter/default.filter.ts +13 -0
- package/src/filter/notfound.filter.ts +10 -0
- package/src/index.ts +70 -0
- package/src/interface.ts +31 -0
- package/src/libs/crud-pro/CrudPro.ts +158 -0
- package/src/libs/crud-pro/defaultConfigs.ts +13 -0
- package/src/libs/crud-pro/exceptions.ts +124 -0
- package/src/libs/crud-pro/interfaces.ts +183 -0
- package/src/libs/crud-pro/models/ExecuteContext.ts +111 -0
- package/src/libs/crud-pro/models/ExecuteContextFunc.ts +86 -0
- package/src/libs/crud-pro/models/FuncContext.ts +21 -0
- package/src/libs/crud-pro/models/RequestCfgModel.ts +141 -0
- package/src/libs/crud-pro/models/RequestModel.ts +141 -0
- package/src/libs/crud-pro/models/ServiceHub.ts +32 -0
- package/src/libs/crud-pro/models/SqlCfgModel.ts +52 -0
- package/src/libs/crud-pro/models/SqlSegArg.ts +13 -0
- package/src/libs/crud-pro/models/Transaction.ts +74 -0
- package/src/libs/crud-pro/models/TransactionMySQL.ts +79 -0
- package/src/libs/crud-pro/models/TransactionPostgres.ts +91 -0
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +107 -0
- package/src/libs/crud-pro/models/keys.ts +159 -0
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +75 -0
- package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +128 -0
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +279 -0
- package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +60 -0
- package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +180 -0
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +373 -0
- package/src/libs/crud-pro/services/CrudProGenSqlService.ts +202 -0
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +397 -0
- package/src/libs/crud-pro/services/CrudProServiceBase.ts +98 -0
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +59 -0
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +92 -0
- package/src/libs/crud-pro/sql.txt +120 -0
- package/src/libs/crud-pro/utils/CompareUtils.ts +23 -0
- package/src/libs/crud-pro/utils/DatabaseName.ts +40 -0
- package/src/libs/crud-pro/utils/DateTimeUtils.ts +20 -0
- package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +64 -0
- package/src/libs/crud-pro/utils/MessageParseUtils.ts +33 -0
- package/src/libs/crud-pro/utils/MixinUtils.ts +285 -0
- package/src/libs/crud-pro/utils/ModelUtils.ts +55 -0
- package/src/libs/crud-pro/utils/MultiKeyMap.ts +72 -0
- package/src/libs/crud-pro/utils/SqlFuncUtils.ts +29 -0
- package/src/libs/crud-pro/utils/TypeUtils.ts +188 -0
- package/src/libs/crud-pro/utils/ValidateUtils.ts +167 -0
- package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +20 -0
- package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +22 -0
- package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +22 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +26 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +11 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +11 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +129 -0
- package/src/libs/utils/common-dto.ts +52 -0
- package/src/libs/utils/crypto-utils.ts +52 -0
- package/src/libs/utils/fatcms-request.ts +115 -0
- package/src/libs/utils/functions.ts +67 -0
- package/src/libs/utils/ordernum-utils.ts +18 -0
- package/src/libs/utils/parseConfig.ts +62 -0
- package/src/libs/utils/parseCreateSql.ts +91 -0
- package/src/libs/utils/render-utils.ts +184 -0
- package/src/middleware/forbidden.middleware.ts +71 -0
- package/src/middleware/global.middleware.ts +278 -0
- package/src/middleware/permission.middleware.ts +81 -0
- package/src/middleware/tx.middleware.ts +30 -0
- package/src/models/SystemEntities.ts +115 -0
- package/src/models/SystemPerm.ts +105 -0
- package/src/models/SystemTables.ts +30 -0
- package/src/models/bizmodels.ts +89 -0
- package/src/models/contextLogger.ts +132 -0
- package/src/models/devops.ts +17 -0
- package/src/models/userSession.ts +216 -0
- package/src/schedule/index.ts +73 -0
- package/src/service/AuthService.ts +270 -0
- package/src/service/EnumInfoService.ts +129 -0
- package/src/service/FileCenterService.ts +394 -0
- package/src/service/SysConfigService.ts +34 -0
- package/src/service/UserAccountService.ts +100 -0
- package/src/service/UserSessionService.ts +81 -0
- package/src/service/VisitStatService.ts +179 -0
- package/src/service/WorkbenchService.ts +160 -0
- package/src/service/anyapi/AnyApiSandboxService.ts +121 -0
- package/src/service/anyapi/AnyApiService.ts +184 -0
- package/src/service/base/ApiBaseService.ts +42 -0
- package/src/service/base/ApiRateLimiter.ts +59 -0
- package/src/service/base/BaseService.ts +74 -0
- package/src/service/base/RedisCacheService.ts +38 -0
- package/src/service/crudstd/CrudStdActionService.ts +27 -0
- package/src/service/crudstd/CrudStdConstant.ts +62 -0
- package/src/service/crudstd/CrudStdRelationService.ts +78 -0
- package/src/service/crudstd/CrudStdService.ts +188 -0
- package/src/service/curd/CurdMixByAccountService.ts +83 -0
- package/src/service/curd/CurdMixByDictService.ts +113 -0
- package/src/service/curd/CurdMixByLinkToCustomService.ts +167 -0
- package/src/service/curd/CurdMixBySysConfigService.ts +78 -0
- package/src/service/curd/CurdMixByWorkbenchService.ts +68 -0
- package/src/service/curd/CurdMixService.ts +65 -0
- package/src/service/curd/CurdMixUtils.ts +248 -0
- package/src/service/curd/CurdProService.ts +379 -0
- package/src/service/proxyapi/ProxyApiLoadService.ts +165 -0
- package/src/service/proxyapi/ProxyApiService.ts +262 -0
- package/src/service/proxyapi/ProxyApiUtils.ts +32 -0
- package/src/service/proxyapi/RouteHandler.ts +8 -0
- package/src/service/proxyapi/RouteTrie.ts +74 -0
- package/src/service/proxyapi/WeightedRandom.ts +37 -0
- package/src/service/proxyapi/WeightedRoundRobin.ts +44 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
//
|
|
2
|
+
// // 定义 PostgreSQL 数据类型 OID 映射
|
|
3
|
+
// const PG_TYPE_OIDS = {
|
|
4
|
+
// INT2: 21, // smallint
|
|
5
|
+
// INT4: 23, // integer
|
|
6
|
+
// INT8: 20, // bigint
|
|
7
|
+
// FLOAT4: 700, // real
|
|
8
|
+
// FLOAT8: 701, // double precision
|
|
9
|
+
// NUMERIC: 1700, // numeric
|
|
10
|
+
// MONEY: 790, // money
|
|
11
|
+
// BOOL: 16, // boolean
|
|
12
|
+
// DATE: 1082, // date
|
|
13
|
+
// TIMESTAMP: 1114, // timestamp without time zone
|
|
14
|
+
// TIMESTAMPTZ: 1184, // timestamp with time zone
|
|
15
|
+
// JSON: 114, // json
|
|
16
|
+
// JSONB: 3802, // jsonb
|
|
17
|
+
// };
|
|
18
|
+
//
|
|
19
|
+
//
|
|
20
|
+
//
|
|
21
|
+
// /**
|
|
22
|
+
// * 将 PostgreSQL 数据类型转换为 JavaScript 类型
|
|
23
|
+
// * @param {any} value - 原始值
|
|
24
|
+
// * @param {number} oid - 数据类型 OID
|
|
25
|
+
// * @returns {any} 转换后的值
|
|
26
|
+
// */
|
|
27
|
+
// function convertPgType(value: any, oid: any) {
|
|
28
|
+
// // 如果值为 null,直接返回
|
|
29
|
+
// if (value === null) {
|
|
30
|
+
// return null;
|
|
31
|
+
// }
|
|
32
|
+
//
|
|
33
|
+
// const typeOfValue = typeof value;
|
|
34
|
+
// if (typeOfValue === 'undefined') {
|
|
35
|
+
// return null;
|
|
36
|
+
// }
|
|
37
|
+
// if (typeOfValue === 'number' || typeOfValue === "boolean" || typeOfValue === "object") {
|
|
38
|
+
// return value;
|
|
39
|
+
// }
|
|
40
|
+
// if (typeOfValue === 'bigint') {
|
|
41
|
+
// return value.toString()
|
|
42
|
+
// }
|
|
43
|
+
//
|
|
44
|
+
// switch (oid) {
|
|
45
|
+
// // 整数类型(全部转为 Number)
|
|
46
|
+
// case PG_TYPE_OIDS.INT2: // smallint
|
|
47
|
+
// case PG_TYPE_OIDS.INT4: // integer
|
|
48
|
+
// return Number(value);
|
|
49
|
+
// case PG_TYPE_OIDS.INT8: // bigint
|
|
50
|
+
// return value;
|
|
51
|
+
//
|
|
52
|
+
// // 浮点类型
|
|
53
|
+
// case PG_TYPE_OIDS.FLOAT4: // real
|
|
54
|
+
// case PG_TYPE_OIDS.FLOAT8: // double precision
|
|
55
|
+
// case PG_TYPE_OIDS.NUMERIC: // numeric
|
|
56
|
+
// case PG_TYPE_OIDS.MONEY: // money
|
|
57
|
+
// return Number(value);
|
|
58
|
+
//
|
|
59
|
+
// // 布尔类型
|
|
60
|
+
// case PG_TYPE_OIDS.BOOL:
|
|
61
|
+
// if (typeof value === 'boolean') {
|
|
62
|
+
// return value;
|
|
63
|
+
// }
|
|
64
|
+
// return value === 't' || value === 'true' || value === true;
|
|
65
|
+
//
|
|
66
|
+
// // 日期/时间类型
|
|
67
|
+
// case PG_TYPE_OIDS.DATE:
|
|
68
|
+
// return new Date(value).toISOString().split('T')[0];
|
|
69
|
+
//
|
|
70
|
+
// case PG_TYPE_OIDS.TIMESTAMP:
|
|
71
|
+
// case PG_TYPE_OIDS.TIMESTAMPTZ:
|
|
72
|
+
// return new Date(value).toISOString();
|
|
73
|
+
//
|
|
74
|
+
// // JSON 类型
|
|
75
|
+
// case PG_TYPE_OIDS.JSON:
|
|
76
|
+
// case PG_TYPE_OIDS.JSONB:
|
|
77
|
+
// // try {
|
|
78
|
+
// // return JSON.parse(value);
|
|
79
|
+
// // } catch (e) {
|
|
80
|
+
// // return value; // 解析失败时返回原始值
|
|
81
|
+
// // }
|
|
82
|
+
//
|
|
83
|
+
// // 默认不转换
|
|
84
|
+
// default:
|
|
85
|
+
// return value;
|
|
86
|
+
// }
|
|
87
|
+
// }
|
|
88
|
+
//
|
|
89
|
+
//
|
|
90
|
+
// /**
|
|
91
|
+
// * 获取并转换PG查询结果的数据类型
|
|
92
|
+
// * @param result
|
|
93
|
+
// */
|
|
94
|
+
// function pickAndConvertPgRows(result: any): any[] {
|
|
95
|
+
// if (!result || !Array.isArray(result.rows)) {
|
|
96
|
+
// return [];
|
|
97
|
+
// }
|
|
98
|
+
//
|
|
99
|
+
// console.log('',convertPgType)
|
|
100
|
+
// try {
|
|
101
|
+
// // 获取字段类型 OID
|
|
102
|
+
// const fieldTypes = result.fields.map((field: any) => field.dataTypeID);
|
|
103
|
+
//
|
|
104
|
+
// // 转换每一行的数据类型
|
|
105
|
+
// return result.rows.map((row:any) => {
|
|
106
|
+
// const convertedRow = {};
|
|
107
|
+
// Object.keys(row).forEach((key, index) => {
|
|
108
|
+
// const value = row[key];
|
|
109
|
+
// const oid = fieldTypes[index];
|
|
110
|
+
// convertedRow[key] = convertPgType(value, oid);
|
|
111
|
+
// });
|
|
112
|
+
// return convertedRow;
|
|
113
|
+
// });
|
|
114
|
+
// } catch (e) {
|
|
115
|
+
// console.error('pickAndConvertPgRows', e);
|
|
116
|
+
// }
|
|
117
|
+
// return [];
|
|
118
|
+
// }
|
|
119
|
+
|
|
120
|
+
function pickAndConvertPgRows(result: any): any[] {
|
|
121
|
+
if (!result || !Array.isArray(result.rows)) {
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
return result.rows;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export {
|
|
128
|
+
pickAndConvertPgRows
|
|
129
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export interface ICommonResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
data?: any;
|
|
4
|
+
message?: string;
|
|
5
|
+
code?: string;
|
|
6
|
+
debugInfo?: any;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export class CommonResult implements ICommonResult {
|
|
10
|
+
code: string;
|
|
11
|
+
data: any;
|
|
12
|
+
message: string;
|
|
13
|
+
success: boolean;
|
|
14
|
+
debugInfo: any;
|
|
15
|
+
|
|
16
|
+
public static successNotNull(data?: any): CommonResult {
|
|
17
|
+
const res = new CommonResult();
|
|
18
|
+
if (data) {
|
|
19
|
+
res.success = true;
|
|
20
|
+
res.data = data;
|
|
21
|
+
} else {
|
|
22
|
+
res.success = false;
|
|
23
|
+
res.message = '对象找不到';
|
|
24
|
+
}
|
|
25
|
+
return res;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public static successRes(data?: any): CommonResult {
|
|
29
|
+
const res = new CommonResult();
|
|
30
|
+
res.success = true;
|
|
31
|
+
res.data = data;
|
|
32
|
+
return res;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public static successMsg(message: string, data?: any): CommonResult {
|
|
36
|
+
const res = new CommonResult();
|
|
37
|
+
res.success = true;
|
|
38
|
+
res.message = message;
|
|
39
|
+
res.data = data;
|
|
40
|
+
return res;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public static errorRes(message: string, errorCode = '', debugInfo: any = null): CommonResult {
|
|
44
|
+
const res = new CommonResult();
|
|
45
|
+
res.success = false;
|
|
46
|
+
res.data = null;
|
|
47
|
+
res.message = message;
|
|
48
|
+
res.code = errorCode;
|
|
49
|
+
res.debugInfo = debugInfo;
|
|
50
|
+
return res;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as crypto from 'crypto';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as md5 from 'md5';
|
|
5
|
+
import { Aes128CBC } from 'aes-128-cbc';
|
|
6
|
+
|
|
7
|
+
function hashUtf8Hex(data: string): string {
|
|
8
|
+
const hash = crypto.createHash('sha256');
|
|
9
|
+
const chunkSize = 1024; // 每次处理 1MB 数据
|
|
10
|
+
for (let i = 0; i < data.length; i += chunkSize) {
|
|
11
|
+
const chunk = data.slice(i, i + chunkSize);
|
|
12
|
+
const inputBuffer = Buffer.from(chunk, 'utf8');
|
|
13
|
+
hash.update(inputBuffer);
|
|
14
|
+
}
|
|
15
|
+
return hash.digest('hex');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function readSeed1() {
|
|
19
|
+
// 这个文件肯定存在
|
|
20
|
+
const t = path.join(__dirname, '../../config/seed/aeskey.txt');
|
|
21
|
+
return fs.readFileSync(t, 'utf-8');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function readSeed2(): string {
|
|
25
|
+
const filePath = path.join(__dirname, '../../../config/seed/aeskey.txt');
|
|
26
|
+
if (!fs.existsSync(filePath)) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return fs.readFileSync(filePath, 'utf-8');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
function createAes128BySeedContent(seedContent:string){
|
|
34
|
+
const hash1 = hashUtf8Hex(seedContent.trim());
|
|
35
|
+
const key = md5(hash1);
|
|
36
|
+
const iv = md5(key + hash1);
|
|
37
|
+
return new Aes128CBC(key, iv);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function createAes128BySeedFile() {
|
|
41
|
+
const seed2 = readSeed2();
|
|
42
|
+
if (seed2) {
|
|
43
|
+
return createAes128BySeedContent(seed2);
|
|
44
|
+
}
|
|
45
|
+
const seed1 = readSeed1();
|
|
46
|
+
return createAes128BySeedContent(seed1);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
const privateAES = createAes128BySeedFile();
|
|
51
|
+
|
|
52
|
+
export { privateAES };
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import * as _ from 'lodash';
|
|
3
|
+
import {privateAES} from "./crypto-utils";
|
|
4
|
+
import {CommonException} from "../crud-pro/exceptions";
|
|
5
|
+
|
|
6
|
+
function isEnableByHeaderKey(ctx: Context, configName: string){
|
|
7
|
+
const fatcmsDebug = ctx.app.getConfig(configName);
|
|
8
|
+
const headerKey = _.get(fatcmsDebug, 'headerKey');
|
|
9
|
+
const headerSecret = _.get(fatcmsDebug, 'headerSecret');
|
|
10
|
+
if (!headerSecret || !headerKey) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
14
|
+
return headers[headerKey] === headerSecret;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* 是否开启调试能力
|
|
20
|
+
* @param ctx
|
|
21
|
+
*/
|
|
22
|
+
export function isEnableDebug(ctx: Context): boolean {
|
|
23
|
+
return isEnableByHeaderKey(ctx, 'fatcmsDebug');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* 是否开启SA账号。只有账号密码没有用,必须通过ModHeader插件设置如下字段
|
|
29
|
+
* @param ctx
|
|
30
|
+
*/
|
|
31
|
+
export function isEnableSuperAdmin(ctx: Context): boolean {
|
|
32
|
+
return isEnableByHeaderKey(ctx, 'fatcmsSAEnable');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
export function isLocalEnv(ctx: Context): boolean {
|
|
37
|
+
// 系统内部调用。如定时任务,没有request对象。
|
|
38
|
+
if (!ctx.request) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
const host = ctx.request.host;
|
|
42
|
+
return host.startsWith('127.0.0.1') || host.startsWith('localhost:');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 获取调试时专用的站点code
|
|
49
|
+
* @param ctx
|
|
50
|
+
*/
|
|
51
|
+
export function getDebugWorkbenchCode(ctx: Context) {
|
|
52
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
53
|
+
return headers['fatcmsworkbench'];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 代理转发服务专用
|
|
58
|
+
* @param ctx
|
|
59
|
+
*/
|
|
60
|
+
export function getDebugProxyTarget(ctx: Context): string {
|
|
61
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
62
|
+
return headers['fatcmsdebugproxytarget'];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
export function getCsrfToken(ctx: Context): string{
|
|
67
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
68
|
+
return headers['fatcmscsrftoken'];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 扩展的源码应用:本地开发调试时加载本地的js脚本
|
|
74
|
+
* @param ctx
|
|
75
|
+
*/
|
|
76
|
+
export function getExtLocalLoaderPort(ctx: Context) : string {
|
|
77
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
78
|
+
return headers['fatcmsextlocalloaderport'];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
export async function isCsrfTokenValid(ctx: Context): Promise<boolean> {
|
|
84
|
+
|
|
85
|
+
// 本地开发,不需要校验
|
|
86
|
+
if (isLocalEnv(ctx) || isEnableDebug(ctx)) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
const fatcmscsrftoken = getCsrfToken(ctx);
|
|
92
|
+
if (!fatcmscsrftoken) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const depryptToken = await privateAES.time_decrypt_base64_utf8(fatcmscsrftoken);
|
|
97
|
+
if (depryptToken) {
|
|
98
|
+
const num = Number(depryptToken);
|
|
99
|
+
if (num && ((num + 6 * 3600 * 1000) > Date.now())) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
} catch (e) {
|
|
104
|
+
console.info('isCsrfTokenValid验证失败')
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
export async function assertCsrfToken(ctx: Context) {
|
|
111
|
+
const isOK = await isCsrfTokenValid(ctx);
|
|
112
|
+
if (!isOK) {
|
|
113
|
+
throw new CommonException("ASSERT_CSRF_TOKEN_ERROR", "CSRF_TOKEN 验证失败")
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as md5 from 'md5';
|
|
2
|
+
|
|
3
|
+
let createUniqueIdIndex = 0;
|
|
4
|
+
function createUniqueId(): string {
|
|
5
|
+
createUniqueIdIndex++;
|
|
6
|
+
const p1 = md5(Date.now() + '' + Math.random() + '_' + createUniqueIdIndex);
|
|
7
|
+
const p2 = Date.now().toString(32);
|
|
8
|
+
return p1 + p2;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function parseJsonObject(str: any): any {
|
|
12
|
+
if (typeof str === 'object') {
|
|
13
|
+
return str;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (typeof str === 'string') {
|
|
17
|
+
str = str.trim();
|
|
18
|
+
if (str.startsWith('{') || str.startsWith('[')) {
|
|
19
|
+
try {
|
|
20
|
+
return JSON.parse(str);
|
|
21
|
+
} catch (e) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function trimStringArray(obj: any[]): string[] {
|
|
30
|
+
return obj
|
|
31
|
+
.map(s => {
|
|
32
|
+
if (typeof s === 'string') {
|
|
33
|
+
return s.trim();
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
})
|
|
37
|
+
.filter(Boolean);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function parseStringTrimArray(obj: any, separator = ','): string[] {
|
|
41
|
+
if (Array.isArray(obj)) {
|
|
42
|
+
return trimStringArray(obj);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (typeof obj === 'string') {
|
|
46
|
+
const str = obj.trim();
|
|
47
|
+
if (str.length > 0) {
|
|
48
|
+
// 可能是一个JSON数组
|
|
49
|
+
if (str.startsWith('[') && str.endsWith(']')) {
|
|
50
|
+
const arr = parseJsonObject(str);
|
|
51
|
+
return trimStringArray(arr);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// 使用分隔符分隔
|
|
55
|
+
if (str.includes(separator)) {
|
|
56
|
+
const arr = str.split(separator);
|
|
57
|
+
return trimStringArray(arr);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return [str];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { createUniqueId, parseJsonObject, parseStringTrimArray };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as moment from 'moment';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
function generateOrderNumber(prefix:string = 'NO'): string {
|
|
5
|
+
// 获取当前时间并格式化为YYYYMMDDHHmmss
|
|
6
|
+
const timestamp = moment().format('YYYYMMDDHHmmss');
|
|
7
|
+
|
|
8
|
+
// 生成6位随机数字
|
|
9
|
+
const randomDigits = Math.floor(100000 + Math.random() * 900000);
|
|
10
|
+
|
|
11
|
+
// 组合订单号
|
|
12
|
+
return prefix + timestamp + randomDigits;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
generateOrderNumber
|
|
18
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as _ from 'lodash';
|
|
2
|
+
import {parseJsonObject} from "./functions";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
interface IEnumInfo {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string | number;
|
|
9
|
+
children?: IEnumInfo[];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function parseTreeTableToIEnumInfo(dataSource:any[]): IEnumInfo[]{
|
|
13
|
+
if (!dataSource || !Array.isArray(dataSource)) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return dataSource.map((item: any) => {
|
|
17
|
+
const {key, nodeName, value, label } = item;
|
|
18
|
+
const children = parseTreeTableToIEnumInfo(item.children);
|
|
19
|
+
const enumInfo: IEnumInfo = {
|
|
20
|
+
label: label || nodeName,
|
|
21
|
+
value: value || key,
|
|
22
|
+
};
|
|
23
|
+
if (children) {
|
|
24
|
+
enumInfo.children = children;
|
|
25
|
+
}
|
|
26
|
+
return enumInfo;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
function parseConfigContentToEnumInfo(configEntity: any): IEnumInfo[] {
|
|
32
|
+
|
|
33
|
+
const { config_content, config_type } = configEntity;
|
|
34
|
+
|
|
35
|
+
const configObj = parseJsonObject(config_content);
|
|
36
|
+
if (!configObj) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (config_type === 'treeTable') {
|
|
41
|
+
const dataSource = _.get(configObj, 'data.dataSource');
|
|
42
|
+
if (Array.isArray(dataSource)) {
|
|
43
|
+
return parseTreeTableToIEnumInfo(dataSource);
|
|
44
|
+
}
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (configObj.data && Array.isArray(configObj.data)) {
|
|
49
|
+
return configObj.data;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (Array.isArray(configObj)) {
|
|
53
|
+
return configObj;
|
|
54
|
+
}
|
|
55
|
+
return []
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
parseConfigContentToEnumInfo,
|
|
61
|
+
IEnumInfo
|
|
62
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
function isChineseChar(char: string): boolean {
|
|
2
|
+
const reg = /[\u4e00-\u9fff]/;
|
|
3
|
+
return reg.test(char);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
function isLetterOrNumber(char) {
|
|
7
|
+
const reg = /^[a-zA-Z0-9]$/;
|
|
8
|
+
return reg.test(char);
|
|
9
|
+
}
|
|
10
|
+
function isTitleValidChar(c: string) {
|
|
11
|
+
return isChineseChar(c) || isLetterOrNumber(c) || c === ' ';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 移除引号
|
|
16
|
+
* @param s
|
|
17
|
+
*/
|
|
18
|
+
function parseTableFieldTitleFromComment(s: string) {
|
|
19
|
+
if (!s) {
|
|
20
|
+
return '';
|
|
21
|
+
}
|
|
22
|
+
s = s.trim();
|
|
23
|
+
s = s.replace(/'/gm, '');
|
|
24
|
+
const arr = [];
|
|
25
|
+
for (let i = 0; i < s.length; i++) {
|
|
26
|
+
const c = s.charAt(i);
|
|
27
|
+
if (isTitleValidChar(c)) {
|
|
28
|
+
arr.push(c);
|
|
29
|
+
} else {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return arr.join('');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 从最后一行中提取表格的标题
|
|
38
|
+
* @param arr
|
|
39
|
+
*/
|
|
40
|
+
function parseTableTitle(arr: string[]): string {
|
|
41
|
+
if (arr.length === 0) {
|
|
42
|
+
return '';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// 最后一行
|
|
46
|
+
const key = ' COMMENT=';
|
|
47
|
+
const lastStr = arr[arr.length - 1].toUpperCase();
|
|
48
|
+
const s = lastStr.indexOf(key);
|
|
49
|
+
if (s < 0) {
|
|
50
|
+
return '';
|
|
51
|
+
}
|
|
52
|
+
const c = lastStr.substring(s + key.length).trim();
|
|
53
|
+
return parseTableFieldTitleFromComment(c);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function parseCreateSqlToTitleMap(createSqlStr: string) {
|
|
57
|
+
if (!createSqlStr) {
|
|
58
|
+
return {
|
|
59
|
+
tableTitle: '',
|
|
60
|
+
fieldsTitleMap: {},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const titleMap = {};
|
|
64
|
+
const arr0 = createSqlStr.split('\n').map(s => {
|
|
65
|
+
return s.trim();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const tableTitle = parseTableTitle(arr0);
|
|
69
|
+
|
|
70
|
+
let arr = arr0.filter(s => {
|
|
71
|
+
return !(s.endsWith('(') || s.startsWith('('));
|
|
72
|
+
});
|
|
73
|
+
arr = arr.filter(s => {
|
|
74
|
+
return s.includes(' COMMENT ');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
for (let i = 0; i < arr.length; i++) {
|
|
78
|
+
const arrElement = arr[i].split(' COMMENT ');
|
|
79
|
+
const e0 = arrElement[0];
|
|
80
|
+
const e1 = arrElement[1];
|
|
81
|
+
const keyArr = e0.split(' ');
|
|
82
|
+
const field = keyArr[0].replace(/`/gm, '');
|
|
83
|
+
titleMap[field] = parseTableFieldTitleFromComment(e1).trim();
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
tableTitle, // 表格标题
|
|
87
|
+
fieldsTitleMap: titleMap, // 列标题
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export { parseCreateSqlToTitleMap };
|