midway-fatcms 0.0.1-beta.30 → 0.0.1-beta.31
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/dist/config/config.default.d.ts +3 -0
- package/dist/config/config.default.js +189 -0
- package/dist/config/seed/aeskey.txt +1 -0
- package/dist/config/utils.d.ts +1 -0
- package/dist/config/utils.js +23 -0
- package/dist/configuration.d.ts +7 -0
- package/dist/configuration.js +113 -0
- package/dist/controller/base/BaseApiController.d.ts +37 -0
- package/dist/controller/base/BaseApiController.js +164 -0
- package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -0
- package/dist/controller/gateway/AnyApiGatewayController.js +55 -0
- package/dist/controller/gateway/AsyncTaskController.d.ts +20 -0
- package/dist/controller/gateway/AsyncTaskController.js +181 -0
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -0
- package/dist/controller/gateway/CrudMtdGatewayController.js +119 -0
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +38 -0
- package/dist/controller/gateway/CrudStdGatewayController.js +137 -0
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -0
- package/dist/controller/gateway/DocGatewayController.js +179 -0
- package/dist/controller/gateway/FileController.d.ts +26 -0
- package/dist/controller/gateway/FileController.js +129 -0
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -0
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -0
- package/dist/controller/gateway/PublicApiController.d.ts +27 -0
- package/dist/controller/gateway/PublicApiController.js +165 -0
- package/dist/controller/gateway/StaticController.d.ts +24 -0
- package/dist/controller/gateway/StaticController.js +288 -0
- package/dist/controller/helpers.controller.d.ts +39 -0
- package/dist/controller/helpers.controller.js +188 -0
- package/dist/controller/home.controller.d.ts +9 -0
- package/dist/controller/home.controller.js +72 -0
- package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -0
- package/dist/controller/manage/AnyApiMangeApi.js +98 -0
- package/dist/controller/manage/AppLogMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppLogMangeApi.js +88 -0
- package/dist/controller/manage/AppMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppMangeApi.js +88 -0
- package/dist/controller/manage/AppPageMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppPageMangeApi.js +87 -0
- package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -0
- package/dist/controller/manage/AppSchemaHistoryApi.js +83 -0
- package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -0
- package/dist/controller/manage/CrudMethodsMangeApi.js +84 -0
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +38 -0
- package/dist/controller/manage/CrudStandardDesignApi.js +342 -0
- package/dist/controller/manage/DataDictManageApi.d.ts +15 -0
- package/dist/controller/manage/DataDictManageApi.js +133 -0
- package/dist/controller/manage/DeployManageApi.d.ts +19 -0
- package/dist/controller/manage/DeployManageApi.js +180 -0
- package/dist/controller/manage/DocLibManageApi.d.ts +10 -0
- package/dist/controller/manage/DocLibManageApi.js +104 -0
- package/dist/controller/manage/DocManageApi.d.ts +11 -0
- package/dist/controller/manage/DocManageApi.js +130 -0
- package/dist/controller/manage/FileManageApi.d.ts +13 -0
- package/dist/controller/manage/FileManageApi.js +77 -0
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -0
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -0
- package/dist/controller/manage/MenuManageApi.d.ts +10 -0
- package/dist/controller/manage/MenuManageApi.js +93 -0
- package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -0
- package/dist/controller/manage/ProxyApiMangeApi.js +87 -0
- package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -0
- package/dist/controller/manage/SuperAdminManageApi.js +153 -0
- package/dist/controller/manage/SysConfigMangeApi.d.ts +11 -0
- package/dist/controller/manage/SysConfigMangeApi.js +126 -0
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -0
- package/dist/controller/manage/SystemInfoManageApi.js +72 -0
- package/dist/controller/manage/UserAccountManageApi.d.ts +14 -0
- package/dist/controller/manage/UserAccountManageApi.js +129 -0
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -0
- package/dist/controller/manage/WorkbenchMangeApi.js +103 -0
- package/dist/controller/myinfo/AuthController.d.ts +33 -0
- package/dist/controller/myinfo/AuthController.js +136 -0
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -0
- package/dist/controller/myinfo/MyInfoController.js +51 -0
- package/dist/controller/render/AppRenderController.d.ts +11 -0
- package/dist/controller/render/AppRenderController.js +92 -0
- package/dist/controller/test.controller.d.ts +8 -0
- package/dist/controller/test.controller.js +51 -0
- package/dist/filter/default.filter.d.ts +7 -0
- package/dist/filter/default.filter.js +23 -0
- package/dist/filter/notfound.filter.d.ts +5 -0
- package/dist/filter/notfound.filter.js +20 -0
- package/dist/index.d.ts +102 -0
- package/dist/index.js +120 -0
- package/dist/interface.d.ts +27 -0
- package/dist/interface.js +3 -0
- package/dist/libs/crud-pro/CrudPro.d.ts +37 -0
- package/dist/libs/crud-pro/CrudPro.js +136 -0
- package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -0
- package/dist/libs/crud-pro/defaultConfigs.js +15 -0
- package/dist/libs/crud-pro/exceptions.d.ts +104 -0
- package/dist/libs/crud-pro/exceptions.js +117 -0
- package/dist/libs/crud-pro/interfaces.d.ts +163 -0
- package/dist/libs/crud-pro/interfaces.js +12 -0
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +49 -0
- package/dist/libs/crud-pro/models/ExecuteContext.js +79 -0
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -0
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -0
- package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -0
- package/dist/libs/crud-pro/models/FuncContext.js +6 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -0
- package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -0
- package/dist/libs/crud-pro/models/RequestModel.js +113 -0
- package/dist/libs/crud-pro/models/ResModel.d.ts +16 -0
- package/dist/libs/crud-pro/models/ResModel.js +2 -0
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -0
- package/dist/libs/crud-pro/models/ServiceHub.js +2 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +22 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -0
- package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -0
- package/dist/libs/crud-pro/models/SqlSegArg.js +12 -0
- package/dist/libs/crud-pro/models/Transaction.d.ts +29 -0
- package/dist/libs/crud-pro/models/Transaction.js +67 -0
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +28 -0
- package/dist/libs/crud-pro/models/TransactionMySQL.js +76 -0
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +28 -0
- package/dist/libs/crud-pro/models/TransactionPostgres.js +85 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +34 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +92 -0
- package/dist/libs/crud-pro/models/keys.d.ts +106 -0
- package/dist/libs/crud-pro/models/keys.js +149 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +112 -0
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -0
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +225 -0
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -0
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -0
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -0
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +340 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -0
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -0
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +334 -0
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -0
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +90 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +9 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +78 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -0
- package/dist/libs/crud-pro/sql.txt +120 -0
- package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -0
- package/dist/libs/crud-pro/utils/CompareUtils.js +25 -0
- package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -0
- package/dist/libs/crud-pro/utils/DatabaseName.js +50 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -0
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -0
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -0
- package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -0
- package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -0
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -0
- package/dist/libs/crud-pro/utils/MixinUtils.js +255 -0
- package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -0
- package/dist/libs/crud-pro/utils/ModelUtils.js +49 -0
- package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -0
- package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -0
- package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -0
- package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -0
- package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -0
- package/dist/libs/crud-pro/utils/TypeUtils.js +166 -0
- package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -0
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -0
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -0
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +21 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +11 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +11 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -0
- package/dist/libs/global-config/global-config.d.ts +45 -0
- package/dist/libs/global-config/global-config.js +33 -0
- package/dist/libs/utils/common-dto.d.ts +18 -0
- package/dist/libs/utils/common-dto.js +40 -0
- package/dist/libs/utils/crypto-utils.d.ts +3 -0
- package/dist/libs/utils/crypto-utils.js +46 -0
- package/dist/libs/utils/errorToString.d.ts +2 -0
- package/dist/libs/utils/errorToString.js +57 -0
- package/dist/libs/utils/fatcms-request.d.ts +30 -0
- package/dist/libs/utils/fatcms-request.js +104 -0
- package/dist/libs/utils/functions.d.ts +5 -0
- package/dist/libs/utils/functions.js +68 -0
- package/dist/libs/utils/ordernum-utils.d.ts +2 -0
- package/dist/libs/utils/ordernum-utils.js +13 -0
- package/dist/libs/utils/parseConfig.d.ts +7 -0
- package/dist/libs/utils/parseConfig.js +44 -0
- package/dist/libs/utils/parseCreateSql.d.ts +5 -0
- package/dist/libs/utils/parseCreateSql.js +86 -0
- package/dist/libs/utils/render-utils.d.ts +28 -0
- package/dist/libs/utils/render-utils.js +135 -0
- package/dist/middleware/forbidden.middleware.d.ts +10 -0
- package/dist/middleware/forbidden.middleware.js +54 -0
- package/dist/middleware/global.middleware.d.ts +10 -0
- package/dist/middleware/global.middleware.js +266 -0
- package/dist/middleware/permission.middleware.d.ts +18 -0
- package/dist/middleware/permission.middleware.js +74 -0
- package/dist/middleware/tx.middleware.d.ts +9 -0
- package/dist/middleware/tx.middleware.js +40 -0
- package/dist/models/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 +98 -0
- package/dist/models/SystemEntities.js +2 -0
- package/dist/models/SystemPerm.d.ts +95 -0
- package/dist/models/SystemPerm.js +100 -0
- package/dist/models/SystemTables.d.ts +25 -0
- package/dist/models/SystemTables.js +28 -0
- package/dist/models/bizmodels.d.ts +97 -0
- package/dist/models/bizmodels.js +39 -0
- package/dist/models/contextLogger.d.ts +25 -0
- package/dist/models/contextLogger.js +112 -0
- package/dist/models/devops.d.ts +12 -0
- package/dist/models/devops.js +19 -0
- package/dist/models/userSession.d.ts +61 -0
- package/dist/models/userSession.js +165 -0
- package/dist/schedule/anonymousContext.d.ts +14 -0
- package/dist/schedule/anonymousContext.js +59 -0
- package/dist/schedule/index.d.ts +4 -0
- package/dist/schedule/index.js +10 -0
- 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.d.ts +70 -0
- package/dist/service/AuthService.js +251 -0
- package/dist/service/EnumInfoService.d.ts +30 -0
- package/dist/service/EnumInfoService.js +127 -0
- package/dist/service/FileCenterService.d.ts +43 -0
- package/dist/service/FileCenterService.js +351 -0
- package/dist/service/SysConfigService.d.ts +7 -0
- package/dist/service/SysConfigService.js +47 -0
- package/dist/service/UserAccountService.d.ts +23 -0
- package/dist/service/UserAccountService.js +107 -0
- package/dist/service/UserSessionService.d.ts +37 -0
- package/dist/service/UserSessionService.js +156 -0
- package/dist/service/VisitStatService.d.ts +14 -0
- package/dist/service/VisitStatService.js +158 -0
- package/dist/service/WorkbenchService.d.ts +52 -0
- package/dist/service/WorkbenchService.js +202 -0
- package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -0
- package/dist/service/anyapi/AnyApiSandboxService.js +122 -0
- package/dist/service/anyapi/AnyApiService.d.ts +27 -0
- package/dist/service/anyapi/AnyApiService.js +181 -0
- 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/ApiBaseService.d.ts +15 -0
- package/dist/service/base/ApiBaseService.js +50 -0
- package/dist/service/base/ApiRateLimiter.d.ts +10 -0
- package/dist/service/base/ApiRateLimiter.js +51 -0
- package/dist/service/base/BaseService.d.ts +41 -0
- package/dist/service/base/BaseService.js +101 -0
- package/dist/service/base/RedisCacheService.d.ts +20 -0
- package/dist/service/base/RedisCacheService.js +57 -0
- package/dist/service/crudstd/CrudStdActionService.d.ts +17 -0
- package/dist/service/crudstd/CrudStdActionService.js +32 -0
- package/dist/service/crudstd/CrudStdConstant.d.ts +58 -0
- package/dist/service/crudstd/CrudStdConstant.js +64 -0
- package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -0
- package/dist/service/crudstd/CrudStdRelationService.js +85 -0
- package/dist/service/crudstd/CrudStdService.d.ts +57 -0
- package/dist/service/crudstd/CrudStdService.js +239 -0
- package/dist/service/curd/CrudProQuick.d.ts +44 -0
- package/dist/service/curd/CrudProQuick.js +147 -0
- package/dist/service/curd/CurdMixByAccountService.d.ts +9 -0
- package/dist/service/curd/CurdMixByAccountService.js +93 -0
- package/dist/service/curd/CurdMixByDictService.d.ts +13 -0
- package/dist/service/curd/CurdMixByDictService.js +114 -0
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +31 -0
- package/dist/service/curd/CurdMixByLinkToCustomService.js +203 -0
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +9 -0
- package/dist/service/curd/CurdMixBySysConfigService.js +80 -0
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +10 -0
- package/dist/service/curd/CurdMixByWorkbenchService.js +78 -0
- package/dist/service/curd/CurdMixService.d.ts +27 -0
- package/dist/service/curd/CurdMixService.js +100 -0
- package/dist/service/curd/CurdMixUtils.d.ts +51 -0
- package/dist/service/curd/CurdMixUtils.js +275 -0
- package/dist/service/curd/CurdProService.d.ts +32 -0
- package/dist/service/curd/CurdProService.js +210 -0
- package/dist/service/curd/fixCfgModel.d.ts +3 -0
- package/dist/service/curd/fixCfgModel.js +107 -0
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -0
- package/dist/service/proxyapi/ProxyApiLoadService.js +167 -0
- package/dist/service/proxyapi/ProxyApiService.d.ts +60 -0
- package/dist/service/proxyapi/ProxyApiService.js +260 -0
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -0
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -0
- package/dist/service/proxyapi/RouteHandler.d.ts +5 -0
- package/dist/service/proxyapi/RouteHandler.js +9 -0
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -0
- package/dist/service/proxyapi/RouteTrie.js +63 -0
- package/dist/service/proxyapi/WeightedRandom.d.ts +9 -0
- package/dist/service/proxyapi/WeightedRandom.js +31 -0
- package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -0
- package/dist/service/proxyapi/WeightedRoundRobin.js +32 -0
- package/dist/views/404_app.html +31 -0
- package/dist/views/404_workbench.html +34 -0
- package/dist/views/static/favicon.ico +0 -0
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { CurdProService } from './CurdProService';
|
|
3
|
+
import { HandleExecuteContextType, IExecuteContextHandler } from '../../libs/crud-pro/models/ExecuteContext';
|
|
4
|
+
import { RedisCacheService } from '../base/RedisCacheService';
|
|
5
|
+
export declare class CurdMixByLinkToCustomService implements IExecuteContextHandler {
|
|
6
|
+
protected ctx: Context;
|
|
7
|
+
protected curdProService: CurdProService;
|
|
8
|
+
protected redisCacheService: RedisCacheService;
|
|
9
|
+
handleExecuteContextPrepare(executeContext: HandleExecuteContextType): Promise<void>;
|
|
10
|
+
handleExecuteContext(executeContext: HandleExecuteContextType): Promise<void>;
|
|
11
|
+
queryInfoByLinkToCustom(code: string): Promise<Map<string, any>>;
|
|
12
|
+
/**
|
|
13
|
+
* code形如:mysql_________fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
14
|
+
* code形如:fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
15
|
+
* code形如:fatcms~~~sys_perm_role~~~id,*
|
|
16
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
17
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
18
|
+
* 【数据库】~~~【表名】~~~【value】,【label】,【style】
|
|
19
|
+
* @param code
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
private queryInfoByLinkToCustomImpl;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @param code
|
|
26
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
27
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
28
|
+
*/
|
|
29
|
+
private queryInfoByLinkToCustomByCrudMethod;
|
|
30
|
+
private loadInfoByLinkToCustomMap;
|
|
31
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CurdMixByLinkToCustomService = void 0;
|
|
13
|
+
const core_1 = require("@midwayjs/core");
|
|
14
|
+
const _ = require("lodash");
|
|
15
|
+
const CurdProService_1 = require("./CurdProService");
|
|
16
|
+
const CurdMixUtils_1 = require("./CurdMixUtils");
|
|
17
|
+
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
18
|
+
const devops_1 = require("../../models/devops");
|
|
19
|
+
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
20
|
+
const RedisCacheService_1 = require("../base/RedisCacheService");
|
|
21
|
+
const DatabaseName_1 = require("../../libs/crud-pro/utils/DatabaseName");
|
|
22
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
23
|
+
const RedisKeys_1 = require("../../models/RedisKeys");
|
|
24
|
+
const linkToCustomMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.linkToCustom);
|
|
25
|
+
const TMP_CTX_KEY = _.uniqueId('CurdMixByLinkToCustomService');
|
|
26
|
+
function toMapObject(rows, fieldsArr) {
|
|
27
|
+
const valueKey = fieldsArr[0];
|
|
28
|
+
const labelKey = fieldsArr[1];
|
|
29
|
+
const isObjectMode = fieldsArr.length > 2 || labelKey === '*';
|
|
30
|
+
const map = new Map();
|
|
31
|
+
for (let i = 0; i < rows.length; i++) {
|
|
32
|
+
const rowObj = rows[i];
|
|
33
|
+
const value = rowObj[valueKey];
|
|
34
|
+
if (typeof value !== 'undefined') {
|
|
35
|
+
const valueStr = '' + value;
|
|
36
|
+
if (isObjectMode) {
|
|
37
|
+
map.set(valueStr, rowObj);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
const label = rowObj[labelKey];
|
|
41
|
+
if (label) {
|
|
42
|
+
map.set(valueStr, label);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return map;
|
|
48
|
+
}
|
|
49
|
+
let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
|
|
50
|
+
async handleExecuteContextPrepare(executeContext) {
|
|
51
|
+
const relations = linkToCustomMixUtils.pickColumnRelations(executeContext);
|
|
52
|
+
if (!relations || relations.length === 0) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
executeContext[TMP_CTX_KEY] = await this.loadInfoByLinkToCustomMap(relations);
|
|
56
|
+
}
|
|
57
|
+
async handleExecuteContext(executeContext) {
|
|
58
|
+
const dataInfoMap = executeContext[TMP_CTX_KEY];
|
|
59
|
+
if (!dataInfoMap || dataInfoMap.size === 0) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
linkToCustomMixUtils.forEachRowAndColumnsRelation(executeContext, (row, columnRelation) => {
|
|
63
|
+
const relatedCode = columnRelation.relatedCode;
|
|
64
|
+
const dataMap = dataInfoMap.get(relatedCode);
|
|
65
|
+
if (dataMap) {
|
|
66
|
+
const sourceColumn = columnRelation.sourceColumn;
|
|
67
|
+
const targetColumns = columnRelation.targetColumns;
|
|
68
|
+
if (!Array.isArray(targetColumns) || targetColumns.length === 0) {
|
|
69
|
+
columnRelation.targetColumns = [
|
|
70
|
+
{
|
|
71
|
+
from: '*',
|
|
72
|
+
to: `${sourceColumn}_info[$ARRAY_INDEX]`,
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
// this.ctx.logger.info("CurdMixByLinkToCustomService ==> dataMap", dataMap)
|
|
77
|
+
linkToCustomMixUtils.copyColumnRelationToRowNoRelatedCode(row, dataMap, columnRelation);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async queryInfoByLinkToCustom(code) {
|
|
82
|
+
const cacheKey = RedisKeys_1.RedisKeys.LINK_TO_CUSTOM_PREFIX + code;
|
|
83
|
+
let values;
|
|
84
|
+
const expireSecond = 2 * 60; // 2分钟
|
|
85
|
+
const enumMap = await this.redisCacheService.getJsonObject(cacheKey);
|
|
86
|
+
if (!enumMap || Object.keys(enumMap).length === 0) {
|
|
87
|
+
values = await this.queryInfoByLinkToCustomImpl(code);
|
|
88
|
+
await this.redisCacheService.setJsonObject(cacheKey, values, expireSecond);
|
|
89
|
+
}
|
|
90
|
+
return values;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* code形如:mysql_________fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
94
|
+
* code形如:fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
95
|
+
* code形如:fatcms~~~sys_perm_role~~~id,*
|
|
96
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
97
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
98
|
+
* 【数据库】~~~【表名】~~~【value】,【label】,【style】
|
|
99
|
+
* @param code
|
|
100
|
+
* @private
|
|
101
|
+
*/
|
|
102
|
+
async queryInfoByLinkToCustomImpl(code) {
|
|
103
|
+
if (code.startsWith('GET_BY_CRUD_METHOD')) {
|
|
104
|
+
return this.queryInfoByLinkToCustomByCrudMethod(code);
|
|
105
|
+
}
|
|
106
|
+
const arr = code
|
|
107
|
+
.split('~~~')
|
|
108
|
+
.map(s => s.trim())
|
|
109
|
+
.filter(Boolean);
|
|
110
|
+
if (arr.length !== 3) {
|
|
111
|
+
throw new devops_1.BizException('linkToCustom枚举值查询字符串,必须符合固定格式', exceptions_1.Exceptions.CFG_ERROR);
|
|
112
|
+
}
|
|
113
|
+
const [sqlDatabase, sqlTable, fields] = arr;
|
|
114
|
+
const { dbType, dbName } = (0, DatabaseName_1.parseDatabaseName)(sqlDatabase);
|
|
115
|
+
const fieldsArr = fields
|
|
116
|
+
.split(',')
|
|
117
|
+
.map(s => s.trim())
|
|
118
|
+
.filter(Boolean);
|
|
119
|
+
if (fieldsArr.length < 2) {
|
|
120
|
+
throw new devops_1.BizException('linkToCustom枚举值查询字符串,fields字段必须符合固定格式', exceptions_1.Exceptions.CFG_ERROR);
|
|
121
|
+
}
|
|
122
|
+
const labelKey = fieldsArr[1];
|
|
123
|
+
const res1 = await this.curdProService.executeCrudByCfg({
|
|
124
|
+
condition: {},
|
|
125
|
+
columns: labelKey === '*' ? null : fields,
|
|
126
|
+
limit: 4000,
|
|
127
|
+
offset: 0,
|
|
128
|
+
}, {
|
|
129
|
+
sqlTable,
|
|
130
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
131
|
+
sqlDatabase: dbName,
|
|
132
|
+
sqlDbType: dbType,
|
|
133
|
+
maxLimit: 4000,
|
|
134
|
+
});
|
|
135
|
+
const rows = res1.getResRows();
|
|
136
|
+
const map = toMapObject(rows, fieldsArr);
|
|
137
|
+
return map;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
*
|
|
141
|
+
* @param code
|
|
142
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
143
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
144
|
+
*/
|
|
145
|
+
async queryInfoByLinkToCustomByCrudMethod(code) {
|
|
146
|
+
const arr = code
|
|
147
|
+
.split('~~~')
|
|
148
|
+
.map(s => s.trim())
|
|
149
|
+
.filter(Boolean);
|
|
150
|
+
if (arr.length !== 3) {
|
|
151
|
+
throw new devops_1.BizException('linkToCustom枚举值查询字符串,必须符合固定格式。', exceptions_1.Exceptions.CFG_ERROR);
|
|
152
|
+
}
|
|
153
|
+
const [prefix, methodCode, fields] = arr;
|
|
154
|
+
const fieldsArr = fields
|
|
155
|
+
.split(',')
|
|
156
|
+
.map(s => s.trim())
|
|
157
|
+
.filter(Boolean);
|
|
158
|
+
if (fieldsArr.length < 2) {
|
|
159
|
+
throw new devops_1.BizException(`linkToCustom枚举值查询字符串,fields字段必须符合固定格式。${prefix}`, exceptions_1.Exceptions.CFG_ERROR);
|
|
160
|
+
}
|
|
161
|
+
const methodInfo = (await this.curdProService.getCachedCfgByMethod(methodCode));
|
|
162
|
+
if (!methodInfo || methodInfo.status !== 1) {
|
|
163
|
+
throw new Error('接口不存在或已下线: ' + methodCode);
|
|
164
|
+
}
|
|
165
|
+
const cfgModel = methodInfo;
|
|
166
|
+
const { dbType, dbName } = (0, DatabaseName_1.parseDatabaseName)(cfgModel.sqlDatabase);
|
|
167
|
+
cfgModel.sqlDatabase = dbName;
|
|
168
|
+
cfgModel.sqlDbType = dbType;
|
|
169
|
+
const reqJson = {};
|
|
170
|
+
await global_config_1.GLOBAL_STATIC_CONFIG.getConfig().bizUpdateCfgModelForCrudMtd(reqJson, cfgModel, methodInfo, this.ctx);
|
|
171
|
+
const exeCtx = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
172
|
+
const rows = exeCtx.getResRows();
|
|
173
|
+
const map = toMapObject(rows, fieldsArr);
|
|
174
|
+
return map;
|
|
175
|
+
}
|
|
176
|
+
async loadInfoByLinkToCustomMap(relations) {
|
|
177
|
+
const bigMap = new Map();
|
|
178
|
+
for (let i = 0; i < relations.length; i++) {
|
|
179
|
+
const relation = relations[i];
|
|
180
|
+
const code = relation.relatedCode || '';
|
|
181
|
+
const codeTrim = code.trim();
|
|
182
|
+
const map = await this.queryInfoByLinkToCustom(codeTrim);
|
|
183
|
+
bigMap.set(codeTrim, map);
|
|
184
|
+
}
|
|
185
|
+
return bigMap;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
__decorate([
|
|
189
|
+
(0, core_1.Inject)(),
|
|
190
|
+
__metadata("design:type", Object)
|
|
191
|
+
], CurdMixByLinkToCustomService.prototype, "ctx", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
(0, core_1.Inject)(),
|
|
194
|
+
__metadata("design:type", CurdProService_1.CurdProService)
|
|
195
|
+
], CurdMixByLinkToCustomService.prototype, "curdProService", void 0);
|
|
196
|
+
__decorate([
|
|
197
|
+
(0, core_1.Inject)(),
|
|
198
|
+
__metadata("design:type", RedisCacheService_1.RedisCacheService)
|
|
199
|
+
], CurdMixByLinkToCustomService.prototype, "redisCacheService", void 0);
|
|
200
|
+
CurdMixByLinkToCustomService = __decorate([
|
|
201
|
+
(0, core_1.Provide)()
|
|
202
|
+
], CurdMixByLinkToCustomService);
|
|
203
|
+
exports.CurdMixByLinkToCustomService = CurdMixByLinkToCustomService;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { CurdProService } from './CurdProService';
|
|
3
|
+
import { HandleExecuteContextType, IExecuteContextHandler } from '../../libs/crud-pro/models/ExecuteContext';
|
|
4
|
+
export declare class CurdMixBySysConfigService implements IExecuteContextHandler {
|
|
5
|
+
ctx: Context;
|
|
6
|
+
protected curdProService: CurdProService;
|
|
7
|
+
handleExecuteContextPrepare(executeContext: HandleExecuteContextType): Promise<void>;
|
|
8
|
+
handleExecuteContext(executeContext: HandleExecuteContextType): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CurdMixBySysConfigService = void 0;
|
|
13
|
+
const core_1 = require("@midwayjs/core");
|
|
14
|
+
const CurdProService_1 = require("./CurdProService");
|
|
15
|
+
const CurdMixUtils_1 = require("./CurdMixUtils");
|
|
16
|
+
const _ = require("lodash");
|
|
17
|
+
const SystemTables_1 = require("../../models/SystemTables");
|
|
18
|
+
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
19
|
+
const MultiKeyMap_1 = require("../../libs/crud-pro/utils/MultiKeyMap");
|
|
20
|
+
const parseConfig_1 = require("../../libs/utils/parseConfig");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
22
|
+
const dictMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.sysCfgEnum);
|
|
23
|
+
const TMP_CTX_KEY = _.uniqueId('CurdMixBySysConfigService');
|
|
24
|
+
let CurdMixBySysConfigService = class CurdMixBySysConfigService {
|
|
25
|
+
async handleExecuteContextPrepare(executeContext) {
|
|
26
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
27
|
+
const codes = dictMixUtils.pickColumnRelationCodes(executeContext);
|
|
28
|
+
if (!codes || codes.length === 0) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const res1 = await this.curdProService.executeCrudByCfg({
|
|
32
|
+
condition: { config_code: { $in: codes } },
|
|
33
|
+
}, {
|
|
34
|
+
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
35
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
36
|
+
sqlDatabase: SystemDbName,
|
|
37
|
+
sqlDbType: SystemDbType,
|
|
38
|
+
});
|
|
39
|
+
const rows = res1.getResRows();
|
|
40
|
+
const multiKeyMap = new MultiKeyMap_1.MultiKeyMap();
|
|
41
|
+
if (Array.isArray(rows)) {
|
|
42
|
+
for (let i = 0; i < rows.length; i++) {
|
|
43
|
+
const row = rows[i];
|
|
44
|
+
const { config_code } = row;
|
|
45
|
+
const config_content_rows = (0, parseConfig_1.parseConfigContentToEnumInfo)(row); // 数组元素必须有value字段
|
|
46
|
+
multiKeyMap.addRowsValue1(config_content_rows, config_code, 'value');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
executeContext[TMP_CTX_KEY] = multiKeyMap;
|
|
50
|
+
}
|
|
51
|
+
async handleExecuteContext(executeContext) {
|
|
52
|
+
const multiKeyMap = executeContext[TMP_CTX_KEY];
|
|
53
|
+
if (!multiKeyMap || multiKeyMap.isEmpty()) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
dictMixUtils.forEachRowAndColumnsRelation(executeContext, (row, columnRelation) => {
|
|
57
|
+
const sourceColumn = columnRelation.sourceColumn;
|
|
58
|
+
const targetColumns = columnRelation.targetColumns;
|
|
59
|
+
if (!Array.isArray(targetColumns) || targetColumns.length === 0) {
|
|
60
|
+
columnRelation.targetColumns = [
|
|
61
|
+
{ from: 'label', to: `${sourceColumn}_info.label` },
|
|
62
|
+
{ from: 'style', to: `${sourceColumn}_info.style` },
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
dictMixUtils.copyColumnRelationToRow(row, multiKeyMap, columnRelation);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, core_1.Inject)(),
|
|
71
|
+
__metadata("design:type", Object)
|
|
72
|
+
], CurdMixBySysConfigService.prototype, "ctx", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, core_1.Inject)(),
|
|
75
|
+
__metadata("design:type", CurdProService_1.CurdProService)
|
|
76
|
+
], CurdMixBySysConfigService.prototype, "curdProService", void 0);
|
|
77
|
+
CurdMixBySysConfigService = __decorate([
|
|
78
|
+
(0, core_1.Provide)()
|
|
79
|
+
], CurdMixBySysConfigService);
|
|
80
|
+
exports.CurdMixBySysConfigService = CurdMixBySysConfigService;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { CurdProService } from './CurdProService';
|
|
3
|
+
import { HandleExecuteContextType, IExecuteContextHandler } from '../../libs/crud-pro/models/ExecuteContext';
|
|
4
|
+
export declare class CurdMixByWorkbenchService implements IExecuteContextHandler {
|
|
5
|
+
ctx: Context;
|
|
6
|
+
protected curdProService: CurdProService;
|
|
7
|
+
private loadWorkbenchListMap;
|
|
8
|
+
handleExecuteContextPrepare(executeContext: HandleExecuteContextType): Promise<void>;
|
|
9
|
+
handleExecuteContext(executeContext: HandleExecuteContextType): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CurdMixByWorkbenchService = void 0;
|
|
13
|
+
const core_1 = require("@midwayjs/core");
|
|
14
|
+
const _ = require("lodash");
|
|
15
|
+
const lru_cache_1 = require("lru-cache");
|
|
16
|
+
const CurdProService_1 = require("./CurdProService");
|
|
17
|
+
const CurdMixUtils_1 = require("./CurdMixUtils");
|
|
18
|
+
const SystemTables_1 = require("../../models/SystemTables");
|
|
19
|
+
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
20
|
+
const MixinUtils_1 = require("../../libs/crud-pro/utils/MixinUtils");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
22
|
+
const lruCache = new lru_cache_1.LRUCache({
|
|
23
|
+
max: 500,
|
|
24
|
+
ttl: 1000 * 60 * 5,
|
|
25
|
+
ttlAutopurge: true,
|
|
26
|
+
});
|
|
27
|
+
const workbenchMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.workbenchBasic);
|
|
28
|
+
const TMP_CTX_KEY = _.uniqueId('CurdMixByWorkbenchService');
|
|
29
|
+
let CurdMixByWorkbenchService = class CurdMixByWorkbenchService {
|
|
30
|
+
async loadWorkbenchListMap() {
|
|
31
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
32
|
+
let workbenchListMap = lruCache.get('workbenchListMap');
|
|
33
|
+
if (!workbenchListMap) {
|
|
34
|
+
const reqJson = {
|
|
35
|
+
columns: 'workbench_code,workbench_name,workbench_domain',
|
|
36
|
+
condition: {},
|
|
37
|
+
};
|
|
38
|
+
const res = await this.curdProService.executeCrudByCfg(reqJson, {
|
|
39
|
+
sqlTable: SystemTables_1.SystemTables.sys_workbench,
|
|
40
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
41
|
+
sqlDatabase: SystemDbName,
|
|
42
|
+
sqlDbType: SystemDbType,
|
|
43
|
+
});
|
|
44
|
+
const workbenchList = res.getResRows();
|
|
45
|
+
workbenchListMap = MixinUtils_1.MixinUtils.toNewMap(workbenchList, (obj) => obj.workbench_code);
|
|
46
|
+
lruCache.set('workbenchListMap', workbenchListMap);
|
|
47
|
+
}
|
|
48
|
+
return workbenchListMap;
|
|
49
|
+
}
|
|
50
|
+
async handleExecuteContextPrepare(executeContext) {
|
|
51
|
+
const relations = workbenchMixUtils.pickColumnRelations(executeContext);
|
|
52
|
+
if (!relations || relations.length === 0) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
executeContext[TMP_CTX_KEY] = await this.loadWorkbenchListMap();
|
|
56
|
+
}
|
|
57
|
+
async handleExecuteContext(executeContext) {
|
|
58
|
+
const userInfoMap = executeContext[TMP_CTX_KEY];
|
|
59
|
+
if (!userInfoMap || userInfoMap.size === 0) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
workbenchMixUtils.forEachRowAndColumnsRelation(executeContext, (row, columnRelation) => {
|
|
63
|
+
workbenchMixUtils.copyColumnRelationToRowNoRelatedCode(row, userInfoMap, columnRelation);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, core_1.Inject)(),
|
|
69
|
+
__metadata("design:type", Object)
|
|
70
|
+
], CurdMixByWorkbenchService.prototype, "ctx", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, core_1.Inject)(),
|
|
73
|
+
__metadata("design:type", CurdProService_1.CurdProService)
|
|
74
|
+
], CurdMixByWorkbenchService.prototype, "curdProService", void 0);
|
|
75
|
+
CurdMixByWorkbenchService = __decorate([
|
|
76
|
+
(0, core_1.Provide)()
|
|
77
|
+
], CurdMixByWorkbenchService);
|
|
78
|
+
exports.CurdMixByWorkbenchService = CurdMixByWorkbenchService;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ColumnRelation, IRequestCfgModel, IRequestModel, ISqlCfgModel } from '../../libs/crud-pro/interfaces';
|
|
2
|
+
import { IRequestCfgModel2 } from '../../models/bizmodels';
|
|
3
|
+
import { SqlDbType } from '../../libs/crud-pro/models/keys';
|
|
4
|
+
export interface ILinkColumnRelationParam {
|
|
5
|
+
columnsRelations: ColumnRelation[];
|
|
6
|
+
}
|
|
7
|
+
export declare class CurdMixService {
|
|
8
|
+
private curdProService;
|
|
9
|
+
private curdMixByDictService;
|
|
10
|
+
private curdMixBySysConfigService;
|
|
11
|
+
private curdMixByAccountService;
|
|
12
|
+
private curdMixByWorkbenchService;
|
|
13
|
+
private curdMixByLinkToCustomService;
|
|
14
|
+
private prepare;
|
|
15
|
+
executeCrudByCfg(reqJson: IRequestModel, cfgModel: IRequestCfgModel2): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
16
|
+
getBbUtil(sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string): import("./CrudProQuick").CrudProQuick;
|
|
17
|
+
executeSQL(sqlCfgModel: ISqlCfgModel): Promise<any>;
|
|
18
|
+
executeCrud(reqJson: IRequestModel): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
19
|
+
getCachedCfgByMethod(method: string): Promise<IRequestCfgModel>;
|
|
20
|
+
/**
|
|
21
|
+
* 根据配置的关联关系,直接关联数据
|
|
22
|
+
* @param rows
|
|
23
|
+
* @param param
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
linkColumnRelationDatas(rows: any[], param: ILinkColumnRelationParam): Promise<void>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CurdMixService = void 0;
|
|
13
|
+
const core_1 = require("@midwayjs/core");
|
|
14
|
+
const CurdProService_1 = require("./CurdProService");
|
|
15
|
+
const CurdMixByDictService_1 = require("./CurdMixByDictService");
|
|
16
|
+
const CurdMixBySysConfigService_1 = require("./CurdMixBySysConfigService");
|
|
17
|
+
const CurdMixByAccountService_1 = require("./CurdMixByAccountService");
|
|
18
|
+
const CurdMixUtils_1 = require("./CurdMixUtils");
|
|
19
|
+
const CurdMixByWorkbenchService_1 = require("./CurdMixByWorkbenchService");
|
|
20
|
+
const CurdMixByLinkToCustomService_1 = require("./CurdMixByLinkToCustomService");
|
|
21
|
+
let CurdMixService = class CurdMixService {
|
|
22
|
+
prepare() {
|
|
23
|
+
this.curdProService.setResponseCfgHandlers(CurdMixUtils_1.RelatedType.dict, this.curdMixByDictService);
|
|
24
|
+
this.curdProService.setResponseCfgHandlers(CurdMixUtils_1.RelatedType.sysCfgEnum, this.curdMixBySysConfigService);
|
|
25
|
+
this.curdProService.setResponseCfgHandlers(CurdMixUtils_1.RelatedType.accountBasic, this.curdMixByAccountService);
|
|
26
|
+
this.curdProService.setResponseCfgHandlers(CurdMixUtils_1.RelatedType.workbenchBasic, this.curdMixByWorkbenchService);
|
|
27
|
+
this.curdProService.setResponseCfgHandlers(CurdMixUtils_1.RelatedType.linkToCustom, this.curdMixByLinkToCustomService);
|
|
28
|
+
}
|
|
29
|
+
async executeCrudByCfg(reqJson, cfgModel) {
|
|
30
|
+
this.prepare();
|
|
31
|
+
return this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
32
|
+
}
|
|
33
|
+
getBbUtil(sqlDatabase, sqlDbType, sqlTable) {
|
|
34
|
+
this.prepare();
|
|
35
|
+
return this.curdProService.getBbUtil(sqlDatabase, sqlDbType, sqlTable);
|
|
36
|
+
}
|
|
37
|
+
async executeSQL(sqlCfgModel) {
|
|
38
|
+
this.prepare();
|
|
39
|
+
return this.curdProService.executeSQL(sqlCfgModel);
|
|
40
|
+
}
|
|
41
|
+
async executeCrud(reqJson) {
|
|
42
|
+
this.prepare();
|
|
43
|
+
return this.curdProService.executeCrud(reqJson);
|
|
44
|
+
}
|
|
45
|
+
async getCachedCfgByMethod(method) {
|
|
46
|
+
return this.curdProService.getCachedCfgByMethod(method);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 根据配置的关联关系,直接关联数据
|
|
50
|
+
* @param rows
|
|
51
|
+
* @param param
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
async linkColumnRelationDatas(rows, param) {
|
|
55
|
+
if (!Array.isArray(rows) || rows.length === 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.prepare();
|
|
59
|
+
const exeCtx = {
|
|
60
|
+
rows,
|
|
61
|
+
columnsRelation: param.columnsRelations,
|
|
62
|
+
isCustomContext: true,
|
|
63
|
+
};
|
|
64
|
+
const responseCfgHandlers = this.curdProService.getResponseCfgHandlers();
|
|
65
|
+
const handlers = Object.values(responseCfgHandlers);
|
|
66
|
+
for (let i = 0; i < handlers.length; i++) {
|
|
67
|
+
const handler = handlers[i];
|
|
68
|
+
await handler.handleExecuteContextPrepare(exeCtx);
|
|
69
|
+
await handler.handleExecuteContext(exeCtx);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, core_1.Inject)(),
|
|
75
|
+
__metadata("design:type", CurdProService_1.CurdProService)
|
|
76
|
+
], CurdMixService.prototype, "curdProService", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, core_1.Inject)(),
|
|
79
|
+
__metadata("design:type", CurdMixByDictService_1.CurdMixByDictService)
|
|
80
|
+
], CurdMixService.prototype, "curdMixByDictService", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, core_1.Inject)(),
|
|
83
|
+
__metadata("design:type", CurdMixBySysConfigService_1.CurdMixBySysConfigService)
|
|
84
|
+
], CurdMixService.prototype, "curdMixBySysConfigService", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, core_1.Inject)(),
|
|
87
|
+
__metadata("design:type", CurdMixByAccountService_1.CurdMixByAccountService)
|
|
88
|
+
], CurdMixService.prototype, "curdMixByAccountService", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
(0, core_1.Inject)(),
|
|
91
|
+
__metadata("design:type", CurdMixByWorkbenchService_1.CurdMixByWorkbenchService)
|
|
92
|
+
], CurdMixService.prototype, "curdMixByWorkbenchService", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, core_1.Inject)(),
|
|
95
|
+
__metadata("design:type", CurdMixByLinkToCustomService_1.CurdMixByLinkToCustomService)
|
|
96
|
+
], CurdMixService.prototype, "curdMixByLinkToCustomService", void 0);
|
|
97
|
+
CurdMixService = __decorate([
|
|
98
|
+
(0, core_1.Provide)()
|
|
99
|
+
], CurdMixService);
|
|
100
|
+
exports.CurdMixService = CurdMixService;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ColumnRelation } from '../../libs/crud-pro/interfaces';
|
|
2
|
+
import { HandleExecuteContextType } from '../../libs/crud-pro/models/ExecuteContext';
|
|
3
|
+
import { MultiKeyMap } from '../../libs/crud-pro/utils/MultiKeyMap';
|
|
4
|
+
declare enum RelatedType {
|
|
5
|
+
dict = "dict",
|
|
6
|
+
sysCfgEnum = "sysCfgEnum",
|
|
7
|
+
linkToCustom = "linkToCustom",
|
|
8
|
+
accountBasic = "accountBasic",
|
|
9
|
+
workbenchBasic = "workbenchBasic"
|
|
10
|
+
}
|
|
11
|
+
declare type FuncRowColumnRelation = (row: any, columnRelation: ColumnRelation) => void;
|
|
12
|
+
declare class CrudMixUtils {
|
|
13
|
+
private readonly relatedType;
|
|
14
|
+
constructor(relatedType: RelatedType);
|
|
15
|
+
private getColumnsRelation;
|
|
16
|
+
/**
|
|
17
|
+
* 从执行上下文,获取所有的关联关系
|
|
18
|
+
* @param exeCtxType
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
pickColumnRelations(exeCtxType: HandleExecuteContextType): ColumnRelation[];
|
|
22
|
+
/**
|
|
23
|
+
* 从执行上下文,获取所有的关联关系的代码
|
|
24
|
+
* @param exeCtx
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
pickColumnRelationCodes(exeCtx: HandleExecuteContextType): string[];
|
|
28
|
+
/**
|
|
29
|
+
* 遍历每一行,每一个关联列
|
|
30
|
+
* @param exeCtxType
|
|
31
|
+
* @param func
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
forEachRowAndColumnsRelation(exeCtxType: HandleExecuteContextType, func: FuncRowColumnRelation): void;
|
|
35
|
+
copyColumnRelationToRow(row: any, multiKeyMap: MultiKeyMap, columnRelation: ColumnRelation): void;
|
|
36
|
+
/**
|
|
37
|
+
* 无relatedCode模式
|
|
38
|
+
* @param row
|
|
39
|
+
* @param map
|
|
40
|
+
* @param columnRelation
|
|
41
|
+
*/
|
|
42
|
+
copyColumnRelationToRowNoRelatedCode(row: any, map: Map<string, any>, columnRelation: ColumnRelation): void;
|
|
43
|
+
/**
|
|
44
|
+
* 专门COPY用户信息到row上面。无relatedCode模式
|
|
45
|
+
* @param row
|
|
46
|
+
* @param map
|
|
47
|
+
* @param columnRelation
|
|
48
|
+
*/
|
|
49
|
+
copyUserInfoToRowNoRelatedCode(row: any, map: Map<string, any>, columnRelation: ColumnRelation): void;
|
|
50
|
+
}
|
|
51
|
+
export { CrudMixUtils, RelatedType, FuncRowColumnRelation };
|