midway-fatcms 0.0.1-beta.2 → 0.0.1-beta.22
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 +12 -0
- package/.prettierrc.js +4 -0
- package/README.md +7 -0
- package/dist/config/config.default.js +52 -15
- package/dist/configuration.d.ts +1 -0
- package/dist/configuration.js +33 -8
- package/dist/controller/base/BaseApiController.d.ts +1 -1
- package/dist/controller/base/BaseApiController.js +14 -6
- package/dist/controller/gateway/AsyncTaskController.d.ts +14 -0
- package/dist/controller/gateway/AsyncTaskController.js +108 -0
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +3 -3
- package/dist/controller/gateway/CrudMtdGatewayController.js +9 -6
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +5 -5
- package/dist/controller/gateway/DocGatewayController.js +14 -9
- package/dist/controller/gateway/PublicApiController.js +4 -6
- package/dist/controller/gateway/StaticController.d.ts +2 -0
- package/dist/controller/gateway/StaticController.js +59 -40
- package/dist/controller/helpers.controller.d.ts +1 -1
- package/dist/controller/home.controller.js +2 -2
- 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 +78 -75
- 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 +10 -4
- package/dist/controller/test.controller.d.ts +1 -1
- package/dist/controller/test.controller.js +5 -5
- package/dist/index.d.ts +34 -4
- package/dist/index.js +34 -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 +2 -1
- 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/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 +13 -17
- 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 +3 -2
- 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/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/errorToString.d.ts +2 -0
- package/dist/libs/utils/errorToString.js +57 -0
- package/dist/libs/utils/fatcms-request.js +2 -2
- package/dist/middleware/forbidden.middleware.js +4 -20
- package/dist/middleware/global.middleware.js +8 -1
- package/dist/models/AsyncTaskModel.d.ts +69 -0
- package/dist/models/AsyncTaskModel.js +26 -0
- package/dist/models/RedisKeys.d.ts +8 -0
- package/dist/models/RedisKeys.js +11 -0
- package/dist/models/SystemTables.d.ts +1 -3
- package/dist/models/SystemTables.js +2 -4
- package/dist/schedule/anonymousContext.d.ts +13 -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 +15 -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 +7 -4
- package/dist/service/FileCenterService.js +13 -9
- package/dist/service/SysConfigService.js +4 -2
- package/dist/service/UserAccountService.js +10 -6
- package/dist/service/UserSessionService.js +2 -1
- package/dist/service/VisitStatService.d.ts +1 -1
- package/dist/service/VisitStatService.js +20 -27
- package/dist/service/WorkbenchService.js +4 -2
- package/dist/service/anyapi/AnyApiService.js +4 -2
- package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +37 -0
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +232 -0
- package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
- package/dist/service/asyncTask/AsyncTaskService.js +34 -0
- package/dist/service/crudstd/CrudStdService.d.ts +2 -1
- package/dist/service/crudstd/CrudStdService.js +48 -3
- package/dist/service/curd/CrudProQuick.d.ts +24 -0
- package/dist/service/curd/CrudProQuick.js +105 -0
- package/dist/service/curd/CurdMixByAccountService.js +12 -6
- package/dist/service/curd/CurdMixByDictService.js +4 -2
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +10 -1
- package/dist/service/curd/CurdMixByLinkToCustomService.js +72 -24
- package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
- package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
- package/dist/service/curd/CurdMixService.d.ts +1 -1
- package/dist/service/curd/CurdMixService.js +2 -2
- package/dist/service/curd/CurdMixUtils.d.ts +7 -0
- package/dist/service/curd/CurdMixUtils.js +65 -28
- package/dist/service/curd/CurdProService.d.ts +2 -10
- package/dist/service/curd/CurdProService.js +31 -146
- 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/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 +9 -2
- package/src/config/config.default.ts +58 -27
- package/src/configuration.ts +42 -9
- package/src/controller/base/BaseApiController.ts +26 -19
- package/src/controller/gateway/AnyApiGatewayController.ts +1 -1
- package/src/controller/gateway/AsyncTaskController.ts +83 -0
- package/src/controller/gateway/CrudMtdGatewayController.ts +17 -13
- package/src/controller/gateway/CrudStdGatewayController.ts +4 -4
- package/src/controller/gateway/DocGatewayController.ts +25 -17
- package/src/controller/gateway/FileController.ts +8 -9
- package/src/controller/gateway/ProxyApiGatewayController.ts +4 -4
- package/src/controller/gateway/PublicApiController.ts +19 -22
- package/src/controller/gateway/StaticController.ts +234 -242
- package/src/controller/helpers.controller.ts +1 -1
- package/src/controller/home.controller.ts +8 -15
- package/src/controller/manage/AnyApiMangeApi.ts +11 -11
- package/src/controller/manage/AppLogMangeApi.ts +5 -5
- package/src/controller/manage/AppMangeApi.ts +7 -7
- package/src/controller/manage/AppPageMangeApi.ts +5 -5
- package/src/controller/manage/AppSchemaHistoryApi.ts +3 -3
- package/src/controller/manage/CrudMethodsMangeApi.ts +5 -5
- package/src/controller/manage/CrudStandardDesignApi.ts +106 -113
- package/src/controller/manage/DataDictManageApi.ts +5 -5
- package/src/controller/manage/DeployManageApi.ts +85 -89
- package/src/controller/manage/DocLibManageApi.ts +5 -5
- package/src/controller/manage/DocManageApi.ts +10 -10
- package/src/controller/manage/FileManageApi.ts +1 -1
- package/src/controller/manage/LowCodeTplManageApi.ts +2 -2
- package/src/controller/manage/MenuManageApi.ts +10 -15
- package/src/controller/manage/ProxyApiMangeApi.ts +2 -2
- package/src/controller/manage/SuperAdminManageApi.ts +14 -13
- package/src/controller/manage/SysConfigMangeApi.ts +11 -11
- package/src/controller/manage/SystemInfoManageApi.ts +11 -6
- package/src/controller/manage/UserAccountManageApi.ts +10 -4
- package/src/controller/manage/WorkbenchMangeApi.ts +8 -8
- package/src/controller/myinfo/AuthController.ts +6 -72
- package/src/controller/render/AppRenderController.ts +24 -21
- package/src/controller/test.controller.ts +18 -18
- package/src/index.ts +38 -4
- package/src/libs/crud-pro/CrudPro.ts +7 -0
- package/src/libs/crud-pro/defaultConfigs.ts +2 -0
- package/src/libs/crud-pro/interfaces.ts +10 -3
- package/src/libs/crud-pro/models/ExecuteContext.ts +3 -3
- package/src/libs/crud-pro/models/ExecuteContextFunc.ts +11 -1
- package/src/libs/crud-pro/models/RequestCfgModel.ts +1 -1
- package/src/libs/crud-pro/models/RequestModel.ts +1 -1
- package/src/libs/crud-pro/models/ResModel.ts +19 -0
- package/src/libs/crud-pro/models/SqlCfgModel.ts +2 -2
- package/src/libs/crud-pro/models/Transaction.ts +8 -9
- package/src/libs/crud-pro/models/TransactionPostgres.ts +1 -1
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +8 -13
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +32 -23
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +38 -54
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +26 -45
- package/src/libs/crud-pro/services/CrudProGenSqlService.ts +23 -40
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +25 -29
- package/src/libs/crud-pro/services/CrudProServiceBase.ts +5 -9
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +36 -9
- package/src/libs/crud-pro/utils/DatabaseName.ts +35 -15
- package/src/libs/crud-pro/utils/DateTimeUtils.ts +2 -2
- package/src/libs/crud-pro/utils/MixinUtils.ts +1 -1
- package/src/libs/crud-pro/utils/ValidateUtils.ts +1 -3
- package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +1 -1
- package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +3 -3
- package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +3 -3
- package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +2 -2
- package/src/libs/crud-pro/utils/sqlConvert/convertMix.ts +26 -0
- package/src/libs/global-config/global-config.ts +78 -0
- package/src/libs/utils/crypto-utils.ts +2 -4
- package/src/libs/utils/errorToString.ts +61 -0
- package/src/libs/utils/fatcms-request.ts +9 -21
- package/src/libs/utils/ordernum-utils.ts +2 -6
- package/src/libs/utils/parseConfig.ts +7 -15
- package/src/middleware/forbidden.middleware.ts +6 -25
- package/src/middleware/global.middleware.ts +18 -16
- package/src/models/AsyncTaskModel.ts +79 -0
- package/src/models/RedisKeys.ts +13 -0
- package/src/models/SystemTables.ts +1 -4
- package/src/models/bizmodels.ts +1 -2
- package/src/schedule/anonymousContext.ts +79 -0
- package/src/schedule/index.ts +11 -72
- package/src/schedule/runSchedule.ts +83 -0
- package/src/schedule/scheduleNames.ts +21 -0
- package/src/service/AuthService.ts +13 -8
- package/src/service/EnumInfoService.ts +8 -3
- package/src/service/FileCenterService.ts +12 -6
- package/src/service/SysConfigService.ts +10 -6
- package/src/service/UserAccountService.ts +14 -4
- package/src/service/UserSessionService.ts +5 -4
- package/src/service/VisitStatService.ts +57 -70
- package/src/service/WorkbenchService.ts +7 -2
- package/src/service/anyapi/AnyApiService.ts +11 -8
- package/src/service/asyncTask/AsyncTaskRunnerService.ts +255 -0
- package/src/service/asyncTask/AsyncTaskService.ts +21 -0
- package/src/service/base/BaseService.ts +2 -2
- package/src/service/crudstd/CrudStdService.ts +60 -5
- package/src/service/curd/CrudProQuick.ts +137 -0
- package/src/service/curd/CurdMixByAccountService.ts +14 -6
- package/src/service/curd/CurdMixByDictService.ts +8 -2
- package/src/service/curd/CurdMixByLinkToCustomService.ts +101 -50
- package/src/service/curd/CurdMixBySysConfigService.ts +7 -2
- package/src/service/curd/CurdMixByWorkbenchService.ts +6 -2
- package/src/service/curd/CurdMixService.ts +3 -3
- package/src/service/curd/CurdMixUtils.ts +82 -39
- package/src/service/curd/CurdProService.ts +45 -189
- package/src/service/curd/fixCfgModel.ts +139 -0
- package/src/service/proxyapi/ProxyApiLoadService.ts +12 -3
- package/src/views/404_app.html +31 -0
- package/src/views/404_workbench.html +34 -0
- package/src/views/static/favicon.ico +0 -0
- 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/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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _ from 'lodash';
|
|
2
2
|
import {Config, Inject, Provide} from '@midwayjs/core';
|
|
3
|
-
import {CrudPro} from '
|
|
3
|
+
import {CrudPro} from '@/libs/crud-pro/CrudPro';
|
|
4
4
|
import {Context} from '@midwayjs/koa';
|
|
5
5
|
import {
|
|
6
6
|
IConnectionPool,
|
|
@@ -8,27 +8,26 @@ import {
|
|
|
8
8
|
IRequestCfgModel,
|
|
9
9
|
IRequestModel,
|
|
10
10
|
ISqlCfgModel
|
|
11
|
-
} from '
|
|
12
|
-
import {SqlCfgModel} from '
|
|
11
|
+
} from '@/libs/crud-pro/interfaces';
|
|
12
|
+
import {SqlCfgModel} from '@/libs/crud-pro/models/SqlCfgModel';
|
|
13
13
|
import {getConnectionPool as getMySQLConnectionPool} from '../../libs/crud-pro/utils/pool/MySQLUtils';
|
|
14
14
|
import {getConnectionPool as getPostgresConnectionPool} from '../../libs/crud-pro/utils/pool/PostgresUtils';
|
|
15
15
|
import {getConnectionPool as getSqlServerConnectionPool} from '../../libs/crud-pro/utils/pool/SqlServerUtils';
|
|
16
|
-
import {
|
|
17
|
-
import {CommonException, Exceptions} from '
|
|
18
|
-
import {UserSessionInfo} from '
|
|
19
|
-
import {BaseExecuteContextFunc} from '
|
|
20
|
-
import {ExecuteContext, IExecuteContextHandler} from '
|
|
16
|
+
import { SqlDbType} from '@/libs/crud-pro/models/keys';
|
|
17
|
+
import {CommonException, Exceptions} from '@/libs/crud-pro/exceptions';
|
|
18
|
+
import {UserSessionInfo} from '@/models/userSession';
|
|
19
|
+
import {BaseExecuteContextFunc} from '@/libs/crud-pro/models/ExecuteContextFunc';
|
|
20
|
+
import {ExecuteContext, IExecuteContextHandler} from '@/libs/crud-pro/models/ExecuteContext';
|
|
21
21
|
import {RelatedType} from './CurdMixUtils';
|
|
22
22
|
import {BaseService} from '../base/BaseService';
|
|
23
23
|
import {
|
|
24
|
-
CTX_VISITOR_ACCOUNT_TYPE,
|
|
25
|
-
CTX_VISITOR_AVATAR,
|
|
26
|
-
CTX_VISITOR_ID,
|
|
27
|
-
CTX_VISITOR_NICKNAME,
|
|
28
24
|
IRequestCfgModel2,
|
|
29
25
|
IVisitorExt,
|
|
30
|
-
} from '
|
|
31
|
-
import {IWorkbenchEntity} from '
|
|
26
|
+
} from '@/models/bizmodels';
|
|
27
|
+
import {IWorkbenchEntity} from '@/models/SystemEntities';
|
|
28
|
+
import {CrudProQuick} from "@/service/curd/CrudProQuick";
|
|
29
|
+
import {fixCfgModel} from "./fixCfgModel";
|
|
30
|
+
import {GLOBAL_STATIC_CONFIG} from "@/libs/global-config/global-config";
|
|
32
31
|
|
|
33
32
|
function toVisitor(ctx: Context): IVisitorExt {
|
|
34
33
|
const workbenchInfo: IWorkbenchEntity = ctx.workbenchInfo;
|
|
@@ -82,19 +81,21 @@ class MyContextFunc extends BaseExecuteContextFunc {
|
|
|
82
81
|
throw new CommonException(Exceptions.DB_QUERY_PARAM_EMPTY, '查询语句中未指定数据库');
|
|
83
82
|
}
|
|
84
83
|
const dataBaseName = sqlCfgModel.sqlDatabase;
|
|
85
|
-
const
|
|
84
|
+
const sqlDbType = sqlCfgModel.sqlDbType;
|
|
86
85
|
|
|
87
|
-
if (
|
|
86
|
+
if (sqlDbType === SqlDbType.postgres) {
|
|
88
87
|
const dbConfig = _.get(this.postgres2Config, dataBaseName);
|
|
89
88
|
if (!dbConfig) {
|
|
89
|
+
console.error('postgres配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
90
90
|
throw new CommonException(Exceptions.DB_NOT_FOUND, 'postgres配置中不存在此数据库:' + dataBaseName);
|
|
91
91
|
}
|
|
92
92
|
return getPostgresConnectionPool(dataBaseName, dbConfig);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
if (
|
|
95
|
+
if (sqlDbType === SqlDbType.sqlserver) {
|
|
96
96
|
const dbConfig = _.get(this.sqlserver2Config, dataBaseName);
|
|
97
97
|
if (!dbConfig) {
|
|
98
|
+
console.error('sqlserver配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
98
99
|
throw new CommonException(Exceptions.DB_NOT_FOUND, 'sqlserver配置中不存在此数据库:' + dataBaseName);
|
|
99
100
|
}
|
|
100
101
|
return getSqlServerConnectionPool(dataBaseName, dbConfig);
|
|
@@ -102,6 +103,7 @@ class MyContextFunc extends BaseExecuteContextFunc {
|
|
|
102
103
|
|
|
103
104
|
const dbConfig = _.get(this.mysql2Config, dataBaseName);
|
|
104
105
|
if (!dbConfig) {
|
|
106
|
+
console.error('MySQL配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
105
107
|
throw new CommonException(Exceptions.DB_NOT_FOUND, 'MySQL配置中不存在此数据库:' + dataBaseName);
|
|
106
108
|
}
|
|
107
109
|
return getMySQLConnectionPool(dataBaseName, dbConfig);
|
|
@@ -118,50 +120,23 @@ class MyContextFunc extends BaseExecuteContextFunc {
|
|
|
118
120
|
}
|
|
119
121
|
return null;
|
|
120
122
|
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export class DBUtils {
|
|
124
|
-
private readonly sqlDatabase: string;
|
|
125
|
-
private readonly sqlDdType: SqlDbType;
|
|
126
|
-
private readonly curdProService: CurdProService;
|
|
127
123
|
|
|
128
|
-
constructor(sqlDatabase: string, sqlDdType: SqlDbType, curdProService: CurdProService) {
|
|
129
|
-
this.sqlDatabase = sqlDatabase;
|
|
130
|
-
this.sqlDdType = sqlDdType;
|
|
131
|
-
this.curdProService = curdProService;
|
|
132
|
-
}
|
|
133
124
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
125
|
+
/**
|
|
126
|
+
* 在执行之前可以根据业务需要修改需要执行的内容
|
|
127
|
+
* @param reqJson
|
|
128
|
+
* @param cfgJson
|
|
129
|
+
*/
|
|
130
|
+
async beforeExecuteSQLList(reqJson: IRequestModel, cfgJson: IRequestCfgModel): Promise<any> {
|
|
131
|
+
const { bizUpdateCfgModelForCrudPro } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
132
|
+
if (typeof bizUpdateCfgModelForCrudPro === "function") {
|
|
133
|
+
await bizUpdateCfgModelForCrudPro(reqJson, cfgJson)
|
|
134
|
+
}
|
|
135
|
+
return Promise.resolve();
|
|
144
136
|
}
|
|
145
137
|
|
|
146
|
-
public async getList(reqJson: IRequestModel, sqlTable: string): Promise<any[]> {
|
|
147
|
-
const cfgModel: IRequestCfgModel = {
|
|
148
|
-
sqlTable,
|
|
149
|
-
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
150
|
-
sqlDatabase: this.sqlDatabase,
|
|
151
|
-
sqlDdType: this.sqlDdType,
|
|
152
|
-
updateCfg: {},
|
|
153
|
-
};
|
|
154
|
-
const res = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
155
|
-
return res.getResRows();
|
|
156
|
-
}
|
|
157
138
|
}
|
|
158
139
|
|
|
159
|
-
function isSimpleQuery(sqlSimpleName: KeysOfSimpleSQL): boolean {
|
|
160
|
-
return sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY ||
|
|
161
|
-
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY_COUNT ||
|
|
162
|
-
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY_PAGE ||
|
|
163
|
-
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY_ONE
|
|
164
|
-
}
|
|
165
140
|
|
|
166
141
|
@Provide()
|
|
167
142
|
export class CurdProService extends BaseService {
|
|
@@ -196,9 +171,15 @@ export class CurdProService extends BaseService {
|
|
|
196
171
|
|
|
197
172
|
const crudPro = new CrudPro();
|
|
198
173
|
crudPro.transaction = this.ctx.transaction;
|
|
199
|
-
crudPro.logger = this.getContextLogger();
|
|
174
|
+
crudPro.logger = this.getContextLogger() as any;
|
|
200
175
|
crudPro.visitor = visitor;
|
|
201
|
-
|
|
176
|
+
|
|
177
|
+
const crudProCfg: ICrudProCfg = this.crudProCfg || {};
|
|
178
|
+
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
179
|
+
crudProCfg.sysDatabaseName = SystemDbName;
|
|
180
|
+
crudProCfg.sysDatabaseDbType = SystemDbType;
|
|
181
|
+
|
|
182
|
+
crudPro.contextCfg = crudProCfg;
|
|
202
183
|
|
|
203
184
|
crudPro.contextFunc = new MyContextFunc({
|
|
204
185
|
mysql2Config: this.mysql2Config,
|
|
@@ -213,7 +194,7 @@ export class CurdProService extends BaseService {
|
|
|
213
194
|
* 依赖缓存中与加载的配置
|
|
214
195
|
* @param reqJson
|
|
215
196
|
*/
|
|
216
|
-
async executeCrud(reqJson: IRequestModel) {
|
|
197
|
+
async executeCrud(reqJson: IRequestModel): Promise<ExecuteContext> {
|
|
217
198
|
if (!reqJson.method) {
|
|
218
199
|
throw new Error('Method not implemented');
|
|
219
200
|
}
|
|
@@ -234,141 +215,16 @@ export class CurdProService extends BaseService {
|
|
|
234
215
|
// 直接执行一个请求
|
|
235
216
|
async executeCrudByCfg(reqJson: IRequestModel, cfgModel: IRequestCfgModel2): Promise<ExecuteContext> {
|
|
236
217
|
this.logInfo('executeCrudByCfg', cfgModel);
|
|
237
|
-
|
|
238
|
-
if (!cfgModel.method) {
|
|
239
|
-
const req = this.ctx.req;
|
|
240
|
-
if (req) {
|
|
241
|
-
cfgModel.method = `${req.method}:${req.url}`;
|
|
242
|
-
} else {
|
|
243
|
-
cfgModel.method = 'anonymous';
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
if (!cfgModel.updateCfg) {
|
|
248
|
-
cfgModel.updateCfg = {};
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
// 应用标准的updateCfg
|
|
252
|
-
this.applyStandardUpdateCfg(cfgModel);
|
|
253
|
-
|
|
254
218
|
const curdPro = this.getCrudPro();
|
|
255
|
-
return await curdPro.executeCrudByCfg(reqJson, cfgModel);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
219
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
const enableStandardUpdateCfg = cfgModel.enableStandardUpdateCfg; // 用于设置data字段
|
|
264
|
-
const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
|
|
265
|
-
|
|
266
|
-
// 彻底关闭
|
|
267
|
-
if (enableStandardUpdateCfg === false) {
|
|
268
|
-
return ;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
const getDataCfgArray = ()=>{
|
|
272
|
-
// 明确有配置
|
|
273
|
-
if (Array.isArray(enableStandardUpdateCfg)) {
|
|
274
|
-
if (enableStandardUpdateCfg.includes('null')) {
|
|
275
|
-
return [];
|
|
276
|
-
}
|
|
277
|
-
return enableStandardUpdateCfg;
|
|
278
|
-
}
|
|
279
|
-
// update 、insert 添加 by
|
|
280
|
-
return ['by']; // 创建/修改语句默认添加by
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
const getConditionCfgArray = ()=>{
|
|
284
|
-
// 明确有配置
|
|
285
|
-
if (Array.isArray(enableStandardUpdateCfgCondition)) {
|
|
286
|
-
if (enableStandardUpdateCfgCondition.includes('null')) {
|
|
287
|
-
return [];
|
|
288
|
-
}
|
|
289
|
-
return enableStandardUpdateCfgCondition;
|
|
290
|
-
}
|
|
291
|
-
return [];
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
const dataCfgArray = getDataCfgArray();
|
|
296
|
-
const conditionCfgArray = getConditionCfgArray();
|
|
297
|
-
|
|
298
|
-
const mapping = {
|
|
299
|
-
|
|
300
|
-
'condition.created_by': {contextAsString: CTX_VISITOR_ID},
|
|
301
|
-
'condition.created_account_type': {contextAsString: CTX_VISITOR_ACCOUNT_TYPE},
|
|
302
|
-
|
|
303
|
-
'data.created_by': {contextAsString: CTX_VISITOR_ID},
|
|
304
|
-
'data.created_avatar': {contextAsString: CTX_VISITOR_AVATAR},
|
|
305
|
-
'data.created_nickname': {contextAsString: CTX_VISITOR_NICKNAME},
|
|
306
|
-
'data.created_account_type': {contextAsString: CTX_VISITOR_ACCOUNT_TYPE},
|
|
307
|
-
|
|
308
|
-
'data.modified_by': {contextAsString: CTX_VISITOR_ID},
|
|
309
|
-
'data.modified_avatar': {contextAsString: CTX_VISITOR_AVATAR},
|
|
310
|
-
'data.modified_nickname': {contextAsString: CTX_VISITOR_NICKNAME},
|
|
311
|
-
'data.modified_account_type': {contextAsString: CTX_VISITOR_ACCOUNT_TYPE},
|
|
312
|
-
};
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
const buildUpdateCfgBy = (cfgArray: string[], prefix: string): any => {
|
|
316
|
-
const obj: any = {};
|
|
317
|
-
if (Array.isArray(cfgArray)) {
|
|
318
|
-
for (let i = 0; i < cfgArray.length; i++) {
|
|
319
|
-
const suffix = cfgArray[i];
|
|
320
|
-
if (suffix) {
|
|
321
|
-
const key = `${prefix}_${suffix}`
|
|
322
|
-
obj[key] = mapping[key]
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
return obj;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
// 查询语句
|
|
330
|
-
if (isSimpleQuery(sqlSimpleName) ) {
|
|
331
|
-
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
|
|
332
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// 删除语句
|
|
336
|
-
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_DELETE) {
|
|
337
|
-
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
|
|
338
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
// 插入语句
|
|
342
|
-
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT) {
|
|
343
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray,'data.created')
|
|
344
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
// 更新语句
|
|
348
|
-
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_UPDATE) {
|
|
349
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray,'data.modified')
|
|
350
|
-
const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
351
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
352
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
// 插入或更新
|
|
356
|
-
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE ||
|
|
357
|
-
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
|
|
358
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray,'data.created')
|
|
359
|
-
const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray,'data.modified')
|
|
360
|
-
const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
361
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
362
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
363
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj3);
|
|
364
|
-
}
|
|
220
|
+
// 应用标准的updateCfg。
|
|
221
|
+
fixCfgModel(cfgModel);
|
|
222
|
+
return await curdPro.executeCrudByCfg(reqJson, cfgModel);
|
|
365
223
|
}
|
|
366
224
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
getBbUtil(database: string, sqlDdType: SqlDbType): DBUtils {
|
|
371
|
-
return new DBUtils(database, sqlDdType, this);
|
|
225
|
+
getBbUtil(sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string): CrudProQuick {
|
|
226
|
+
const curdPro = this.getCrudPro();
|
|
227
|
+
return new CrudProQuick(curdPro, sqlDatabase, sqlDbType, sqlTable);
|
|
372
228
|
}
|
|
373
229
|
|
|
374
230
|
public async getCachedCfgByMethod(method: string): Promise<IRequestCfgModel> {
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CTX_VISITOR_ACCOUNT_TYPE,
|
|
3
|
+
CTX_VISITOR_AVATAR,
|
|
4
|
+
CTX_VISITOR_ID,
|
|
5
|
+
CTX_VISITOR_NICKNAME,
|
|
6
|
+
IRequestCfgModel2
|
|
7
|
+
} from "@/models/bizmodels";
|
|
8
|
+
import {KeysOfSimpleSQL} from "@/libs/crud-pro/models/keys";
|
|
9
|
+
|
|
10
|
+
function isSimpleQuery(sqlSimpleName: KeysOfSimpleSQL): boolean {
|
|
11
|
+
return sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY ||
|
|
12
|
+
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY_COUNT ||
|
|
13
|
+
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY_PAGE ||
|
|
14
|
+
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY_ONE
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
function fixCfgModel(cfgModel: IRequestCfgModel2 ){
|
|
20
|
+
|
|
21
|
+
if (!cfgModel.method) {
|
|
22
|
+
cfgModel.method = 'anonymous';
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (!cfgModel.updateCfg) {
|
|
26
|
+
cfgModel.updateCfg = {};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const sqlSimpleName = cfgModel.sqlSimpleName;
|
|
30
|
+
|
|
31
|
+
const enableStandardUpdateCfg = cfgModel.enableStandardUpdateCfg; // 用于设置data字段
|
|
32
|
+
const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
|
|
33
|
+
|
|
34
|
+
// 彻底关闭
|
|
35
|
+
if (enableStandardUpdateCfg === false) {
|
|
36
|
+
return ;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const getDataCfgArray = ()=>{
|
|
40
|
+
// 明确有配置
|
|
41
|
+
if (Array.isArray(enableStandardUpdateCfg)) {
|
|
42
|
+
if (enableStandardUpdateCfg.includes('null')) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
return enableStandardUpdateCfg;
|
|
46
|
+
}
|
|
47
|
+
// update 、insert 添加 by
|
|
48
|
+
return ['by']; // 创建/修改语句默认添加by
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const getConditionCfgArray = ()=>{
|
|
52
|
+
// 明确有配置
|
|
53
|
+
if (Array.isArray(enableStandardUpdateCfgCondition)) {
|
|
54
|
+
if (enableStandardUpdateCfgCondition.includes('null')) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
return enableStandardUpdateCfgCondition;
|
|
58
|
+
}
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
const dataCfgArray = getDataCfgArray();
|
|
64
|
+
const conditionCfgArray = getConditionCfgArray();
|
|
65
|
+
|
|
66
|
+
const mapping = {
|
|
67
|
+
|
|
68
|
+
'condition.created_by': {contextAsString: CTX_VISITOR_ID},
|
|
69
|
+
'condition.created_account_type': {contextAsString: CTX_VISITOR_ACCOUNT_TYPE},
|
|
70
|
+
|
|
71
|
+
'data.created_by': {contextAsString: CTX_VISITOR_ID},
|
|
72
|
+
'data.created_avatar': {contextAsString: CTX_VISITOR_AVATAR},
|
|
73
|
+
'data.created_nickname': {contextAsString: CTX_VISITOR_NICKNAME},
|
|
74
|
+
'data.created_account_type': {contextAsString: CTX_VISITOR_ACCOUNT_TYPE},
|
|
75
|
+
|
|
76
|
+
'data.modified_by': {contextAsString: CTX_VISITOR_ID},
|
|
77
|
+
'data.modified_avatar': {contextAsString: CTX_VISITOR_AVATAR},
|
|
78
|
+
'data.modified_nickname': {contextAsString: CTX_VISITOR_NICKNAME},
|
|
79
|
+
'data.modified_account_type': {contextAsString: CTX_VISITOR_ACCOUNT_TYPE},
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
const buildUpdateCfgBy = (cfgArray: string[], prefix: string): any => {
|
|
84
|
+
const obj: any = {};
|
|
85
|
+
if (Array.isArray(cfgArray)) {
|
|
86
|
+
for (let i = 0; i < cfgArray.length; i++) {
|
|
87
|
+
const suffix = cfgArray[i];
|
|
88
|
+
if (suffix) {
|
|
89
|
+
const key = `${prefix}_${suffix}`
|
|
90
|
+
obj[key] = mapping[key]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return obj;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// 查询语句
|
|
98
|
+
if (isSimpleQuery(sqlSimpleName) ) {
|
|
99
|
+
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
|
|
100
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// 删除语句
|
|
104
|
+
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_DELETE) {
|
|
105
|
+
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
|
|
106
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// 插入语句
|
|
110
|
+
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT) {
|
|
111
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray,'data.created')
|
|
112
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// 更新语句
|
|
116
|
+
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_UPDATE) {
|
|
117
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray,'data.modified')
|
|
118
|
+
const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
119
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
120
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// 插入或更新
|
|
124
|
+
if (sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE ||
|
|
125
|
+
sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
|
|
126
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray,'data.created')
|
|
127
|
+
const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray,'data.modified')
|
|
128
|
+
const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
129
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
130
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
131
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj3);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
export {
|
|
138
|
+
fixCfgModel
|
|
139
|
+
}
|
|
@@ -5,7 +5,7 @@ import { BaseService } from '../base/BaseService';
|
|
|
5
5
|
import { getRouteTrie, RouteTrie } from './RouteTrie';
|
|
6
6
|
import { RouteHandler } from './RouteHandler';
|
|
7
7
|
import { CurdProService } from '../curd/CurdProService';
|
|
8
|
-
import {
|
|
8
|
+
import { SystemTables} from '../../models/SystemTables';
|
|
9
9
|
import { KeysOfSimpleSQL } from '../../libs/crud-pro/models/keys';
|
|
10
10
|
import { IProxyApiEntity, IUpstreamInfo } from '../../models/SystemEntities';
|
|
11
11
|
import { parseJsonObject } from '../../libs/utils/functions';
|
|
@@ -15,6 +15,7 @@ import { WeightedRoundRobin } from './WeightedRoundRobin';
|
|
|
15
15
|
import { IScheduleService } from '../../interface';
|
|
16
16
|
import { WorkbenchService } from '../WorkbenchService';
|
|
17
17
|
import { CommonException } from '../../libs/crud-pro/exceptions';
|
|
18
|
+
import { GLOBAL_STATIC_CONFIG } from '@/libs/global-config/global-config';
|
|
18
19
|
|
|
19
20
|
function toUpstreamInfo(config_content: any): IUpstreamInfo {
|
|
20
21
|
const obj = parseJsonObject(config_content);
|
|
@@ -85,6 +86,9 @@ export class ProxyApiLoadService extends BaseService implements IScheduleService
|
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
private async buildUpstreamMap() {
|
|
89
|
+
|
|
90
|
+
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
91
|
+
|
|
88
92
|
// biz_tag={'upstream'}
|
|
89
93
|
const res = await this.curdProService.executeCrudByCfg(
|
|
90
94
|
{
|
|
@@ -95,7 +99,7 @@ export class ProxyApiLoadService extends BaseService implements IScheduleService
|
|
|
95
99
|
{
|
|
96
100
|
sqlTable: SystemTables.sys_configs,
|
|
97
101
|
sqlDatabase: SystemDbName,
|
|
98
|
-
|
|
102
|
+
sqlDbType: SystemDbType,
|
|
99
103
|
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
100
104
|
}
|
|
101
105
|
);
|
|
@@ -110,6 +114,10 @@ export class ProxyApiLoadService extends BaseService implements IScheduleService
|
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
private async loadProxyApiEntity(workbench_code: string, upstreamMap: Record<string, IUpstreamInfo>): Promise<IProxyApiEntity[]> {
|
|
117
|
+
|
|
118
|
+
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
119
|
+
|
|
120
|
+
|
|
113
121
|
const res = await this.curdProService.executeCrudByCfg(
|
|
114
122
|
{
|
|
115
123
|
condition: {},
|
|
@@ -117,7 +125,7 @@ export class ProxyApiLoadService extends BaseService implements IScheduleService
|
|
|
117
125
|
{
|
|
118
126
|
sqlTable: SystemTables.sys_proxyapi,
|
|
119
127
|
sqlDatabase: SystemDbName,
|
|
120
|
-
|
|
128
|
+
sqlDbType: SystemDbType,
|
|
121
129
|
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
122
130
|
}
|
|
123
131
|
);
|
|
@@ -162,4 +170,5 @@ export class ProxyApiLoadService extends BaseService implements IScheduleService
|
|
|
162
170
|
}
|
|
163
171
|
}
|
|
164
172
|
}
|
|
173
|
+
|
|
165
174
|
}
|
|
@@ -0,0 +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
|
+
|
|
@@ -0,0 +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
|
+
|
|
Binary file
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compileOnSave": true,
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "es2018",
|
|
5
|
+
"module": "commonjs",
|
|
6
|
+
"moduleResolution": "node",
|
|
7
|
+
"experimentalDecorators": true,
|
|
8
|
+
"emitDecoratorMetadata": true,
|
|
9
|
+
"inlineSourceMap":false,
|
|
10
|
+
"noImplicitThis": true,
|
|
11
|
+
"noUnusedLocals": true,
|
|
12
|
+
"stripInternal": true,
|
|
13
|
+
"skipLibCheck": true,
|
|
14
|
+
"noImplicitReturns": false,
|
|
15
|
+
"pretty": true,
|
|
16
|
+
"declaration": true,
|
|
17
|
+
"forceConsistentCasingInFileNames": true,
|
|
18
|
+
"outDir": "dist",
|
|
19
|
+
"rootDir": "src",
|
|
20
|
+
"baseUrl": ".",
|
|
21
|
+
"paths": {
|
|
22
|
+
"@/*": ["src/*"]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"exclude": [
|
|
26
|
+
"*.js",
|
|
27
|
+
"*.ts",
|
|
28
|
+
"dist",
|
|
29
|
+
"node_modules",
|
|
30
|
+
"test"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import { BaseApiController } from '../base/BaseApiController';
|
|
3
|
-
import { AuthService } from '../../service/AuthService';
|
|
4
|
-
import { CommonResult } from '../../libs/utils/common-dto';
|
|
5
|
-
import { WorkbenchService } from "../../service/WorkbenchService";
|
|
6
|
-
import { SysConfigService } from "../../service/SysConfigService";
|
|
7
|
-
import { MedScoreService } from "./MedScoreService";
|
|
8
|
-
import { MedMessageService } from "./MedMessageService";
|
|
9
|
-
interface IUserRechargeRule {
|
|
10
|
-
score: number;
|
|
11
|
-
authentication_score: number;
|
|
12
|
-
recharge_package: any[];
|
|
13
|
-
vip_package: any[];
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* medstatistic 管理端
|
|
17
|
-
*/
|
|
18
|
-
export declare class MedAdminController extends BaseApiController {
|
|
19
|
-
protected ctx: Context;
|
|
20
|
-
protected authService: AuthService;
|
|
21
|
-
protected workbenchService: WorkbenchService;
|
|
22
|
-
protected sysConfigService: SysConfigService;
|
|
23
|
-
protected medScoreService: MedScoreService;
|
|
24
|
-
protected medMessageService: MedMessageService;
|
|
25
|
-
/**
|
|
26
|
-
* 审批后自动充值30个积分
|
|
27
|
-
*/
|
|
28
|
-
recharge_by_authentication_success(): Promise<CommonResult>;
|
|
29
|
-
/**
|
|
30
|
-
* 将DB中的数据同步到Redis,因为PHP的程序需要。
|
|
31
|
-
*/
|
|
32
|
-
sync_med_user_recharge_rule_to_redis(): Promise<CommonResult>;
|
|
33
|
-
get_med_user_recharge_rule(): Promise<IUserRechargeRule>;
|
|
34
|
-
}
|
|
35
|
-
export {};
|