midway-fatcms 0.0.1-beta.4 → 0.0.1-beta.41
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 -0
- package/.prettierrc.js +4 -0
- package/README.md +7 -0
- package/dist/config/config.default.js +58 -15
- package/dist/config/seed/aeskey.txt +1 -1
- package/dist/configuration.d.ts +1 -0
- package/dist/configuration.js +33 -9
- package/dist/controller/base/BaseApiController.d.ts +7 -1
- package/dist/controller/base/BaseApiController.js +32 -6
- package/dist/controller/gateway/AsyncTaskController.d.ts +20 -0
- package/dist/controller/gateway/AsyncTaskController.js +181 -0
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +3 -3
- package/dist/controller/gateway/CrudMtdGatewayController.js +9 -6
- package/dist/controller/gateway/DocGatewayController.js +14 -9
- package/dist/controller/gateway/FileController.d.ts +3 -2
- package/dist/controller/gateway/PublicApiController.js +4 -6
- package/dist/controller/gateway/StaticController.d.ts +0 -1
- package/dist/controller/gateway/StaticController.js +40 -39
- package/dist/controller/helpers.controller.d.ts +1 -1
- package/dist/controller/home.controller.js +4 -3
- package/dist/controller/manage/AnyApiMangeApi.js +2 -2
- package/dist/controller/manage/AppLogMangeApi.js +2 -2
- package/dist/controller/manage/AppMangeApi.js +2 -2
- package/dist/controller/manage/AppPageMangeApi.js +2 -2
- package/dist/controller/manage/AppSchemaHistoryApi.js +2 -2
- package/dist/controller/manage/CrudMethodsMangeApi.js +2 -2
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +1 -1
- package/dist/controller/manage/CrudStandardDesignApi.js +86 -83
- package/dist/controller/manage/DataDictManageApi.d.ts +1 -1
- package/dist/controller/manage/DataDictManageApi.js +1 -1
- package/dist/controller/manage/DeployManageApi.d.ts +1 -1
- package/dist/controller/manage/DeployManageApi.js +38 -34
- package/dist/controller/manage/DocLibManageApi.js +2 -2
- package/dist/controller/manage/DocManageApi.js +2 -2
- package/dist/controller/manage/FileManageApi.js +1 -1
- package/dist/controller/manage/LowCodeTplManageApi.js +2 -2
- package/dist/controller/manage/MenuManageApi.js +2 -2
- package/dist/controller/manage/ProxyApiMangeApi.js +2 -2
- package/dist/controller/manage/SuperAdminManageApi.d.ts +2 -2
- package/dist/controller/manage/SuperAdminManageApi.js +12 -8
- package/dist/controller/manage/SysConfigMangeApi.d.ts +1 -1
- package/dist/controller/manage/SysConfigMangeApi.js +8 -6
- package/dist/controller/manage/SystemInfoManageApi.d.ts +1 -1
- package/dist/controller/manage/SystemInfoManageApi.js +7 -1
- package/dist/controller/manage/UserAccountManageApi.d.ts +2 -2
- package/dist/controller/manage/UserAccountManageApi.js +7 -2
- package/dist/controller/manage/WorkbenchMangeApi.js +3 -3
- package/dist/controller/myinfo/AuthController.d.ts +0 -4
- package/dist/controller/myinfo/AuthController.js +1 -54
- package/dist/controller/render/AppRenderController.js +12 -5
- package/dist/controller/test.controller.d.ts +1 -1
- package/dist/controller/test.controller.js +5 -5
- package/dist/index.d.ts +35 -4
- package/dist/index.js +35 -4
- package/dist/libs/crud-pro/CrudPro.d.ts +1 -0
- package/dist/libs/crud-pro/CrudPro.js +5 -0
- package/dist/libs/crud-pro/defaultConfigs.js +2 -0
- package/dist/libs/crud-pro/interfaces.d.ts +7 -1
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +12 -5
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +8 -1
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +8 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +1 -1
- package/dist/libs/crud-pro/models/ResModel.d.ts +16 -0
- package/dist/libs/crud-pro/models/ResModel.js +2 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +1 -1
- package/dist/libs/crud-pro/models/Transaction.d.ts +1 -0
- package/dist/libs/crud-pro/models/Transaction.js +7 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +1 -1
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +27 -15
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +17 -19
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +15 -3
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +32 -7
- package/dist/libs/crud-pro/sql.txt +120 -120
- package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
- package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
- package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
- package/dist/libs/global-config/global-config.d.ts +45 -0
- package/dist/libs/global-config/global-config.js +33 -0
- package/dist/libs/utils/base64.d.ts +9 -0
- package/dist/libs/utils/base64.js +42 -0
- package/dist/libs/utils/errorToString.d.ts +2 -0
- package/dist/libs/utils/errorToString.js +57 -0
- package/dist/libs/utils/fatcms-request.js +2 -2
- package/dist/libs/utils/functions.d.ts +2 -1
- package/dist/libs/utils/functions.js +6 -1
- package/dist/middleware/forbidden.middleware.js +4 -20
- package/dist/middleware/global.middleware.js +30 -10
- package/dist/middleware/permission.middleware.js +1 -1
- package/dist/models/AsyncTaskModel.d.ts +74 -0
- package/dist/models/AsyncTaskModel.js +31 -0
- package/dist/models/RedisKeys.d.ts +14 -0
- package/dist/models/RedisKeys.js +17 -0
- package/dist/models/SystemEntities.d.ts +8 -1
- package/dist/models/SystemEntities.js +7 -0
- package/dist/models/SystemTables.d.ts +1 -3
- package/dist/models/SystemTables.js +2 -4
- package/dist/models/bizmodels.d.ts +28 -0
- package/dist/models/bizmodels.js +6 -1
- package/dist/schedule/anonymousContext.d.ts +14 -0
- package/dist/schedule/anonymousContext.js +59 -0
- package/dist/schedule/index.d.ts +4 -3
- package/dist/schedule/index.js +8 -67
- package/dist/schedule/runSchedule.d.ts +12 -0
- package/dist/schedule/runSchedule.js +68 -0
- package/dist/schedule/scheduleNames.d.ts +13 -0
- package/dist/schedule/scheduleNames.js +17 -0
- package/dist/service/AuthService.js +8 -5
- package/dist/service/EnumInfoService.js +9 -5
- package/dist/service/FileCenterService.js +13 -9
- package/dist/service/SysConfigService.d.ts +1 -1
- package/dist/service/SysConfigService.js +4 -2
- package/dist/service/UserAccountService.js +10 -6
- package/dist/service/UserSessionService.d.ts +21 -0
- package/dist/service/UserSessionService.js +73 -2
- package/dist/service/VisitStatService.d.ts +1 -1
- package/dist/service/VisitStatService.js +20 -27
- package/dist/service/WorkbenchService.d.ts +33 -0
- package/dist/service/WorkbenchService.js +70 -12
- package/dist/service/anyapi/AnyApiSandboxService.js +12 -12
- package/dist/service/anyapi/AnyApiService.js +4 -2
- package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -0
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -0
- package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
- package/dist/service/asyncTask/AsyncTaskService.js +34 -0
- package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -0
- package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -0
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -0
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -0
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -0
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +139 -0
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -0
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +121 -0
- package/dist/service/base/BaseService.d.ts +12 -0
- package/dist/service/base/BaseService.js +22 -0
- package/dist/service/base/RedisCacheService.d.ts +7 -0
- package/dist/service/base/RedisCacheService.js +7 -0
- package/dist/service/crudstd/CrudStdService.d.ts +8 -1
- package/dist/service/crudstd/CrudStdService.js +63 -6
- package/dist/service/curd/CrudProQuick.d.ts +44 -0
- package/dist/service/curd/CrudProQuick.js +147 -0
- package/dist/service/curd/CurdMixByAccountService.d.ts +4 -4
- package/dist/service/curd/CurdMixByAccountService.js +12 -6
- package/dist/service/curd/CurdMixByDictService.d.ts +4 -4
- package/dist/service/curd/CurdMixByDictService.js +10 -7
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +13 -4
- package/dist/service/curd/CurdMixByLinkToCustomService.js +73 -24
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +3 -3
- package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +3 -3
- package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
- package/dist/service/curd/CurdMixService.d.ts +13 -3
- package/dist/service/curd/CurdMixService.js +26 -2
- package/dist/service/curd/CurdMixUtils.d.ts +27 -4
- package/dist/service/curd/CurdMixUtils.js +115 -41
- package/dist/service/curd/CurdProService.d.ts +3 -10
- package/dist/service/curd/CurdProService.js +36 -148
- package/dist/service/curd/fixCfgModel.d.ts +3 -0
- package/dist/service/curd/fixCfgModel.js +107 -0
- package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
- package/dist/service/proxyapi/ProxyApiService.d.ts +1 -0
- package/dist/service/proxyapi/ProxyApiService.js +43 -9
- package/dist/views/404_app.html +31 -31
- package/dist/views/404_workbench.html +34 -34
- package/package.json +28 -24
- package/tsconfig.json +32 -0
- package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
- package/dist/controller/medstatistic/MedAdminController.js +0 -205
- package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
- package/dist/controller/medstatistic/MedClientController.js +0 -188
- package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
- package/dist/controller/medstatistic/MedMessageService.js +0 -95
- package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
- package/dist/controller/medstatistic/MedScoreService.js +0 -107
- package/dist/controller/medstatistic/constants.d.ts +0 -32
- package/dist/controller/medstatistic/constants.js +0 -43
- package/src/config/config.default.ts +0 -172
- package/src/config/seed/aeskey.txt +0 -1
- package/src/config/utils.ts +0 -23
- package/src/configuration.ts +0 -83
- package/src/controller/base/BaseApiController.ts +0 -145
- package/src/controller/gateway/AnyApiGatewayController.ts +0 -33
- package/src/controller/gateway/CrudMtdGatewayController.ts +0 -107
- package/src/controller/gateway/CrudStdGatewayController.ts +0 -101
- package/src/controller/gateway/DocGatewayController.ts +0 -165
- package/src/controller/gateway/FileController.ts +0 -110
- package/src/controller/gateway/ProxyApiGatewayController.ts +0 -47
- package/src/controller/gateway/PublicApiController.ts +0 -145
- package/src/controller/gateway/StaticController.ts +0 -328
- package/src/controller/helpers.controller.ts +0 -161
- package/src/controller/home.controller.ts +0 -71
- package/src/controller/manage/AnyApiMangeApi.ts +0 -66
- package/src/controller/manage/AppLogMangeApi.ts +0 -53
- package/src/controller/manage/AppMangeApi.ts +0 -53
- package/src/controller/manage/AppPageMangeApi.ts +0 -52
- package/src/controller/manage/AppSchemaHistoryApi.ts +0 -49
- package/src/controller/manage/CrudMethodsMangeApi.ts +0 -49
- package/src/controller/manage/CrudStandardDesignApi.ts +0 -353
- package/src/controller/manage/DataDictManageApi.ts +0 -78
- package/src/controller/manage/DeployManageApi.ts +0 -179
- package/src/controller/manage/DocLibManageApi.ts +0 -69
- package/src/controller/manage/DocManageApi.ts +0 -99
- package/src/controller/manage/FileManageApi.ts +0 -45
- package/src/controller/manage/LowCodeTplManageApi.ts +0 -52
- package/src/controller/manage/MenuManageApi.ts +0 -63
- package/src/controller/manage/ProxyApiMangeApi.ts +0 -52
- package/src/controller/manage/SuperAdminManageApi.ts +0 -138
- package/src/controller/manage/SysConfigMangeApi.ts +0 -95
- package/src/controller/manage/SystemInfoManageApi.ts +0 -48
- package/src/controller/manage/UserAccountManageApi.ts +0 -88
- package/src/controller/manage/WorkbenchMangeApi.ts +0 -72
- package/src/controller/medstatistic/MedAdminController.ts +0 -221
- package/src/controller/medstatistic/MedClientController.ts +0 -188
- package/src/controller/medstatistic/MedMessageService.ts +0 -89
- package/src/controller/medstatistic/MedScoreService.ts +0 -108
- package/src/controller/medstatistic/constants.ts +0 -63
- package/src/controller/myinfo/AuthController.ts +0 -174
- package/src/controller/myinfo/MyInfoController.ts +0 -32
- package/src/controller/render/AppRenderController.ts +0 -76
- package/src/controller/test.controller.ts +0 -37
- package/src/filter/default.filter.ts +0 -13
- package/src/filter/notfound.filter.ts +0 -10
- package/src/index.ts +0 -71
- package/src/interface.ts +0 -31
- package/src/libs/crud-pro/CrudPro.ts +0 -158
- package/src/libs/crud-pro/defaultConfigs.ts +0 -13
- package/src/libs/crud-pro/exceptions.ts +0 -124
- package/src/libs/crud-pro/interfaces.ts +0 -183
- package/src/libs/crud-pro/models/ExecuteContext.ts +0 -111
- package/src/libs/crud-pro/models/ExecuteContextFunc.ts +0 -86
- package/src/libs/crud-pro/models/FuncContext.ts +0 -21
- package/src/libs/crud-pro/models/RequestCfgModel.ts +0 -141
- package/src/libs/crud-pro/models/RequestModel.ts +0 -141
- package/src/libs/crud-pro/models/ServiceHub.ts +0 -32
- package/src/libs/crud-pro/models/SqlCfgModel.ts +0 -52
- package/src/libs/crud-pro/models/SqlSegArg.ts +0 -13
- package/src/libs/crud-pro/models/Transaction.ts +0 -74
- package/src/libs/crud-pro/models/TransactionMySQL.ts +0 -79
- package/src/libs/crud-pro/models/TransactionPostgres.ts +0 -91
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +0 -107
- package/src/libs/crud-pro/models/keys.ts +0 -159
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +0 -75
- package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +0 -128
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +0 -279
- package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +0 -60
- package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +0 -180
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +0 -373
- package/src/libs/crud-pro/services/CrudProGenSqlService.ts +0 -202
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +0 -397
- package/src/libs/crud-pro/services/CrudProServiceBase.ts +0 -98
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +0 -59
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +0 -92
- package/src/libs/crud-pro/sql.txt +0 -120
- package/src/libs/crud-pro/utils/CompareUtils.ts +0 -23
- package/src/libs/crud-pro/utils/DatabaseName.ts +0 -40
- package/src/libs/crud-pro/utils/DateTimeUtils.ts +0 -20
- package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +0 -64
- package/src/libs/crud-pro/utils/MessageParseUtils.ts +0 -33
- package/src/libs/crud-pro/utils/MixinUtils.ts +0 -285
- package/src/libs/crud-pro/utils/ModelUtils.ts +0 -55
- package/src/libs/crud-pro/utils/MultiKeyMap.ts +0 -72
- package/src/libs/crud-pro/utils/SqlFuncUtils.ts +0 -29
- package/src/libs/crud-pro/utils/TypeUtils.ts +0 -188
- package/src/libs/crud-pro/utils/ValidateUtils.ts +0 -167
- package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +0 -20
- package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +0 -22
- package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +0 -22
- package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +0 -26
- package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +0 -11
- package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +0 -11
- package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +0 -129
- package/src/libs/utils/common-dto.ts +0 -52
- package/src/libs/utils/crypto-utils.ts +0 -52
- package/src/libs/utils/fatcms-request.ts +0 -115
- package/src/libs/utils/functions.ts +0 -67
- package/src/libs/utils/ordernum-utils.ts +0 -18
- package/src/libs/utils/parseConfig.ts +0 -62
- package/src/libs/utils/parseCreateSql.ts +0 -91
- package/src/libs/utils/render-utils.ts +0 -184
- package/src/middleware/forbidden.middleware.ts +0 -71
- package/src/middleware/global.middleware.ts +0 -278
- package/src/middleware/permission.middleware.ts +0 -81
- package/src/middleware/tx.middleware.ts +0 -30
- package/src/models/SystemEntities.ts +0 -115
- package/src/models/SystemPerm.ts +0 -105
- package/src/models/SystemTables.ts +0 -30
- package/src/models/bizmodels.ts +0 -89
- package/src/models/contextLogger.ts +0 -132
- package/src/models/devops.ts +0 -17
- package/src/models/userSession.ts +0 -216
- package/src/schedule/index.ts +0 -73
- package/src/service/AuthService.ts +0 -270
- package/src/service/EnumInfoService.ts +0 -129
- package/src/service/FileCenterService.ts +0 -394
- package/src/service/SysConfigService.ts +0 -34
- package/src/service/UserAccountService.ts +0 -100
- package/src/service/UserSessionService.ts +0 -81
- package/src/service/VisitStatService.ts +0 -179
- package/src/service/WorkbenchService.ts +0 -160
- package/src/service/anyapi/AnyApiSandboxService.ts +0 -121
- package/src/service/anyapi/AnyApiService.ts +0 -184
- package/src/service/base/ApiBaseService.ts +0 -42
- package/src/service/base/ApiRateLimiter.ts +0 -59
- package/src/service/base/BaseService.ts +0 -74
- package/src/service/base/RedisCacheService.ts +0 -38
- package/src/service/crudstd/CrudStdActionService.ts +0 -27
- package/src/service/crudstd/CrudStdConstant.ts +0 -62
- package/src/service/crudstd/CrudStdRelationService.ts +0 -78
- package/src/service/crudstd/CrudStdService.ts +0 -188
- package/src/service/curd/CurdMixByAccountService.ts +0 -83
- package/src/service/curd/CurdMixByDictService.ts +0 -113
- package/src/service/curd/CurdMixByLinkToCustomService.ts +0 -167
- package/src/service/curd/CurdMixBySysConfigService.ts +0 -78
- package/src/service/curd/CurdMixByWorkbenchService.ts +0 -68
- package/src/service/curd/CurdMixService.ts +0 -65
- package/src/service/curd/CurdMixUtils.ts +0 -248
- package/src/service/curd/CurdProService.ts +0 -379
- package/src/service/proxyapi/ProxyApiLoadService.ts +0 -165
- package/src/service/proxyapi/ProxyApiService.ts +0 -262
- package/src/service/proxyapi/ProxyApiUtils.ts +0 -32
- package/src/service/proxyapi/RouteHandler.ts +0 -8
- package/src/service/proxyapi/RouteTrie.ts +0 -74
- package/src/service/proxyapi/WeightedRandom.ts +0 -37
- package/src/service/proxyapi/WeightedRoundRobin.ts +0 -44
- package/src/views/404_app.html +0 -31
- package/src/views/404_workbench.html +0 -34
- package/src/views/static/favicon.ico +0 -0
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
drop table sys_configs;
|
|
2
|
-
create table sys_configs
|
|
3
|
-
(
|
|
4
|
-
id bigint unsigned auto_increment primary key,
|
|
5
|
-
config_name varchar(256) not null comment '配置项的中文名',
|
|
6
|
-
config_code varchar(128) not null comment '配置项的唯一编码',
|
|
7
|
-
config_type varchar(64) not null comment '配置类型: json/xml/sheet/text',
|
|
8
|
-
config_content longtext not null comment '配置内容',
|
|
9
|
-
|
|
10
|
-
created_by varchar(128) null comment '创建人',
|
|
11
|
-
modified_by varchar(128) null comment '修改人',
|
|
12
|
-
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
13
|
-
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
14
|
-
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
15
|
-
|
|
16
|
-
constraint code_idx unique (config_code)
|
|
17
|
-
)
|
|
18
|
-
charset=utf8;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
drop table sys_crud_methods;
|
|
25
|
-
create table sys_crud_methods
|
|
26
|
-
(
|
|
27
|
-
id bigint unsigned auto_increment comment '自增ID'
|
|
28
|
-
primary key,
|
|
29
|
-
method varchar(256) not null comment '方法名,全局唯一',
|
|
30
|
-
columns varchar(256) null comment '返回哪些列,为空就是返回所有列',
|
|
31
|
-
max_limit bigint default 20 null comment '最大一次性返回的数量',
|
|
32
|
-
sql_simple_name varchar(256) null comment '简单查询模式;SQL缩写名称',
|
|
33
|
-
sql_cfg_list text null comment '自定义查询模式查询模式;大JSON; ISqlCfgModel数组',
|
|
34
|
-
sql_table varchar(256) null comment '操作哪个表;可以为空, originSql中不包含@@table时可以为空',
|
|
35
|
-
sql_schema varchar(256) null comment '操作哪个数据库Schema;可以为空,',
|
|
36
|
-
sql_database varchar(256) null comment '操作哪个数据库;可以为空,用于运行时选择数据库链接',
|
|
37
|
-
transaction_enable bigint default 0 null comment '是否开启事务,默认不开启,每条语句都是autocommit',
|
|
38
|
-
transaction_isolation bigint default 1 null comment '事务隔离级别; 实际只能是(0,1,2,4,8)',
|
|
39
|
-
more_config longtext null comment '更多自定义配置;大JSON',
|
|
40
|
-
|
|
41
|
-
created_by varchar(128) null comment '创建人',
|
|
42
|
-
modified_by varchar(128) null comment '修改人',
|
|
43
|
-
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
44
|
-
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
45
|
-
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
46
|
-
|
|
47
|
-
constraint method_idx unique (method)
|
|
48
|
-
)
|
|
49
|
-
comment 'CrudPro方法配置' charset=utf8;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
drop table sys_data_dict;
|
|
56
|
-
create table sys_data_dict
|
|
57
|
-
(
|
|
58
|
-
id bigint unsigned auto_increment
|
|
59
|
-
primary key,
|
|
60
|
-
dict_code varchar(128) not null comment '唯一编码,字母数字下划线点号',
|
|
61
|
-
dict_name varchar(256) not null comment '中文名称',
|
|
62
|
-
dict_desc varchar(512) null comment '中文描述',
|
|
63
|
-
dict_type bigint default 1 not null comment '1普通,2树状',
|
|
64
|
-
ext_info_desc longtext null comment '扩展字段描述信息',
|
|
65
|
-
|
|
66
|
-
created_by varchar(128) null comment '创建人',
|
|
67
|
-
modified_by varchar(128) null comment '修改人',
|
|
68
|
-
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
69
|
-
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
70
|
-
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
71
|
-
|
|
72
|
-
constraint code_idx unique (dict_code)
|
|
73
|
-
)
|
|
74
|
-
comment '数据字典' charset=utf8;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
drop table sys_data_dict_item;
|
|
79
|
-
create table sys_data_dict_item
|
|
80
|
-
(
|
|
81
|
-
id bigint unsigned auto_increment comment '条目ID'
|
|
82
|
-
primary key,
|
|
83
|
-
parent_id bigint default 0 null comment '条目父ID',
|
|
84
|
-
dict_code varchar(128) default '0' not null comment '字典编码',
|
|
85
|
-
|
|
86
|
-
label varchar(256) not null comment '条目显示名称;如SexEnum 男,女',
|
|
87
|
-
value varchar(128) not null comment '条目值;如SexEnum 0,1',
|
|
88
|
-
code varchar(128) not null comment '条目代码;如SexEnum BOY,GIRL; 如果不需要,请将code的值设置成与value一样。',
|
|
89
|
-
icon varchar(256) null comment '条目图标: 图标URL',
|
|
90
|
-
style varchar(64) null comment '条目样式;样式枚举值:red,yellow,...',
|
|
91
|
-
sort bigint default 1 null comment '排序码',
|
|
92
|
-
|
|
93
|
-
ext1 varchar(128) null comment '扩展字段1',
|
|
94
|
-
ext2 varchar(128) null comment '扩展字段2',
|
|
95
|
-
ext3 varchar(128) null comment '扩展字段3',
|
|
96
|
-
ext4 varchar(128) null comment '扩展字段4',
|
|
97
|
-
ext5 varchar(128) null comment '扩展字段5',
|
|
98
|
-
ext6 varchar(128) null comment '扩展字段6',
|
|
99
|
-
ext7 varchar(128) null comment '扩展字段7',
|
|
100
|
-
ext8 varchar(128) null comment '扩展字段8',
|
|
101
|
-
ext9 varchar(128) null comment '扩展字段9',
|
|
102
|
-
ext10 varchar(128) null comment '扩展字段10',
|
|
103
|
-
ext_more longtext null comment '扩展字段大JSON',
|
|
104
|
-
|
|
105
|
-
created_by varchar(128) null comment '创建人',
|
|
106
|
-
modified_by varchar(128) null comment '修改人',
|
|
107
|
-
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
108
|
-
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
109
|
-
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
110
|
-
|
|
111
|
-
constraint code_dict_code_uindex
|
|
112
|
-
unique (code, dict_code),
|
|
113
|
-
constraint code_dict_value_uindex
|
|
114
|
-
unique (value, dict_code)
|
|
115
|
-
)
|
|
116
|
-
comment '数据字典每一项; 如常见枚举类定义:class SexEnum { BOY(''男'', 1),GIRL(''女'', 0)}' charset=utf8;
|
|
117
|
-
|
|
118
|
-
create index code_idx
|
|
119
|
-
on sys_data_dict_item (dict_code);
|
|
120
|
-
|
|
1
|
+
drop table sys_configs;
|
|
2
|
+
create table sys_configs
|
|
3
|
+
(
|
|
4
|
+
id bigint unsigned auto_increment primary key,
|
|
5
|
+
config_name varchar(256) not null comment '配置项的中文名',
|
|
6
|
+
config_code varchar(128) not null comment '配置项的唯一编码',
|
|
7
|
+
config_type varchar(64) not null comment '配置类型: json/xml/sheet/text',
|
|
8
|
+
config_content longtext not null comment '配置内容',
|
|
9
|
+
|
|
10
|
+
created_by varchar(128) null comment '创建人',
|
|
11
|
+
modified_by varchar(128) null comment '修改人',
|
|
12
|
+
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
13
|
+
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
14
|
+
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
15
|
+
|
|
16
|
+
constraint code_idx unique (config_code)
|
|
17
|
+
)
|
|
18
|
+
charset=utf8;
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
drop table sys_crud_methods;
|
|
25
|
+
create table sys_crud_methods
|
|
26
|
+
(
|
|
27
|
+
id bigint unsigned auto_increment comment '自增ID'
|
|
28
|
+
primary key,
|
|
29
|
+
method varchar(256) not null comment '方法名,全局唯一',
|
|
30
|
+
columns varchar(256) null comment '返回哪些列,为空就是返回所有列',
|
|
31
|
+
max_limit bigint default 20 null comment '最大一次性返回的数量',
|
|
32
|
+
sql_simple_name varchar(256) null comment '简单查询模式;SQL缩写名称',
|
|
33
|
+
sql_cfg_list text null comment '自定义查询模式查询模式;大JSON; ISqlCfgModel数组',
|
|
34
|
+
sql_table varchar(256) null comment '操作哪个表;可以为空, originSql中不包含@@table时可以为空',
|
|
35
|
+
sql_schema varchar(256) null comment '操作哪个数据库Schema;可以为空,',
|
|
36
|
+
sql_database varchar(256) null comment '操作哪个数据库;可以为空,用于运行时选择数据库链接',
|
|
37
|
+
transaction_enable bigint default 0 null comment '是否开启事务,默认不开启,每条语句都是autocommit',
|
|
38
|
+
transaction_isolation bigint default 1 null comment '事务隔离级别; 实际只能是(0,1,2,4,8)',
|
|
39
|
+
more_config longtext null comment '更多自定义配置;大JSON',
|
|
40
|
+
|
|
41
|
+
created_by varchar(128) null comment '创建人',
|
|
42
|
+
modified_by varchar(128) null comment '修改人',
|
|
43
|
+
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
44
|
+
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
45
|
+
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
46
|
+
|
|
47
|
+
constraint method_idx unique (method)
|
|
48
|
+
)
|
|
49
|
+
comment 'CrudPro方法配置' charset=utf8;
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
drop table sys_data_dict;
|
|
56
|
+
create table sys_data_dict
|
|
57
|
+
(
|
|
58
|
+
id bigint unsigned auto_increment
|
|
59
|
+
primary key,
|
|
60
|
+
dict_code varchar(128) not null comment '唯一编码,字母数字下划线点号',
|
|
61
|
+
dict_name varchar(256) not null comment '中文名称',
|
|
62
|
+
dict_desc varchar(512) null comment '中文描述',
|
|
63
|
+
dict_type bigint default 1 not null comment '1普通,2树状',
|
|
64
|
+
ext_info_desc longtext null comment '扩展字段描述信息',
|
|
65
|
+
|
|
66
|
+
created_by varchar(128) null comment '创建人',
|
|
67
|
+
modified_by varchar(128) null comment '修改人',
|
|
68
|
+
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
69
|
+
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
70
|
+
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
71
|
+
|
|
72
|
+
constraint code_idx unique (dict_code)
|
|
73
|
+
)
|
|
74
|
+
comment '数据字典' charset=utf8;
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
drop table sys_data_dict_item;
|
|
79
|
+
create table sys_data_dict_item
|
|
80
|
+
(
|
|
81
|
+
id bigint unsigned auto_increment comment '条目ID'
|
|
82
|
+
primary key,
|
|
83
|
+
parent_id bigint default 0 null comment '条目父ID',
|
|
84
|
+
dict_code varchar(128) default '0' not null comment '字典编码',
|
|
85
|
+
|
|
86
|
+
label varchar(256) not null comment '条目显示名称;如SexEnum 男,女',
|
|
87
|
+
value varchar(128) not null comment '条目值;如SexEnum 0,1',
|
|
88
|
+
code varchar(128) not null comment '条目代码;如SexEnum BOY,GIRL; 如果不需要,请将code的值设置成与value一样。',
|
|
89
|
+
icon varchar(256) null comment '条目图标: 图标URL',
|
|
90
|
+
style varchar(64) null comment '条目样式;样式枚举值:red,yellow,...',
|
|
91
|
+
sort bigint default 1 null comment '排序码',
|
|
92
|
+
|
|
93
|
+
ext1 varchar(128) null comment '扩展字段1',
|
|
94
|
+
ext2 varchar(128) null comment '扩展字段2',
|
|
95
|
+
ext3 varchar(128) null comment '扩展字段3',
|
|
96
|
+
ext4 varchar(128) null comment '扩展字段4',
|
|
97
|
+
ext5 varchar(128) null comment '扩展字段5',
|
|
98
|
+
ext6 varchar(128) null comment '扩展字段6',
|
|
99
|
+
ext7 varchar(128) null comment '扩展字段7',
|
|
100
|
+
ext8 varchar(128) null comment '扩展字段8',
|
|
101
|
+
ext9 varchar(128) null comment '扩展字段9',
|
|
102
|
+
ext10 varchar(128) null comment '扩展字段10',
|
|
103
|
+
ext_more longtext null comment '扩展字段大JSON',
|
|
104
|
+
|
|
105
|
+
created_by varchar(128) null comment '创建人',
|
|
106
|
+
modified_by varchar(128) null comment '修改人',
|
|
107
|
+
created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
|
|
108
|
+
modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
|
|
109
|
+
status int default 0 not null comment '状态: 0 未启用, 1 已启用',
|
|
110
|
+
|
|
111
|
+
constraint code_dict_code_uindex
|
|
112
|
+
unique (code, dict_code),
|
|
113
|
+
constraint code_dict_value_uindex
|
|
114
|
+
unique (value, dict_code)
|
|
115
|
+
)
|
|
116
|
+
comment '数据字典每一项; 如常见枚举类定义:class SexEnum { BOY(''男'', 1),GIRL(''女'', 0)}' charset=utf8;
|
|
117
|
+
|
|
118
|
+
create index code_idx
|
|
119
|
+
on sys_data_dict_item (dict_code);
|
|
120
|
+
|
|
@@ -2,14 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toDatabaseNameStr = exports.parseDatabaseName = exports.SPLIT_CONST = void 0;
|
|
4
4
|
const keys_1 = require("../models/keys");
|
|
5
|
-
const SPLIT_CONST =
|
|
5
|
+
const SPLIT_CONST = '_________';
|
|
6
6
|
exports.SPLIT_CONST = SPLIT_CONST;
|
|
7
|
+
const PREFIX_MYSQL = `${keys_1.SqlDbType.mysql}${SPLIT_CONST}`;
|
|
8
|
+
const PREFIX_POSTGRES = `${keys_1.SqlDbType.postgres}${SPLIT_CONST}`;
|
|
9
|
+
const PREFIX_SQLSERVER = `${keys_1.SqlDbType.sqlserver}${SPLIT_CONST}`;
|
|
7
10
|
function parseDatabaseName(databaseName) {
|
|
8
11
|
const dbNameArr = databaseName.split(SPLIT_CONST);
|
|
12
|
+
if (databaseName.startsWith(PREFIX_MYSQL)) {
|
|
13
|
+
return {
|
|
14
|
+
dbType: keys_1.SqlDbType.mysql,
|
|
15
|
+
dbName: dbNameArr[1],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (databaseName.startsWith(PREFIX_POSTGRES)) {
|
|
19
|
+
return {
|
|
20
|
+
dbType: keys_1.SqlDbType.postgres,
|
|
21
|
+
dbName: dbNameArr[1],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
if (databaseName.startsWith(PREFIX_SQLSERVER)) {
|
|
25
|
+
return {
|
|
26
|
+
dbType: keys_1.SqlDbType.sqlserver,
|
|
27
|
+
dbName: dbNameArr[1],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
9
30
|
if (dbNameArr.length === 1) {
|
|
10
31
|
return {
|
|
11
32
|
dbType: keys_1.SqlDbType.mysql,
|
|
12
|
-
dbName: dbNameArr[0]
|
|
33
|
+
dbName: dbNameArr[0],
|
|
13
34
|
};
|
|
14
35
|
}
|
|
15
36
|
if (dbNameArr.length > 1) {
|
|
@@ -17,7 +38,7 @@ function parseDatabaseName(databaseName) {
|
|
|
17
38
|
const dbType = dbType0;
|
|
18
39
|
return {
|
|
19
40
|
dbType,
|
|
20
|
-
dbName
|
|
41
|
+
dbName,
|
|
21
42
|
};
|
|
22
43
|
}
|
|
23
44
|
return null;
|
|
@@ -43,7 +43,7 @@ const MixinUtils = {
|
|
|
43
43
|
return !str1 && !str2;
|
|
44
44
|
},
|
|
45
45
|
startsWith(str1, str2) {
|
|
46
|
-
if (typeof str1 ===
|
|
46
|
+
if (typeof str1 === 'string' && typeof str2 === 'string') {
|
|
47
47
|
return str1.startsWith(str2);
|
|
48
48
|
}
|
|
49
49
|
return false;
|
|
@@ -147,7 +147,7 @@ function validateByCfgString(validateCfg, itemValue, errPath) {
|
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
149
|
// 必填
|
|
150
|
-
if (
|
|
150
|
+
if ('required' === validateCfg) {
|
|
151
151
|
if (isEmpty(itemValue)) {
|
|
152
152
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.VALIDATE_ERR, "'参数校验错误,字段 " + errPath + ' 不满足校验配置:' + validateCfg);
|
|
153
153
|
}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.toSqlColumnNamesJoin = exports.toSqlColumnName = void 0;
|
|
4
4
|
const keys_1 = require("../../models/keys");
|
|
5
5
|
function toSqlColumnName(columnName, sqlCfgModel) {
|
|
6
|
-
if (sqlCfgModel.
|
|
6
|
+
if (sqlCfgModel.sqlDbType === keys_1.SqlDbType.postgres) {
|
|
7
7
|
return '"' + columnName + '"';
|
|
8
8
|
}
|
|
9
|
-
if (sqlCfgModel.
|
|
9
|
+
if (sqlCfgModel.sqlDbType === keys_1.SqlDbType.sqlserver) {
|
|
10
10
|
return '[' + columnName + ']';
|
|
11
11
|
}
|
|
12
12
|
return '`' + columnName + '`';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pickAndConvertRowsByMix = void 0;
|
|
4
|
+
const keys_1 = require("../../models/keys");
|
|
5
|
+
const convertPgType_1 = require("./convertPgType");
|
|
6
|
+
const _ = require("lodash");
|
|
7
|
+
function pickAndConvertRowsByMix(connectionQueryRes, sqlDbType) {
|
|
8
|
+
if (!connectionQueryRes) {
|
|
9
|
+
throw new Error('[pickAndConvertRowsByMix] error, connectionQueryRes is null ');
|
|
10
|
+
}
|
|
11
|
+
if (sqlDbType === keys_1.SqlDbType.postgres) {
|
|
12
|
+
return (0, convertPgType_1.pickAndConvertPgRows)(connectionQueryRes);
|
|
13
|
+
}
|
|
14
|
+
if (sqlDbType === keys_1.SqlDbType.mysql) {
|
|
15
|
+
return connectionQueryRes[0];
|
|
16
|
+
}
|
|
17
|
+
if (sqlDbType === keys_1.SqlDbType.sqlserver) {
|
|
18
|
+
return _.get(connectionQueryRes, 'recordsets[0]') || [];
|
|
19
|
+
}
|
|
20
|
+
throw new Error('[pickAndConvertRowsByMix] error sqlDbType, sqlDbType = ' + sqlDbType);
|
|
21
|
+
}
|
|
22
|
+
exports.pickAndConvertRowsByMix = pickAndConvertRowsByMix;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { SqlDbType } from '../crud-pro/models/keys';
|
|
2
|
+
interface IGlobalStaticConfig {
|
|
3
|
+
/**
|
|
4
|
+
* CrudStd: 业务系统自定义的修改cfgModel
|
|
5
|
+
* @param reqJson
|
|
6
|
+
* @param cfgModel
|
|
7
|
+
* @param appInfo
|
|
8
|
+
* @param ctx
|
|
9
|
+
*/
|
|
10
|
+
bizUpdateCfgModelForCrudStd(reqJson: any, cfgModel: any, appInfo: any, ctx: any): Promise<any>;
|
|
11
|
+
/**
|
|
12
|
+
* CrudMtd: 业务系统自定义的修改cfgModel
|
|
13
|
+
* @param reqJson
|
|
14
|
+
* @param cfgModel
|
|
15
|
+
* @param methodInfo
|
|
16
|
+
* @param ctx
|
|
17
|
+
*/
|
|
18
|
+
bizUpdateCfgModelForCrudMtd(reqJson: any, cfgModel: any, methodInfo: any, ctx: any): Promise<any>;
|
|
19
|
+
/**
|
|
20
|
+
* CrudPro: 业务系统自定义的修改cfgModel。这是最底层的!!全局的!!全局的!!全局的!!!
|
|
21
|
+
* @param reqJson
|
|
22
|
+
* @param cfgModel
|
|
23
|
+
*/
|
|
24
|
+
bizUpdateCfgModelForCrudPro(reqJson: any, cfgModel: any): Promise<any>;
|
|
25
|
+
/**
|
|
26
|
+
* 生成用户的账号ID,业务系统可以生成类似工号的ID
|
|
27
|
+
* @param userSubmitData
|
|
28
|
+
*/
|
|
29
|
+
generateUserAccountId(userSubmitData: any): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* 将业务系统表中的userId映射为fatcms的UserAccountId
|
|
32
|
+
* @param bizTableUserId 业余系统表中的UserId
|
|
33
|
+
*/
|
|
34
|
+
toFatcmsUserAccountId(bizTableUserId: any): string;
|
|
35
|
+
SystemDbName: string;
|
|
36
|
+
SystemDbType: SqlDbType;
|
|
37
|
+
}
|
|
38
|
+
declare class GlobalStaticConfig {
|
|
39
|
+
private configObject;
|
|
40
|
+
constructor();
|
|
41
|
+
getConfig(): IGlobalStaticConfig;
|
|
42
|
+
setConfig(configObject: any): void;
|
|
43
|
+
}
|
|
44
|
+
declare const GLOBAL_STATIC_CONFIG: GlobalStaticConfig;
|
|
45
|
+
export { GLOBAL_STATIC_CONFIG };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GLOBAL_STATIC_CONFIG = void 0;
|
|
4
|
+
const keys_1 = require("../crud-pro/models/keys");
|
|
5
|
+
const noop = () => {
|
|
6
|
+
return Promise.resolve();
|
|
7
|
+
};
|
|
8
|
+
class GlobalStaticConfig {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.configObject = {
|
|
11
|
+
bizUpdateCfgModelForCrudStd: noop,
|
|
12
|
+
bizUpdateCfgModelForCrudMtd: noop,
|
|
13
|
+
bizUpdateCfgModelForCrudPro: noop,
|
|
14
|
+
generateUserAccountId: null,
|
|
15
|
+
toFatcmsUserAccountId: (bizTableUserId) => {
|
|
16
|
+
return bizTableUserId;
|
|
17
|
+
},
|
|
18
|
+
SystemDbName: 'fatcms',
|
|
19
|
+
SystemDbType: keys_1.SqlDbType.mysql,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
getConfig() {
|
|
23
|
+
return this.configObject;
|
|
24
|
+
}
|
|
25
|
+
setConfig(configObject) {
|
|
26
|
+
if (!configObject || typeof configObject !== 'object') {
|
|
27
|
+
throw new Error('参数configObject不能为空');
|
|
28
|
+
}
|
|
29
|
+
Object.assign(this.configObject, configObject);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const GLOBAL_STATIC_CONFIG = new GlobalStaticConfig();
|
|
33
|
+
exports.GLOBAL_STATIC_CONFIG = GLOBAL_STATIC_CONFIG;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare function toBase64(obj: any): string;
|
|
2
|
+
/**
|
|
3
|
+
* 将经 toBase64 函数序列化的 Base64 字符串还原为 JS 对象
|
|
4
|
+
* @param base64Str - 经 toBase64 处理后的 Base64 字符串
|
|
5
|
+
* @returns 还原后的 JS 对象
|
|
6
|
+
* @throws 当 Base64 格式无效或 JSON 解析失败时抛出含具体原因的错误
|
|
7
|
+
*/
|
|
8
|
+
declare function fromBase64(base64Str: string): any;
|
|
9
|
+
export { toBase64, fromBase64 };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromBase64 = exports.toBase64 = void 0;
|
|
4
|
+
function toBase64(obj) {
|
|
5
|
+
const jsonString = JSON.stringify(obj);
|
|
6
|
+
return Buffer.from(jsonString, 'utf8').toString('base64');
|
|
7
|
+
}
|
|
8
|
+
exports.toBase64 = toBase64;
|
|
9
|
+
/**
|
|
10
|
+
* 将经 toBase64 函数序列化的 Base64 字符串还原为 JS 对象
|
|
11
|
+
* @param base64Str - 经 toBase64 处理后的 Base64 字符串
|
|
12
|
+
* @returns 还原后的 JS 对象
|
|
13
|
+
* @throws 当 Base64 格式无效或 JSON 解析失败时抛出含具体原因的错误
|
|
14
|
+
*/
|
|
15
|
+
function fromBase64(base64Str) {
|
|
16
|
+
// 校验输入是否为字符串
|
|
17
|
+
if (typeof base64Str !== 'string') {
|
|
18
|
+
throw new Error('input must Base64 string');
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
// 1. 反向步骤1:将 Base64 字符串解码为 UTF-8 格式的 JSON 字符串
|
|
22
|
+
// 对应原函数的 Buffer.from(jsonString, 'utf8') 反向操作
|
|
23
|
+
const jsonString = Buffer.from(base64Str, 'base64').toString('utf8');
|
|
24
|
+
// 2. 反向步骤2:将 JSON 字符串解析为 JS 对象
|
|
25
|
+
// 对应原函数的 JSON.stringify(obj) 反向操作
|
|
26
|
+
const restoredObj = JSON.parse(jsonString);
|
|
27
|
+
return restoredObj;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
// 分类处理不同错误类型,提供明确提示
|
|
31
|
+
if (error instanceof TypeError && error.message.includes('invalid base64')) {
|
|
32
|
+
throw new Error('还原失败:输入不是有效的 Base64 字符串');
|
|
33
|
+
}
|
|
34
|
+
else if (error instanceof SyntaxError && error.message.includes('JSON')) {
|
|
35
|
+
throw new Error('还原失败:解码后的内容不是有效的 JSON 格式');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new Error(`还原失败:未知错误 - ${error.message}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.fromBase64 = fromBase64;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.errorToString = void 0;
|
|
4
|
+
function errorToString(error) {
|
|
5
|
+
var _a;
|
|
6
|
+
// 处理非错误对象的情况
|
|
7
|
+
if (typeof error === 'undefined') {
|
|
8
|
+
return 'Error: undefined was thrown';
|
|
9
|
+
}
|
|
10
|
+
if (error === null) {
|
|
11
|
+
return 'Error: null was thrown';
|
|
12
|
+
}
|
|
13
|
+
// 处理原始值类型
|
|
14
|
+
const primitiveTypes = ['string', 'number', 'boolean', 'symbol'];
|
|
15
|
+
if (primitiveTypes.includes(typeof error)) {
|
|
16
|
+
return `Error: A primitive value was thrown\nValue: ${String(error)}`;
|
|
17
|
+
}
|
|
18
|
+
// 处理 Error 对象
|
|
19
|
+
if (error instanceof Error) {
|
|
20
|
+
const errorDetails = [];
|
|
21
|
+
errorDetails.push(`Error: ${error.name || 'Error'}`);
|
|
22
|
+
errorDetails.push(`Message: ${error.message || 'No error message'}`);
|
|
23
|
+
if (error.stack) {
|
|
24
|
+
errorDetails.push('Stack Trace:');
|
|
25
|
+
errorDetails.push(error.stack);
|
|
26
|
+
}
|
|
27
|
+
const extraProperties = ['code', 'fileName', 'lineNumber', 'columnNumber'];
|
|
28
|
+
extraProperties.forEach(prop => {
|
|
29
|
+
if (error[prop] !== undefined) {
|
|
30
|
+
errorDetails.push(`${prop}: ${error[prop]}`);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const customProps = Object.keys(error).filter(key => !['name', 'message', 'stack', ...extraProperties].includes(key));
|
|
34
|
+
if (customProps.length > 0) {
|
|
35
|
+
errorDetails.push('Custom Properties:');
|
|
36
|
+
customProps.forEach(prop => {
|
|
37
|
+
try {
|
|
38
|
+
const value = JSON.stringify(error[prop], null, 2) || String(error[prop]);
|
|
39
|
+
errorDetails.push(` ${prop}: ${value}`);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
errorDetails.push(` ${prop}: [Object cannot be serialized]`);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return errorDetails.join('\n');
|
|
47
|
+
}
|
|
48
|
+
// 处理普通对象
|
|
49
|
+
try {
|
|
50
|
+
const objectDetails = JSON.stringify(error, null, 2);
|
|
51
|
+
return `Error: A plain object was thrown\nObject: ${objectDetails}`;
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
return `Error: An object was thrown but could not be serialized\nType: ${((_a = error.constructor) === null || _a === void 0 ? void 0 : _a.name) || 'Unknown'}`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.errorToString = errorToString;
|
|
@@ -84,7 +84,7 @@ async function isCsrfTokenValid(ctx) {
|
|
|
84
84
|
const depryptToken = await crypto_utils_1.privateAES.time_decrypt_base64_utf8(fatcmscsrftoken);
|
|
85
85
|
if (depryptToken) {
|
|
86
86
|
const num = Number(depryptToken);
|
|
87
|
-
if (num &&
|
|
87
|
+
if (num && num + 6 * 3600 * 1000 > Date.now()) {
|
|
88
88
|
return true;
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -98,7 +98,7 @@ exports.isCsrfTokenValid = isCsrfTokenValid;
|
|
|
98
98
|
async function assertCsrfToken(ctx) {
|
|
99
99
|
const isOK = await isCsrfTokenValid(ctx);
|
|
100
100
|
if (!isOK) {
|
|
101
|
-
throw new exceptions_1.CommonException(
|
|
101
|
+
throw new exceptions_1.CommonException('ASSERT_CSRF_TOKEN_ERROR', 'CSRF_TOKEN 验证失败');
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
exports.assertCsrfToken = assertCsrfToken;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
declare function createUniqueId(): string;
|
|
2
2
|
declare function parseJsonObject(str: any): any;
|
|
3
3
|
declare function parseStringTrimArray(obj: any, separator?: string): string[];
|
|
4
|
-
|
|
4
|
+
declare function getCurrentFullMoment(): string;
|
|
5
|
+
export { createUniqueId, parseJsonObject, parseStringTrimArray, getCurrentFullMoment };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseStringTrimArray = exports.parseJsonObject = exports.createUniqueId = void 0;
|
|
3
|
+
exports.getCurrentFullMoment = exports.parseStringTrimArray = exports.parseJsonObject = exports.createUniqueId = void 0;
|
|
4
4
|
const md5 = require("md5");
|
|
5
|
+
const moment = require("moment");
|
|
5
6
|
let createUniqueIdIndex = 0;
|
|
6
7
|
function createUniqueId() {
|
|
7
8
|
createUniqueIdIndex++;
|
|
@@ -61,3 +62,7 @@ function parseStringTrimArray(obj, separator = ',') {
|
|
|
61
62
|
return null;
|
|
62
63
|
}
|
|
63
64
|
exports.parseStringTrimArray = parseStringTrimArray;
|
|
65
|
+
function getCurrentFullMoment() {
|
|
66
|
+
return moment(Date.now()).format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
67
|
+
}
|
|
68
|
+
exports.getCurrentFullMoment = getCurrentFullMoment;
|
|
@@ -9,24 +9,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.ForbiddenMiddleware = void 0;
|
|
10
10
|
const core_1 = require("@midwayjs/core");
|
|
11
11
|
// 一些爬虫/漏洞分析工具会来请求这玩意。
|
|
12
|
-
const blackEqualList = [
|
|
13
|
-
|
|
14
|
-
'/backend/.env',
|
|
15
|
-
'/application.yml',
|
|
16
|
-
'/db.ini',
|
|
17
|
-
'/.well-known/security.txt',
|
|
18
|
-
];
|
|
19
|
-
const blackPrefixList = [
|
|
20
|
-
'/.aws/',
|
|
21
|
-
'/.git/',
|
|
22
|
-
'/.svn/',
|
|
23
|
-
'/.env/',
|
|
24
|
-
'/src/',
|
|
25
|
-
'/var/logs/',
|
|
26
|
-
'/var/log/',
|
|
27
|
-
'/cgi-bin/',
|
|
28
|
-
'/php-cgi/',
|
|
29
|
-
];
|
|
12
|
+
const blackEqualList = ['/config.json', '/backend/.env', '/application.yml', '/db.ini', '/.well-known/security.txt'];
|
|
13
|
+
const blackPrefixList = ['/.aws/', '/.git/', '/.svn/', '/.env/', '/src/', '/var/logs/', '/var/log/', '/cgi-bin/', '/php-cgi/'];
|
|
30
14
|
/**
|
|
31
15
|
* 针对一些路径禁止访问。避免一些爬虫抓取网站内容,实际上这里枚举的路径,本身就是不存在的。只是为了提前拦截,为了服务器性能考虑。
|
|
32
16
|
*/
|
|
@@ -55,9 +39,9 @@ let ForbiddenMiddleware = class ForbiddenMiddleware {
|
|
|
55
39
|
}
|
|
56
40
|
resolve() {
|
|
57
41
|
return async (ctx, next) => {
|
|
58
|
-
ctx.set({
|
|
42
|
+
ctx.set({ 'content-type': 'text/html; charset=utf-8' });
|
|
59
43
|
ctx.status = 404;
|
|
60
|
-
ctx.body =
|
|
44
|
+
ctx.body = '404!404!404!重要的事情说三遍!';
|
|
61
45
|
};
|
|
62
46
|
}
|
|
63
47
|
static getName() {
|