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
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CurdProService =
|
|
12
|
+
exports.CurdProService = void 0;
|
|
13
13
|
const _ = require("lodash");
|
|
14
14
|
const core_1 = require("@midwayjs/core");
|
|
15
15
|
const CrudPro_1 = require("../../libs/crud-pro/CrudPro");
|
|
@@ -20,7 +20,9 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
20
20
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
21
21
|
const ExecuteContextFunc_1 = require("../../libs/crud-pro/models/ExecuteContextFunc");
|
|
22
22
|
const BaseService_1 = require("../base/BaseService");
|
|
23
|
-
const
|
|
23
|
+
const CrudProQuick_1 = require("../../service/curd/CrudProQuick");
|
|
24
|
+
const fixCfgModel_1 = require("./fixCfgModel");
|
|
25
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
24
26
|
function toVisitor(ctx) {
|
|
25
27
|
const workbenchInfo = ctx.workbenchInfo;
|
|
26
28
|
const userSession = ctx.userSession;
|
|
@@ -65,23 +67,26 @@ class MyContextFunc extends ExecuteContextFunc_1.BaseExecuteContextFunc {
|
|
|
65
67
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_QUERY_PARAM_EMPTY, '查询语句中未指定数据库');
|
|
66
68
|
}
|
|
67
69
|
const dataBaseName = sqlCfgModel.sqlDatabase;
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
70
|
+
const sqlDbType = sqlCfgModel.sqlDbType;
|
|
71
|
+
if (sqlDbType === keys_1.SqlDbType.postgres) {
|
|
70
72
|
const dbConfig = _.get(this.postgres2Config, dataBaseName);
|
|
71
73
|
if (!dbConfig) {
|
|
74
|
+
console.error('postgres配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
72
75
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_NOT_FOUND, 'postgres配置中不存在此数据库:' + dataBaseName);
|
|
73
76
|
}
|
|
74
77
|
return (0, PostgresUtils_1.getConnectionPool)(dataBaseName, dbConfig);
|
|
75
78
|
}
|
|
76
|
-
if (
|
|
79
|
+
if (sqlDbType === keys_1.SqlDbType.sqlserver) {
|
|
77
80
|
const dbConfig = _.get(this.sqlserver2Config, dataBaseName);
|
|
78
81
|
if (!dbConfig) {
|
|
82
|
+
console.error('sqlserver配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
79
83
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_NOT_FOUND, 'sqlserver配置中不存在此数据库:' + dataBaseName);
|
|
80
84
|
}
|
|
81
85
|
return (0, SqlServerUtils_1.getConnectionPool)(dataBaseName, dbConfig);
|
|
82
86
|
}
|
|
83
87
|
const dbConfig = _.get(this.mysql2Config, dataBaseName);
|
|
84
88
|
if (!dbConfig) {
|
|
89
|
+
console.error('MySQL配置中不存在此数据库', JSON.stringify(sqlCfgModel));
|
|
85
90
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.DB_NOT_FOUND, 'MySQL配置中不存在此数据库:' + dataBaseName);
|
|
86
91
|
}
|
|
87
92
|
return (0, MySQLUtils_1.getConnectionPool)(dataBaseName, dbConfig);
|
|
@@ -96,43 +101,19 @@ class MyContextFunc extends ExecuteContextFunc_1.BaseExecuteContextFunc {
|
|
|
96
101
|
}
|
|
97
102
|
return null;
|
|
98
103
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
sqlDatabase: this.sqlDatabase,
|
|
111
|
-
sqlDdType: this.sqlDdType,
|
|
112
|
-
updateCfg: {},
|
|
113
|
-
};
|
|
114
|
-
const res = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
115
|
-
return res.getOneObj();
|
|
116
|
-
}
|
|
117
|
-
async getList(reqJson, sqlTable) {
|
|
118
|
-
const cfgModel = {
|
|
119
|
-
sqlTable,
|
|
120
|
-
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
121
|
-
sqlDatabase: this.sqlDatabase,
|
|
122
|
-
sqlDdType: this.sqlDdType,
|
|
123
|
-
updateCfg: {},
|
|
124
|
-
};
|
|
125
|
-
const res = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
126
|
-
return res.getResRows();
|
|
104
|
+
/**
|
|
105
|
+
* 在执行之前可以根据业务需要修改需要执行的内容
|
|
106
|
+
* @param reqJson
|
|
107
|
+
* @param cfgJson
|
|
108
|
+
*/
|
|
109
|
+
async beforeExecuteSQLList(reqJson, cfgJson) {
|
|
110
|
+
const { bizUpdateCfgModelForCrudPro } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
111
|
+
if (typeof bizUpdateCfgModelForCrudPro === "function") {
|
|
112
|
+
await bizUpdateCfgModelForCrudPro(reqJson, cfgJson);
|
|
113
|
+
}
|
|
114
|
+
return Promise.resolve();
|
|
127
115
|
}
|
|
128
116
|
}
|
|
129
|
-
exports.DBUtils = DBUtils;
|
|
130
|
-
function isSimpleQuery(sqlSimpleName) {
|
|
131
|
-
return sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY ||
|
|
132
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_COUNT ||
|
|
133
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE ||
|
|
134
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE;
|
|
135
|
-
}
|
|
136
117
|
let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
137
118
|
constructor() {
|
|
138
119
|
super(...arguments);
|
|
@@ -152,7 +133,11 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
152
133
|
crudPro.transaction = this.ctx.transaction;
|
|
153
134
|
crudPro.logger = this.getContextLogger();
|
|
154
135
|
crudPro.visitor = visitor;
|
|
155
|
-
|
|
136
|
+
const crudProCfg = this.crudProCfg || {};
|
|
137
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
138
|
+
crudProCfg.sysDatabaseName = SystemDbName;
|
|
139
|
+
crudProCfg.sysDatabaseDbType = SystemDbType;
|
|
140
|
+
crudPro.contextCfg = crudProCfg;
|
|
156
141
|
crudPro.contextFunc = new MyContextFunc({
|
|
157
142
|
mysql2Config: this.mysql2Config,
|
|
158
143
|
postgres2Config: this.postgres2Config,
|
|
@@ -181,114 +166,14 @@ let CurdProService = class CurdProService extends BaseService_1.BaseService {
|
|
|
181
166
|
// 直接执行一个请求
|
|
182
167
|
async executeCrudByCfg(reqJson, cfgModel) {
|
|
183
168
|
this.logInfo('executeCrudByCfg', cfgModel);
|
|
184
|
-
if (!cfgModel.method) {
|
|
185
|
-
const req = this.ctx.req;
|
|
186
|
-
if (req) {
|
|
187
|
-
cfgModel.method = `${req.method}:${req.url}`;
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
cfgModel.method = 'anonymous';
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (!cfgModel.updateCfg) {
|
|
194
|
-
cfgModel.updateCfg = {};
|
|
195
|
-
}
|
|
196
|
-
// 应用标准的updateCfg
|
|
197
|
-
this.applyStandardUpdateCfg(cfgModel);
|
|
198
169
|
const curdPro = this.getCrudPro();
|
|
170
|
+
// 应用标准的updateCfg。
|
|
171
|
+
(0, fixCfgModel_1.fixCfgModel)(cfgModel);
|
|
199
172
|
return await curdPro.executeCrudByCfg(reqJson, cfgModel);
|
|
200
173
|
}
|
|
201
|
-
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
|
|
205
|
-
// 彻底关闭
|
|
206
|
-
if (enableStandardUpdateCfg === false) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
const getDataCfgArray = () => {
|
|
210
|
-
// 明确有配置
|
|
211
|
-
if (Array.isArray(enableStandardUpdateCfg)) {
|
|
212
|
-
if (enableStandardUpdateCfg.includes('null')) {
|
|
213
|
-
return [];
|
|
214
|
-
}
|
|
215
|
-
return enableStandardUpdateCfg;
|
|
216
|
-
}
|
|
217
|
-
// update 、insert 添加 by
|
|
218
|
-
return ['by']; // 创建/修改语句默认添加by
|
|
219
|
-
};
|
|
220
|
-
const getConditionCfgArray = () => {
|
|
221
|
-
// 明确有配置
|
|
222
|
-
if (Array.isArray(enableStandardUpdateCfgCondition)) {
|
|
223
|
-
if (enableStandardUpdateCfgCondition.includes('null')) {
|
|
224
|
-
return [];
|
|
225
|
-
}
|
|
226
|
-
return enableStandardUpdateCfgCondition;
|
|
227
|
-
}
|
|
228
|
-
return [];
|
|
229
|
-
};
|
|
230
|
-
const dataCfgArray = getDataCfgArray();
|
|
231
|
-
const conditionCfgArray = getConditionCfgArray();
|
|
232
|
-
const mapping = {
|
|
233
|
-
'condition.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
234
|
-
'condition.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
235
|
-
'data.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
236
|
-
'data.created_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
237
|
-
'data.created_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
238
|
-
'data.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
239
|
-
'data.modified_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
240
|
-
'data.modified_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
241
|
-
'data.modified_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
242
|
-
'data.modified_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
243
|
-
};
|
|
244
|
-
const buildUpdateCfgBy = (cfgArray, prefix) => {
|
|
245
|
-
const obj = {};
|
|
246
|
-
if (Array.isArray(cfgArray)) {
|
|
247
|
-
for (let i = 0; i < cfgArray.length; i++) {
|
|
248
|
-
const suffix = cfgArray[i];
|
|
249
|
-
if (suffix) {
|
|
250
|
-
const key = `${prefix}_${suffix}`;
|
|
251
|
-
obj[key] = mapping[key];
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return obj;
|
|
256
|
-
};
|
|
257
|
-
// 查询语句
|
|
258
|
-
if (isSimpleQuery(sqlSimpleName)) {
|
|
259
|
-
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
|
|
260
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
261
|
-
}
|
|
262
|
-
// 删除语句
|
|
263
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_DELETE) {
|
|
264
|
-
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
|
|
265
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
266
|
-
}
|
|
267
|
-
// 插入语句
|
|
268
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT) {
|
|
269
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
270
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
271
|
-
}
|
|
272
|
-
// 更新语句
|
|
273
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE) {
|
|
274
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
275
|
-
const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
276
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
277
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
278
|
-
}
|
|
279
|
-
// 插入或更新
|
|
280
|
-
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE ||
|
|
281
|
-
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
|
|
282
|
-
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
283
|
-
const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
284
|
-
const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
285
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
286
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
287
|
-
Object.assign(cfgModel.updateCfg, updateCfgObj3);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
getBbUtil(database, sqlDdType) {
|
|
291
|
-
return new DBUtils(database, sqlDdType, this);
|
|
174
|
+
getBbUtil(sqlDatabase, sqlDbType, sqlTable) {
|
|
175
|
+
const curdPro = this.getCrudPro();
|
|
176
|
+
return new CrudProQuick_1.CrudProQuick(curdPro, sqlDatabase, sqlDbType, sqlTable);
|
|
292
177
|
}
|
|
293
178
|
async getCachedCfgByMethod(method) {
|
|
294
179
|
const curdPro = this.getCrudPro();
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fixCfgModel = void 0;
|
|
4
|
+
const bizmodels_1 = require("../../models/bizmodels");
|
|
5
|
+
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
6
|
+
function isSimpleQuery(sqlSimpleName) {
|
|
7
|
+
return sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY ||
|
|
8
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_COUNT ||
|
|
9
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE ||
|
|
10
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE;
|
|
11
|
+
}
|
|
12
|
+
function fixCfgModel(cfgModel) {
|
|
13
|
+
if (!cfgModel.method) {
|
|
14
|
+
cfgModel.method = 'anonymous';
|
|
15
|
+
}
|
|
16
|
+
if (!cfgModel.updateCfg) {
|
|
17
|
+
cfgModel.updateCfg = {};
|
|
18
|
+
}
|
|
19
|
+
const sqlSimpleName = cfgModel.sqlSimpleName;
|
|
20
|
+
const enableStandardUpdateCfg = cfgModel.enableStandardUpdateCfg; // 用于设置data字段
|
|
21
|
+
const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
|
|
22
|
+
// 彻底关闭
|
|
23
|
+
if (enableStandardUpdateCfg === false) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const getDataCfgArray = () => {
|
|
27
|
+
// 明确有配置
|
|
28
|
+
if (Array.isArray(enableStandardUpdateCfg)) {
|
|
29
|
+
if (enableStandardUpdateCfg.includes('null')) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
return enableStandardUpdateCfg;
|
|
33
|
+
}
|
|
34
|
+
// update 、insert 添加 by
|
|
35
|
+
return ['by']; // 创建/修改语句默认添加by
|
|
36
|
+
};
|
|
37
|
+
const getConditionCfgArray = () => {
|
|
38
|
+
// 明确有配置
|
|
39
|
+
if (Array.isArray(enableStandardUpdateCfgCondition)) {
|
|
40
|
+
if (enableStandardUpdateCfgCondition.includes('null')) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
return enableStandardUpdateCfgCondition;
|
|
44
|
+
}
|
|
45
|
+
return [];
|
|
46
|
+
};
|
|
47
|
+
const dataCfgArray = getDataCfgArray();
|
|
48
|
+
const conditionCfgArray = getConditionCfgArray();
|
|
49
|
+
const mapping = {
|
|
50
|
+
'condition.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
51
|
+
'condition.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
52
|
+
'data.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
53
|
+
'data.created_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
54
|
+
'data.created_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
55
|
+
'data.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
56
|
+
'data.modified_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
|
|
57
|
+
'data.modified_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
|
|
58
|
+
'data.modified_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
|
|
59
|
+
'data.modified_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
|
|
60
|
+
};
|
|
61
|
+
const buildUpdateCfgBy = (cfgArray, prefix) => {
|
|
62
|
+
const obj = {};
|
|
63
|
+
if (Array.isArray(cfgArray)) {
|
|
64
|
+
for (let i = 0; i < cfgArray.length; i++) {
|
|
65
|
+
const suffix = cfgArray[i];
|
|
66
|
+
if (suffix) {
|
|
67
|
+
const key = `${prefix}_${suffix}`;
|
|
68
|
+
obj[key] = mapping[key];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return obj;
|
|
73
|
+
};
|
|
74
|
+
// 查询语句
|
|
75
|
+
if (isSimpleQuery(sqlSimpleName)) {
|
|
76
|
+
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
|
|
77
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
78
|
+
}
|
|
79
|
+
// 删除语句
|
|
80
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_DELETE) {
|
|
81
|
+
const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
|
|
82
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj);
|
|
83
|
+
}
|
|
84
|
+
// 插入语句
|
|
85
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT) {
|
|
86
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
87
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
88
|
+
}
|
|
89
|
+
// 更新语句
|
|
90
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE) {
|
|
91
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
92
|
+
const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
93
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
94
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
95
|
+
}
|
|
96
|
+
// 插入或更新
|
|
97
|
+
if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE ||
|
|
98
|
+
sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
|
|
99
|
+
const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
|
|
100
|
+
const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
|
|
101
|
+
const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
|
|
102
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj1);
|
|
103
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj2);
|
|
104
|
+
Object.assign(cfgModel.updateCfg, updateCfgObj3);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.fixCfgModel = fixCfgModel;
|
|
@@ -24,6 +24,7 @@ const WeightedRandom_1 = require("./WeightedRandom");
|
|
|
24
24
|
const WeightedRoundRobin_1 = require("./WeightedRoundRobin");
|
|
25
25
|
const WorkbenchService_1 = require("../WorkbenchService");
|
|
26
26
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
27
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
27
28
|
function toUpstreamInfo(config_content) {
|
|
28
29
|
const obj = (0, functions_1.parseJsonObject)(config_content);
|
|
29
30
|
if (!obj) {
|
|
@@ -79,6 +80,7 @@ let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseSe
|
|
|
79
80
|
return routeTrie;
|
|
80
81
|
}
|
|
81
82
|
async buildUpstreamMap() {
|
|
83
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
82
84
|
// biz_tag={'upstream'}
|
|
83
85
|
const res = await this.curdProService.executeCrudByCfg({
|
|
84
86
|
condition: {
|
|
@@ -86,8 +88,8 @@ let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseSe
|
|
|
86
88
|
},
|
|
87
89
|
}, {
|
|
88
90
|
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
89
|
-
sqlDatabase:
|
|
90
|
-
|
|
91
|
+
sqlDatabase: SystemDbName,
|
|
92
|
+
sqlDbType: SystemDbType,
|
|
91
93
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
92
94
|
});
|
|
93
95
|
const upstreamMap = {};
|
|
@@ -100,12 +102,13 @@ let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseSe
|
|
|
100
102
|
return upstreamMap;
|
|
101
103
|
}
|
|
102
104
|
async loadProxyApiEntity(workbench_code, upstreamMap) {
|
|
105
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
103
106
|
const res = await this.curdProService.executeCrudByCfg({
|
|
104
107
|
condition: {},
|
|
105
108
|
}, {
|
|
106
109
|
sqlTable: SystemTables_1.SystemTables.sys_proxyapi,
|
|
107
|
-
sqlDatabase:
|
|
108
|
-
|
|
110
|
+
sqlDatabase: SystemDbName,
|
|
111
|
+
sqlDbType: SystemDbType,
|
|
109
112
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
110
113
|
});
|
|
111
114
|
const rows0 = res.getResRows();
|
|
@@ -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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "midway-fatcms",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.22",
|
|
4
4
|
"description": "This is a midway component sample",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -17,9 +17,16 @@
|
|
|
17
17
|
"dist/**/*.txt",
|
|
18
18
|
"dist/**/*.js",
|
|
19
19
|
"dist/**/*.d.ts",
|
|
20
|
+
"dist/**/*.html",
|
|
21
|
+
"dist/**/*.ico",
|
|
20
22
|
"src/**/*.ts",
|
|
21
23
|
"src/**/*.txt",
|
|
22
|
-
"
|
|
24
|
+
"src/**/*.html",
|
|
25
|
+
"src/**/*.ico",
|
|
26
|
+
"index.d.ts",
|
|
27
|
+
"tsconfig.json",
|
|
28
|
+
".prettierrc.js",
|
|
29
|
+
".eslintrc.json"
|
|
23
30
|
],
|
|
24
31
|
"license": "MIT",
|
|
25
32
|
"devDependencies": {
|
|
@@ -3,24 +3,25 @@ import { tmpdir } from 'os';
|
|
|
3
3
|
import { join } from 'path';
|
|
4
4
|
import { readFileSync } from 'fs';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
6
|
export default (appInfo: any) => {
|
|
9
7
|
return {
|
|
10
|
-
|
|
11
8
|
siteFile: {
|
|
12
9
|
favicon: readFileSync(join(__dirname, '../views/static/favicon.ico')),
|
|
13
10
|
},
|
|
14
11
|
|
|
15
|
-
encryptedFieldList: [
|
|
16
|
-
|
|
17
|
-
],
|
|
12
|
+
encryptedFieldList: [],
|
|
18
13
|
|
|
19
14
|
/**
|
|
20
15
|
* 内置超级管理员用户
|
|
21
16
|
* 可以使用这个工具生成:http://127.0.0.1:7002/ns/api/helpers/generateDatabasePassword?loginName=xxxx&pw0=xxxx
|
|
22
17
|
*/
|
|
23
|
-
superAdminList: [
|
|
18
|
+
superAdminList: [
|
|
19
|
+
{
|
|
20
|
+
pwd_salt: 'c837f8c6de7261de228ec58b1b3ca9fa1htbvgm88',
|
|
21
|
+
pwd_md5: 'e334410fca1fd49972f63bf91f3be1be',
|
|
22
|
+
login_name: 'superadmin',
|
|
23
|
+
},
|
|
24
|
+
],
|
|
24
25
|
|
|
25
26
|
// use for cookie sign key, should change to your own and keep security
|
|
26
27
|
keys: '1715169944707_323',
|
|
@@ -40,7 +41,11 @@ export default (appInfo: any) => {
|
|
|
40
41
|
jsonLimit: '1mb',
|
|
41
42
|
textLimit: '1mb',
|
|
42
43
|
xmlLimit: '1mb',
|
|
43
|
-
ignore: [
|
|
44
|
+
ignore: [
|
|
45
|
+
'/ns/gw/proxy/*',
|
|
46
|
+
'/ns/gw/file/uploadFile',
|
|
47
|
+
'/ns/api/manage/deploy/uploadAssets',
|
|
48
|
+
], // 忽略代理路径的 body 解析
|
|
44
49
|
},
|
|
45
50
|
|
|
46
51
|
mysql2: {
|
|
@@ -57,7 +62,7 @@ export default (appInfo: any) => {
|
|
|
57
62
|
},
|
|
58
63
|
},
|
|
59
64
|
postgres2: {
|
|
60
|
-
|
|
65
|
+
postgres_test_fatcms_inner_demo_config: {
|
|
61
66
|
user: 'postgres',
|
|
62
67
|
host: '127.0.0.1',
|
|
63
68
|
database: 'postgres',
|
|
@@ -66,12 +71,11 @@ export default (appInfo: any) => {
|
|
|
66
71
|
max: 20, // 连接池最大连接数
|
|
67
72
|
idleTimeoutMillis: 30000, // 空闲连接超时时间(毫秒)
|
|
68
73
|
connectionTimeoutMillis: 2000, // 连接超时时间(毫秒)
|
|
69
|
-
}
|
|
74
|
+
},
|
|
70
75
|
},
|
|
71
76
|
|
|
72
|
-
|
|
73
77
|
sqlserver2: {
|
|
74
|
-
|
|
78
|
+
sqlserver_master_fatcms_inner_demo_config: {
|
|
75
79
|
user: 'sa',
|
|
76
80
|
password: '123456', // 你的SA密码
|
|
77
81
|
server: '127.0.0.1',
|
|
@@ -79,20 +83,20 @@ export default (appInfo: any) => {
|
|
|
79
83
|
database: 'master', // 默认数据库
|
|
80
84
|
options: {
|
|
81
85
|
encrypt: false, // Docker容器内通常不需要加密
|
|
82
|
-
trustServerCertificate: true // 信任自签名证书
|
|
86
|
+
trustServerCertificate: true, // 信任自签名证书
|
|
83
87
|
},
|
|
84
88
|
pool: {
|
|
85
|
-
max: 30,
|
|
86
|
-
min: 1,
|
|
87
|
-
idleTimeoutMillis: 30000
|
|
88
|
-
}
|
|
89
|
-
}
|
|
89
|
+
max: 30, // 最大连接数
|
|
90
|
+
min: 1, // 最小连接数
|
|
91
|
+
idleTimeoutMillis: 30000, // 连接空闲超时时间(毫秒)
|
|
92
|
+
},
|
|
93
|
+
},
|
|
90
94
|
},
|
|
91
95
|
|
|
92
96
|
redis: {
|
|
93
97
|
client: {
|
|
94
98
|
port: 6379, // Redis port
|
|
95
|
-
host:
|
|
99
|
+
host: '127.0.0.1', // Redis host
|
|
96
100
|
},
|
|
97
101
|
},
|
|
98
102
|
|
|
@@ -122,7 +126,34 @@ export default (appInfo: any) => {
|
|
|
122
126
|
fileSize: '20mb',
|
|
123
127
|
limit: '20mb',
|
|
124
128
|
// whitelist: string[],文件扩展名白名单
|
|
125
|
-
whitelist: [
|
|
129
|
+
whitelist: [
|
|
130
|
+
'.jpg',
|
|
131
|
+
'.jpeg',
|
|
132
|
+
'.png',
|
|
133
|
+
'.gif',
|
|
134
|
+
'.pdf',
|
|
135
|
+
'.zip',
|
|
136
|
+
'.xlsx',
|
|
137
|
+
'.docx',
|
|
138
|
+
'.pptx',
|
|
139
|
+
'.txt',
|
|
140
|
+
'.md',
|
|
141
|
+
'.json',
|
|
142
|
+
'.js',
|
|
143
|
+
'.cjs',
|
|
144
|
+
'.ejs',
|
|
145
|
+
'.jsx',
|
|
146
|
+
'.css',
|
|
147
|
+
'.java',
|
|
148
|
+
'.ts',
|
|
149
|
+
'.tsx',
|
|
150
|
+
'.less',
|
|
151
|
+
'.scss',
|
|
152
|
+
'.html',
|
|
153
|
+
'.ttf',
|
|
154
|
+
'.map',
|
|
155
|
+
'.svg',
|
|
156
|
+
],
|
|
126
157
|
// tmpdir: string,上传的文件临时存储路径
|
|
127
158
|
tmpdir: join(tmpdir(), 'fatcms-upload-files'),
|
|
128
159
|
// cleanTimeout: number,上传的文件在临时目录中多久之后自动删除,默认为 5 分钟
|
|
@@ -148,25 +179,25 @@ export default (appInfo: any) => {
|
|
|
148
179
|
ejs: {},
|
|
149
180
|
|
|
150
181
|
info: {
|
|
151
|
-
infoPath: `/_my_info_${Date.now()}_${Math.floor(
|
|
182
|
+
infoPath: `/_my_info_${Date.now()}_${Math.floor(
|
|
183
|
+
Math.random() * 1000000
|
|
184
|
+
)}`, // 实际上隐藏了info路径
|
|
152
185
|
},
|
|
153
186
|
|
|
154
187
|
// 使用浏览器插件配置header信息:插件名:ModHeader - Modify HTTP headers
|
|
155
188
|
// 默认值:配置key:fatcmsdebug, 配置value: headerSecret的值
|
|
156
189
|
fatcmsDebug: {
|
|
157
|
-
headerKey: '
|
|
158
|
-
headerSecret: '
|
|
190
|
+
headerKey: 'fatcmsDebug',
|
|
191
|
+
headerSecret: '111',
|
|
159
192
|
},
|
|
160
193
|
|
|
161
194
|
// 是否开启SA账号。只有账号密码没有用,必须通过ModHeader插件设置如下字段
|
|
162
195
|
fatcmsSAEnable: {
|
|
163
|
-
headerKey: '
|
|
164
|
-
headerSecret: '
|
|
196
|
+
headerKey: 'fatcmsSAEnable',
|
|
197
|
+
headerSecret: '222',
|
|
165
198
|
},
|
|
166
199
|
|
|
167
200
|
// 是否启用内置的定时任务
|
|
168
201
|
fatcmsScheduleService: true,
|
|
169
|
-
|
|
170
|
-
|
|
171
202
|
} as MidwayConfig;
|
|
172
203
|
};
|