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
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CurdProService =
|
|
12
|
+
exports.CurdProService = void 0;
|
|
13
13
|
const _ = require("lodash");
|
|
14
14
|
const core_1 = require("@midwayjs/core");
|
|
15
15
|
const CrudPro_1 = require("../../libs/crud-pro/CrudPro");
|
|
@@ -20,7 +20,9 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
20
20
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
21
21
|
const ExecuteContextFunc_1 = require("../../libs/crud-pro/models/ExecuteContextFunc");
|
|
22
22
|
const BaseService_1 = require("../base/BaseService");
|
|
23
|
-
const
|
|
23
|
+
const CrudProQuick_1 = require("../../service/curd/CrudProQuick");
|
|
24
|
+
const fixCfgModel_1 = require("./fixCfgModel");
|
|
25
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
24
26
|
function toVisitor(ctx) {
|
|
25
27
|
const workbenchInfo = ctx.workbenchInfo;
|
|
26
28
|
const userSession = ctx.userSession;
|
|
@@ -61,27 +63,30 @@ class MyContextFunc extends ExecuteContextFunc_1.BaseExecuteContextFunc {
|
|
|
61
63
|
}
|
|
62
64
|
async getConnectionPool(sqlCfgModel) {
|
|
63
65
|
if (!sqlCfgModel.sqlDatabase) {
|
|
64
|
-
console.error('查询语句中未指定数据库', sqlCfgModel.executeSql);
|
|
66
|
+
console.error('[MyContextFunc]查询语句中未指定数据库', sqlCfgModel.executeSql);
|
|
65
67
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_QUERY_PARAM_EMPTY, '查询语句中未指定数据库');
|
|
66
68
|
}
|
|
67
69
|
const dataBaseName = sqlCfgModel.sqlDatabase;
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
70
|
+
const sqlDbType = sqlCfgModel.sqlDbType;
|
|
71
|
+
if (sqlDbType === keys_1.SqlDbType.postgres) {
|
|
70
72
|
const dbConfig = _.get(this.postgres2Config, dataBaseName);
|
|
71
73
|
if (!dbConfig) {
|
|
74
|
+
console.error('[MyContextFunc]postgres配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
72
75
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_NOT_FOUND, 'postgres配置中不存在此数据库:' + dataBaseName);
|
|
73
76
|
}
|
|
74
77
|
return (0, PostgresUtils_1.getConnectionPool)(dataBaseName, dbConfig);
|
|
75
78
|
}
|
|
76
|
-
if (
|
|
79
|
+
if (sqlDbType === keys_1.SqlDbType.sqlserver) {
|
|
77
80
|
const dbConfig = _.get(this.sqlserver2Config, dataBaseName);
|
|
78
81
|
if (!dbConfig) {
|
|
82
|
+
console.error('[MyContextFunc]sqlserver配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
79
83
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_NOT_FOUND, 'sqlserver配置中不存在此数据库:' + dataBaseName);
|
|
80
84
|
}
|
|
81
85
|
return (0, SqlServerUtils_1.getConnectionPool)(dataBaseName, dbConfig);
|
|
82
86
|
}
|
|
83
87
|
const dbConfig = _.get(this.mysql2Config, dataBaseName);
|
|
84
88
|
if (!dbConfig) {
|
|
89
|
+
console.error('[MyContextFunc]MySQL配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
85
90
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_NOT_FOUND, 'MySQL配置中不存在此数据库:' + dataBaseName);
|
|
86
91
|
}
|
|
87
92
|
return (0, MySQLUtils_1.getConnectionPool)(dataBaseName, dbConfig);
|
|
@@ -96,43 +101,19 @@ class MyContextFunc extends ExecuteContextFunc_1.BaseExecuteContextFunc {
|
|
|
96
101
|
}
|
|
97
102
|
return null;
|
|
98
103
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
sqlDatabase: this.sqlDatabase,
|
|
111
|
-
sqlDdType: this.sqlDdType,
|
|
112
|
-
updateCfg: {},
|
|
113
|
-
};
|
|
114
|
-
const res = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
115
|
-
return res.getOneObj();
|
|
116
|
-
}
|
|
117
|
-
async getList(reqJson, sqlTable) {
|
|
118
|
-
const cfgModel = {
|
|
119
|
-
sqlTable,
|
|
120
|
-
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
121
|
-
sqlDatabase: this.sqlDatabase,
|
|
122
|
-
sqlDdType: this.sqlDdType,
|
|
123
|
-
updateCfg: {},
|
|
124
|
-
};
|
|
125
|
-
const res = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
126
|
-
return res.getResRows();
|
|
104
|
+
/**
|
|
105
|
+
* 在执行之前可以根据业务需要修改需要执行的内容
|
|
106
|
+
* @param reqJson
|
|
107
|
+
* @param cfgJson
|
|
108
|
+
*/
|
|
109
|
+
async beforeExecuteSQLList(reqJson, cfgJson) {
|
|
110
|
+
const { bizUpdateCfgModelForCrudPro } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
111
|
+
if (typeof bizUpdateCfgModelForCrudPro === 'function') {
|
|
112
|
+
await bizUpdateCfgModelForCrudPro(reqJson, cfgJson);
|
|
113
|
+
}
|
|
114
|
+
return Promise.resolve();
|
|
127
115
|
}
|
|
128
116
|
}
|
|
129
|
-
exports.DBUtils = DBUtils;
|
|
130
|
-
function isSimpleQuery(sqlSimpleName) {
|
|
131
|
-
return sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY ||
|
|
132
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_COUNT ||
|
|
133
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE ||
|
|
134
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE;
|
|
135
|
-
}
|
|
136
117
|
let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
137
118
|
constructor() {
|
|
138
119
|
super(...arguments);
|
|
@@ -141,6 +122,9 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
141
122
|
setResponseCfgHandlers(key, handler) {
|
|
142
123
|
this.responseCfgHandlers[key] = handler;
|
|
143
124
|
}
|
|
125
|
+
getResponseCfgHandlers() {
|
|
126
|
+
return this.responseCfgHandlers;
|
|
127
|
+
}
|
|
144
128
|
/**
|
|
145
129
|
* Execute级别:每次调用都会产生新的
|
|
146
130
|
* @private
|
|
@@ -152,11 +136,15 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
152
136
|
crudPro.transaction = this.ctx.transaction;
|
|
153
137
|
crudPro.logger = this.getContextLogger();
|
|
154
138
|
crudPro.visitor = visitor;
|
|
155
|
-
|
|
139
|
+
const crudProCfg = this.crudProCfg || {};
|
|
140
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
141
|
+
crudProCfg.sysDatabaseName = SystemDbName;
|
|
142
|
+
crudProCfg.sysDatabaseDbType = SystemDbType;
|
|
143
|
+
crudPro.contextCfg = crudProCfg;
|
|
156
144
|
crudPro.contextFunc = new MyContextFunc({
|
|
157
145
|
mysql2Config: this.mysql2Config,
|
|
158
146
|
postgres2Config: this.postgres2Config,
|
|
159
|
-
sqlserver2Config: this.sqlserver2Config
|
|
147
|
+
sqlserver2Config: this.sqlserver2Config,
|
|
160
148
|
}, this.responseCfgHandlers);
|
|
161
149
|
return crudPro;
|
|
162
150
|
}
|
|
@@ -181,114 +169,14 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
181
169
|
// 直接执行一个请求
|
|
182
170
|
async executeCrudByCfg(reqJson, cfgModel) {
|
|
183
171
|
this.logInfo('executeCrudByCfg', cfgModel);
|
|
184
|
-
if (!cfgModel.method) {
|
|
185
|
-
const req = this.ctx.req;
|
|
186
|
-
if (req) {
|
|
187
|
-
cfgModel.method = `${req.method}:${req.url}`;
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
cfgModel.method = 'anonymous';
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (!cfgModel.updateCfg) {
|
|
194
|
-
cfgModel.updateCfg = {};
|
|
195
|
-
}
|
|
196
|
-
// 应用标准的updateCfg
|
|
197
|
-
this.applyStandardUpdateCfg(cfgModel);
|
|
198
172
|
const curdPro = this.getCrudPro();
|
|
173
|
+
// 应用标准的updateCfg。
|
|
174
|
+
(0, fixCfgModel_1.fixCfgModel)(cfgModel);
|
|
199
175
|
return await curdPro.executeCrudByCfg(reqJson, cfgModel);
|
|
200
176
|
}
|
|
201
|
-
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
|
|
205
|
-
// 彻底关闭
|
|
206
|
-
if (enableStandardUpdateCfg === false) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
const getDataCfgArray = () => {
|
|
210
|
-
// 明确有配置
|
|
211
|
-
if (Array.isArray(enableStandardUpdateCfg)) {
|
|
212
|
-
if (enableStandardUpdateCfg.includes('null')) {
|
|
213
|
-
return [];
|
|
214
|
-
}
|
|
215
|
-
return enableStandardUpdateCfg;
|
|
216
|
-
}
|
|
217
|
-
// update 、insert 添加 by
|
|
218
|
-
return ['by']; // 创建/修改语句默认添加by
|
|
219
|
-
};
|
|
220
|
-
const getConditionCfgArray = () => {
|
|
221
|
-
// 明确有配置
|
|
222
|
-
if (Array.isArray(enableStandardUpdateCfgCondition)) {
|
|
223
|
-
if (enableStandardUpdateCfgCondition.includes('null')) {
|
|
224
|
-
return [];
|
|
225
|
-
}
|
|
226
|
-
return enableStandardUpdateCfgCondition;
|
|
227
|
-
}
|
|
228
|
-
return [];
|
|
229
|
-
};
|
|
230
|
-
const dataCfgArray = getDataCfgArray();
|
|
231
|
-
const conditionCfgArray = getConditionCfgArray();
|
|
232
|
-
const mapping = {
|
|
233
|
-
'condition.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
234
|
-
'condition.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
235
|
-
'data.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
236
|
-
'data.created_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
237
|
-
'data.created_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
238
|
-
'data.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
239
|
-
'data.modified_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
240
|
-
'data.modified_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
241
|
-
'data.modified_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
242
|
-
'data.modified_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
243
|
-
};
|
|
244
|
-
const buildUpdateCfgBy = (cfgArray, prefix) => {
|
|
245
|
-
const obj = {};
|
|
246
|
-
if (Array.isArray(cfgArray)) {
|
|
247
|
-
for (let i = 0; i < cfgArray.length; i++) {
|
|
248
|
-
const suffix = cfgArray[i];
|
|
249
|
-
if (suffix) {
|
|
250
|
-
const key = `${prefix}_${suffix}`;
|
|
251
|
-
obj[key] = mapping[key];
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return obj;
|
|
256
|
-
};
|
|
257
|
-
// 查询语句
|
|
258
|
-
if (isSimpleQuery(sqlSimpleName)) {
|
|
259
|
-
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
|
|
260
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
261
|
-
}
|
|
262
|
-
// 删除语句
|
|
263
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_DELETE) {
|
|
264
|
-
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
|
|
265
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
266
|
-
}
|
|
267
|
-
// 插入语句
|
|
268
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT) {
|
|
269
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
270
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
271
|
-
}
|
|
272
|
-
// 更新语句
|
|
273
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE) {
|
|
274
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
275
|
-
const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
276
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
277
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
278
|
-
}
|
|
279
|
-
// 插入或更新
|
|
280
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE ||
|
|
281
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
|
|
282
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
283
|
-
const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
284
|
-
const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
285
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
286
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
287
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj3);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
getBbUtil(database, sqlDdType) {
|
|
291
|
-
return new DBUtils(database, sqlDdType, this);
|
|
177
|
+
getBbUtil(sqlDatabase, sqlDbType, sqlTable) {
|
|
178
|
+
const curdPro = this.getCrudPro();
|
|
179
|
+
return new CrudProQuick_1.CrudProQuick(curdPro, sqlDatabase, sqlDbType, sqlTable);
|
|
292
180
|
}
|
|
293
181
|
async getCachedCfgByMethod(method) {
|
|
294
182
|
const curdPro = this.getCrudPro();
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fixCfgModel = void 0;
|
|
4
|
+
const bizmodels_1 = require("../../models/bizmodels");
|
|
5
|
+
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
6
|
+
function isSimpleQuery(sqlSimpleName) {
|
|
7
|
+
return sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY ||
|
|
8
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_COUNT ||
|
|
9
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE ||
|
|
10
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE;
|
|
11
|
+
}
|
|
12
|
+
function fixCfgModel(cfgModel) {
|
|
13
|
+
if (!cfgModel.method) {
|
|
14
|
+
cfgModel.method = 'anonymous';
|
|
15
|
+
}
|
|
16
|
+
if (!cfgModel.updateCfg) {
|
|
17
|
+
cfgModel.updateCfg = {};
|
|
18
|
+
}
|
|
19
|
+
const sqlSimpleName = cfgModel.sqlSimpleName;
|
|
20
|
+
const enableStandardUpdateCfg = cfgModel.enableStandardUpdateCfg; // 用于设置data字段
|
|
21
|
+
const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
|
|
22
|
+
// 彻底关闭
|
|
23
|
+
if (enableStandardUpdateCfg === false) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const getDataCfgArray = () => {
|
|
27
|
+
// 明确有配置
|
|
28
|
+
if (Array.isArray(enableStandardUpdateCfg)) {
|
|
29
|
+
if (enableStandardUpdateCfg.includes('null')) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
return enableStandardUpdateCfg;
|
|
33
|
+
}
|
|
34
|
+
// update 、insert 添加 by
|
|
35
|
+
return ['by']; // 创建/修改语句默认添加by
|
|
36
|
+
};
|
|
37
|
+
const getConditionCfgArray = () => {
|
|
38
|
+
// 明确有配置
|
|
39
|
+
if (Array.isArray(enableStandardUpdateCfgCondition)) {
|
|
40
|
+
if (enableStandardUpdateCfgCondition.includes('null')) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
return enableStandardUpdateCfgCondition;
|
|
44
|
+
}
|
|
45
|
+
return [];
|
|
46
|
+
};
|
|
47
|
+
const dataCfgArray = getDataCfgArray();
|
|
48
|
+
const conditionCfgArray = getConditionCfgArray();
|
|
49
|
+
const mapping = {
|
|
50
|
+
'condition.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
51
|
+
'condition.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
52
|
+
'data.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
53
|
+
'data.created_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
54
|
+
'data.created_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
55
|
+
'data.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
56
|
+
'data.modified_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
57
|
+
'data.modified_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
58
|
+
'data.modified_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
59
|
+
'data.modified_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
60
|
+
};
|
|
61
|
+
const buildUpdateCfgBy = (cfgArray, prefix) => {
|
|
62
|
+
const obj = {};
|
|
63
|
+
if (Array.isArray(cfgArray)) {
|
|
64
|
+
for (let i = 0; i < cfgArray.length; i++) {
|
|
65
|
+
const suffix = cfgArray[i];
|
|
66
|
+
if (suffix) {
|
|
67
|
+
const key = `${prefix}_${suffix}`;
|
|
68
|
+
obj[key] = mapping[key];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return obj;
|
|
73
|
+
};
|
|
74
|
+
// 查询语句
|
|
75
|
+
if (isSimpleQuery(sqlSimpleName)) {
|
|
76
|
+
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
|
|
77
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
78
|
+
}
|
|
79
|
+
// 删除语句
|
|
80
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_DELETE) {
|
|
81
|
+
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
|
|
82
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
83
|
+
}
|
|
84
|
+
// 插入语句
|
|
85
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT) {
|
|
86
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
87
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
88
|
+
}
|
|
89
|
+
// 更新语句
|
|
90
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE) {
|
|
91
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
92
|
+
const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
93
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
94
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
95
|
+
}
|
|
96
|
+
// 插入或更新
|
|
97
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE ||
|
|
98
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
|
|
99
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
100
|
+
const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
101
|
+
const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
102
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
103
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
104
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj3);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.fixCfgModel = fixCfgModel;
|
|
@@ -24,6 +24,7 @@ const WeightedRandom_1 = require("./WeightedRandom");
|
|
|
24
24
|
const WeightedRoundRobin_1 = require("./WeightedRoundRobin");
|
|
25
25
|
const WorkbenchService_1 = require("../WorkbenchService");
|
|
26
26
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
27
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
27
28
|
function toUpstreamInfo(config_content) {
|
|
28
29
|
const obj = (0, functions_1.parseJsonObject)(config_content);
|
|
29
30
|
if (!obj) {
|
|
@@ -79,6 +80,7 @@ let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseSe
|
|
|
79
80
|
return routeTrie;
|
|
80
81
|
}
|
|
81
82
|
async buildUpstreamMap() {
|
|
83
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
82
84
|
// biz_tag={'upstream'}
|
|
83
85
|
const res = await this.curdProService.executeCrudByCfg({
|
|
84
86
|
condition: {
|
|
@@ -86,8 +88,8 @@ let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseSe
|
|
|
86
88
|
},
|
|
87
89
|
}, {
|
|
88
90
|
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
89
|
-
sqlDatabase:
|
|
90
|
-
|
|
91
|
+
sqlDatabase: SystemDbName,
|
|
92
|
+
sqlDbType: SystemDbType,
|
|
91
93
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
92
94
|
});
|
|
93
95
|
const upstreamMap = {};
|
|
@@ -100,12 +102,13 @@ let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseSe
|
|
|
100
102
|
return upstreamMap;
|
|
101
103
|
}
|
|
102
104
|
async loadProxyApiEntity(workbench_code, upstreamMap) {
|
|
105
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
103
106
|
const res = await this.curdProService.executeCrudByCfg({
|
|
104
107
|
condition: {},
|
|
105
108
|
}, {
|
|
106
109
|
sqlTable: SystemTables_1.SystemTables.sys_proxyapi,
|
|
107
|
-
sqlDatabase:
|
|
108
|
-
|
|
110
|
+
sqlDatabase: SystemDbName,
|
|
111
|
+
sqlDbType: SystemDbType,
|
|
109
112
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
110
113
|
});
|
|
111
114
|
const rows0 = res.getResRows();
|
|
@@ -16,11 +16,13 @@ const RouteTrie_1 = require("./RouteTrie");
|
|
|
16
16
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
17
17
|
const devops_1 = require("../../models/devops");
|
|
18
18
|
const CurdProService_1 = require("../curd/CurdProService");
|
|
19
|
+
const SystemEntities_1 = require("../../models/SystemEntities");
|
|
19
20
|
const axios_1 = require("axios");
|
|
20
21
|
const fatcms_request_1 = require("../../libs/utils/fatcms-request");
|
|
21
22
|
const ProxyApiUtils_1 = require("./ProxyApiUtils");
|
|
22
23
|
const ProxyApiLoadService_1 = require("./ProxyApiLoadService");
|
|
23
24
|
const ApiBaseService_1 = require("../base/ApiBaseService");
|
|
25
|
+
const base64_1 = require("../../libs/utils/base64");
|
|
24
26
|
/**
|
|
25
27
|
* 接口代理
|
|
26
28
|
*/
|
|
@@ -68,19 +70,20 @@ let ProxyApiService = class ProxyApiService extends ApiBaseService_1.ApiBaseServ
|
|
|
68
70
|
try {
|
|
69
71
|
const headers = {
|
|
70
72
|
...ctx.headers,
|
|
71
|
-
host: targetUrl.host,
|
|
72
|
-
'content-length': ctx.get('content-length'),
|
|
73
|
+
host: targetUrl.host, // 设置正确的 host
|
|
73
74
|
};
|
|
75
|
+
delete headers['content-length'];
|
|
74
76
|
this.setRequestHeaders(headers, proxyApiEntity);
|
|
75
|
-
const
|
|
77
|
+
const axiosParams = {
|
|
76
78
|
method: ctx.method,
|
|
77
79
|
url: targetUrl.toString(),
|
|
78
80
|
data: ctx.request.body,
|
|
79
81
|
headers: headers,
|
|
80
82
|
responseType: response_type,
|
|
81
|
-
timeout: proxyApiEntity.timeout_ms || 5 * 60 * 1000,
|
|
83
|
+
timeout: Number(proxyApiEntity.timeout_ms) || 5 * 60 * 1000,
|
|
82
84
|
validateStatus: () => true,
|
|
83
|
-
}
|
|
85
|
+
};
|
|
86
|
+
const response = await (0, axios_1.default)(axiosParams);
|
|
84
87
|
ctx.status = response.status;
|
|
85
88
|
const resHeaders = this.toResHeaders(response.headers);
|
|
86
89
|
ctx.set({
|
|
@@ -225,14 +228,18 @@ let ProxyApiService = class ProxyApiService extends ApiBaseService_1.ApiBaseServ
|
|
|
225
228
|
}
|
|
226
229
|
setRequestHeaders(headers, proxyApiEntity) {
|
|
227
230
|
const ctx = this.ctx;
|
|
231
|
+
// 转发IP
|
|
228
232
|
if (proxyApiEntity.pass_real_ip) {
|
|
229
233
|
headers['x-real-ip'] = ctx.headers['x-real-ip'];
|
|
230
234
|
headers['x-forwarded-for'] = ctx.headers['x-forwarded-for'];
|
|
231
235
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
headers['x-fatcms-
|
|
236
|
+
// 转发用户上下文
|
|
237
|
+
const userContextHeader = this.buildUserContextHeader(proxyApiEntity);
|
|
238
|
+
if (userContextHeader) {
|
|
239
|
+
headers['x-fatcms-usercontext'] = userContextHeader;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
delete headers['x-fatcms-usercontext']; // 只有自己构建的才能被转发。前面传过来的,不要转发。
|
|
236
243
|
}
|
|
237
244
|
if (proxyApiEntity.change_host && proxyApiEntity.change_host.length > 0) {
|
|
238
245
|
headers.host = proxyApiEntity.change_host;
|
|
@@ -241,6 +248,33 @@ let ProxyApiService = class ProxyApiService extends ApiBaseService_1.ApiBaseServ
|
|
|
241
248
|
headers.origin = proxyApiEntity.change_origin;
|
|
242
249
|
}
|
|
243
250
|
}
|
|
251
|
+
buildUserContextHeader(proxyApiEntity) {
|
|
252
|
+
var _a, _b;
|
|
253
|
+
// 传递整个用户上下文
|
|
254
|
+
if (proxyApiEntity.user_context === SystemEntities_1.ProxyUserContextEnum.SESSION_INFO) {
|
|
255
|
+
const isLogin = this.ctx.userSession.isLogin();
|
|
256
|
+
const sessionInfo = this.ctx.userSession.getSessionInfo();
|
|
257
|
+
const workbenchCode = (_a = this.ctx.workbenchInfo) === null || _a === void 0 ? void 0 : _a.workbench_code;
|
|
258
|
+
return (0, base64_1.toBase64)({ ...sessionInfo, isLogin, workbenchCode });
|
|
259
|
+
}
|
|
260
|
+
// 只传递用户基本信息
|
|
261
|
+
if (proxyApiEntity.user_context === SystemEntities_1.ProxyUserContextEnum.BASIC_INFO) {
|
|
262
|
+
const isLogin = this.ctx.userSession.isLogin();
|
|
263
|
+
const sessionInfo = this.ctx.userSession.getSessionInfo();
|
|
264
|
+
const workbenchCode = (_b = this.ctx.workbenchInfo) === null || _b === void 0 ? void 0 : _b.workbench_code;
|
|
265
|
+
const userBasicInfo = { isLogin };
|
|
266
|
+
if (sessionInfo && isLogin) {
|
|
267
|
+
userBasicInfo.loginName = sessionInfo.loginName;
|
|
268
|
+
userBasicInfo.sessionId = sessionInfo.sessionId;
|
|
269
|
+
userBasicInfo.accountId = sessionInfo.accountId;
|
|
270
|
+
userBasicInfo.workbenchCode = sessionInfo.workbenchCode;
|
|
271
|
+
userBasicInfo.accountType = sessionInfo.accountType;
|
|
272
|
+
}
|
|
273
|
+
userBasicInfo.workbenchCode = workbenchCode;
|
|
274
|
+
return (0, base64_1.toBase64)(userBasicInfo);
|
|
275
|
+
}
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
244
278
|
};
|
|
245
279
|
__decorate([
|
|
246
280
|
(0, core_1.Inject)(),
|
package/dist/views/404_app.html
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
<html dir="ltr" lang="zh">
|
|
2
|
-
<head>
|
|
3
|
-
<meta charset="utf-8">
|
|
4
|
-
<meta name="color-scheme" content="light dark">
|
|
5
|
-
<meta name="theme-color" content="#fff">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
7
|
-
<title>无法访问此应用</title>
|
|
8
|
-
<link rel="stylesheet" href="https://cdnjsx.oss-cn-shanghai.aliyuncs.com/styles/chrome-error.css">
|
|
9
|
-
</head>
|
|
10
|
-
<body class="neterror" style="font-family: system-ui,PingFang SC,STHeiti,sans-serif; font-size: 75%">
|
|
11
|
-
|
|
12
|
-
<div id="content">
|
|
13
|
-
<div id="main-frame-error" class="interstitial-wrapper ">
|
|
14
|
-
<div id="main-content">
|
|
15
|
-
<div class="icon icon-generic"></div>
|
|
16
|
-
<div id="main-message">
|
|
17
|
-
<h1><span>无法访问此应用</span></h1>
|
|
18
|
-
<p>此应用存在如下可能的状态导致无法访问:应用不存在、应用已下线、站点不支持</p>
|
|
19
|
-
<p>appCode: <%=appCode%></p>
|
|
20
|
-
<div>
|
|
21
|
-
<p>errorMsg: <%=errorMsg%></p>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
|
|
28
|
-
</body>
|
|
29
|
-
</html>
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
<html dir="ltr" lang="zh">
|
|
2
|
+
<head>
|
|
3
|
+
<meta charset="utf-8">
|
|
4
|
+
<meta name="color-scheme" content="light dark">
|
|
5
|
+
<meta name="theme-color" content="#fff">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
7
|
+
<title>无法访问此应用</title>
|
|
8
|
+
<link rel="stylesheet" href="https://cdnjsx.oss-cn-shanghai.aliyuncs.com/styles/chrome-error.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body class="neterror" style="font-family: system-ui,PingFang SC,STHeiti,sans-serif; font-size: 75%">
|
|
11
|
+
|
|
12
|
+
<div id="content">
|
|
13
|
+
<div id="main-frame-error" class="interstitial-wrapper ">
|
|
14
|
+
<div id="main-content">
|
|
15
|
+
<div class="icon icon-generic"></div>
|
|
16
|
+
<div id="main-message">
|
|
17
|
+
<h1><span>无法访问此应用</span></h1>
|
|
18
|
+
<p>此应用存在如下可能的状态导致无法访问:应用不存在、应用已下线、站点不支持</p>
|
|
19
|
+
<p>appCode: <%=appCode%></p>
|
|
20
|
+
<div>
|
|
21
|
+
<p>errorMsg: <%=errorMsg%></p>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
</body>
|
|
29
|
+
</html>
|
|
30
|
+
|
|
31
|
+
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
<html dir="ltr" lang="zh">
|
|
2
|
-
<head>
|
|
3
|
-
<meta charset="utf-8">
|
|
4
|
-
<meta name="color-scheme" content="light dark">
|
|
5
|
-
<meta name="theme-color" content="#fff">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
7
|
-
<title>无法访问此网站</title>
|
|
8
|
-
<link rel="stylesheet" href="https://cdnjsx.oss-cn-shanghai.aliyuncs.com/styles/chrome-error.css">
|
|
9
|
-
</head>
|
|
10
|
-
<body class="neterror" style="font-family: system-ui,PingFang SC,STHeiti,sans-serif; font-size: 75%">
|
|
11
|
-
|
|
12
|
-
<div id="content">
|
|
13
|
-
<div id="main-frame-error" class="interstitial-wrapper ">
|
|
14
|
-
<div id="main-content">
|
|
15
|
-
<div class="icon icon-generic"></div>
|
|
16
|
-
<div id="main-message">
|
|
17
|
-
<h1>
|
|
18
|
-
<span>无法访问此网站</span>
|
|
19
|
-
</h1>
|
|
20
|
-
<p>检查 <span id="domain_span"><%-host%></span> 中是否有拼写错误。</p>
|
|
21
|
-
<div class="error-code" style="text-transform: none;"><%-errorInfo%></div>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
<script>
|
|
27
|
-
setTimeout(function () {
|
|
28
|
-
document.getElementById('domain_span').innerHTML = location.host
|
|
29
|
-
}, 10)
|
|
30
|
-
</script>
|
|
31
|
-
</body>
|
|
32
|
-
</html>
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
<html dir="ltr" lang="zh">
|
|
2
|
+
<head>
|
|
3
|
+
<meta charset="utf-8">
|
|
4
|
+
<meta name="color-scheme" content="light dark">
|
|
5
|
+
<meta name="theme-color" content="#fff">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
7
|
+
<title>无法访问此网站</title>
|
|
8
|
+
<link rel="stylesheet" href="https://cdnjsx.oss-cn-shanghai.aliyuncs.com/styles/chrome-error.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body class="neterror" style="font-family: system-ui,PingFang SC,STHeiti,sans-serif; font-size: 75%">
|
|
11
|
+
|
|
12
|
+
<div id="content">
|
|
13
|
+
<div id="main-frame-error" class="interstitial-wrapper ">
|
|
14
|
+
<div id="main-content">
|
|
15
|
+
<div class="icon icon-generic"></div>
|
|
16
|
+
<div id="main-message">
|
|
17
|
+
<h1>
|
|
18
|
+
<span>无法访问此网站</span>
|
|
19
|
+
</h1>
|
|
20
|
+
<p>检查 <span id="domain_span"><%-host%></span> 中是否有拼写错误。</p>
|
|
21
|
+
<div class="error-code" style="text-transform: none;"><%-errorInfo%></div>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
<script>
|
|
27
|
+
setTimeout(function () {
|
|
28
|
+
document.getElementById('domain_span').innerHTML = location.host
|
|
29
|
+
}, 10)
|
|
30
|
+
</script>
|
|
31
|
+
</body>
|
|
32
|
+
</html>
|
|
33
|
+
|
|
34
|
+
|