midway-fatcms 0.0.1-beta.2 → 0.0.1-beta.20
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 +9 -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/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/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/DeployManageApi.d.ts +1 -1
- package/dist/controller/manage/DeployManageApi.js +38 -34
- package/dist/controller/manage/MenuManageApi.js +1 -1
- 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 +6 -4
- 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 +5 -0
- package/dist/controller/manage/WorkbenchMangeApi.js +1 -1
- 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 +22 -11
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +10 -9
- 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 +31 -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/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 +226 -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 +1 -0
- package/dist/service/crudstd/CrudStdService.js +34 -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 +19 -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 +9 -9
- package/src/controller/manage/AppLogMangeApi.ts +3 -3
- package/src/controller/manage/AppMangeApi.ts +5 -5
- package/src/controller/manage/AppPageMangeApi.ts +3 -3
- package/src/controller/manage/AppSchemaHistoryApi.ts +1 -1
- package/src/controller/manage/CrudMethodsMangeApi.ts +3 -3
- package/src/controller/manage/CrudStandardDesignApi.ts +106 -113
- package/src/controller/manage/DataDictManageApi.ts +4 -4
- package/src/controller/manage/DeployManageApi.ts +85 -89
- package/src/controller/manage/DocLibManageApi.ts +3 -3
- package/src/controller/manage/DocManageApi.ts +8 -8
- package/src/controller/manage/MenuManageApi.ts +9 -14
- package/src/controller/manage/SuperAdminManageApi.ts +14 -13
- package/src/controller/manage/SysConfigMangeApi.ts +9 -9
- package/src/controller/manage/SystemInfoManageApi.ts +11 -6
- package/src/controller/manage/UserAccountManageApi.ts +8 -2
- package/src/controller/manage/WorkbenchMangeApi.ts +6 -6
- 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 +26 -19
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +38 -50
- 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 +35 -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/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 +249 -0
- package/src/service/asyncTask/AsyncTaskService.ts +21 -0
- package/src/service/base/BaseService.ts +2 -2
- package/src/service/crudstd/CrudStdService.ts +43 -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
|
@@ -84,7 +84,7 @@ async function isCsrfTokenValid(ctx) {
|
|
|
84
84
|
const depryptToken = await crypto_utils_1.privateAES.time_decrypt_base64_utf8(fatcmscsrftoken);
|
|
85
85
|
if (depryptToken) {
|
|
86
86
|
const num = Number(depryptToken);
|
|
87
|
-
if (num &&
|
|
87
|
+
if (num && num + 6 * 3600 * 1000 > Date.now()) {
|
|
88
88
|
return true;
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -98,7 +98,7 @@ exports.isCsrfTokenValid = isCsrfTokenValid;
|
|
|
98
98
|
async function assertCsrfToken(ctx) {
|
|
99
99
|
const isOK = await isCsrfTokenValid(ctx);
|
|
100
100
|
if (!isOK) {
|
|
101
|
-
throw new exceptions_1.CommonException(
|
|
101
|
+
throw new exceptions_1.CommonException('ASSERT_CSRF_TOKEN_ERROR', 'CSRF_TOKEN 验证失败');
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
exports.assertCsrfToken = assertCsrfToken;
|
|
@@ -9,24 +9,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.ForbiddenMiddleware = void 0;
|
|
10
10
|
const core_1 = require("@midwayjs/core");
|
|
11
11
|
// 一些爬虫/漏洞分析工具会来请求这玩意。
|
|
12
|
-
const blackEqualList = [
|
|
13
|
-
|
|
14
|
-
'/backend/.env',
|
|
15
|
-
'/application.yml',
|
|
16
|
-
'/db.ini',
|
|
17
|
-
'/.well-known/security.txt',
|
|
18
|
-
];
|
|
19
|
-
const blackPrefixList = [
|
|
20
|
-
'/.aws/',
|
|
21
|
-
'/.git/',
|
|
22
|
-
'/.svn/',
|
|
23
|
-
'/.env/',
|
|
24
|
-
'/src/',
|
|
25
|
-
'/var/logs/',
|
|
26
|
-
'/var/log/',
|
|
27
|
-
'/cgi-bin/',
|
|
28
|
-
'/php-cgi/',
|
|
29
|
-
];
|
|
12
|
+
const blackEqualList = ['/config.json', '/backend/.env', '/application.yml', '/db.ini', '/.well-known/security.txt'];
|
|
13
|
+
const blackPrefixList = ['/.aws/', '/.git/', '/.svn/', '/.env/', '/src/', '/var/logs/', '/var/log/', '/cgi-bin/', '/php-cgi/'];
|
|
30
14
|
/**
|
|
31
15
|
* 针对一些路径禁止访问。避免一些爬虫抓取网站内容,实际上这里枚举的路径,本身就是不存在的。只是为了提前拦截,为了服务器性能考虑。
|
|
32
16
|
*/
|
|
@@ -55,9 +39,9 @@ let ForbiddenMiddleware = class ForbiddenMiddleware {
|
|
|
55
39
|
}
|
|
56
40
|
resolve() {
|
|
57
41
|
return async (ctx, next) => {
|
|
58
|
-
ctx.set({
|
|
42
|
+
ctx.set({ 'content-type': 'text/html; charset=utf-8' });
|
|
59
43
|
ctx.status = 404;
|
|
60
|
-
ctx.body =
|
|
44
|
+
ctx.body = '404!404!404!重要的事情说三遍!';
|
|
61
45
|
};
|
|
62
46
|
}
|
|
63
47
|
static getName() {
|
|
@@ -186,13 +186,20 @@ async function trackRequest(ctx) {
|
|
|
186
186
|
console.error('trackRequestError', e);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
+
const excludePathPrefix = ['/ns/static/', '/ns/api/helpers'];
|
|
189
190
|
/**
|
|
190
191
|
* 全局中间件
|
|
191
192
|
*/
|
|
192
193
|
let GlobalMiddleware = class GlobalMiddleware {
|
|
193
194
|
match(ctx) {
|
|
194
195
|
const path = ctx.path;
|
|
195
|
-
|
|
196
|
+
for (let i = 0; i < excludePathPrefix.length; i++) {
|
|
197
|
+
const excludePathPrefix1 = excludePathPrefix[i];
|
|
198
|
+
if (path.startsWith(excludePathPrefix1)) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return true;
|
|
196
203
|
}
|
|
197
204
|
resolve() {
|
|
198
205
|
return async (ctx, next) => {
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface SysAsyncTaskEntity {
|
|
2
|
+
id: number;
|
|
3
|
+
task_uuid: string;
|
|
4
|
+
task_name: string;
|
|
5
|
+
task_description: string | null;
|
|
6
|
+
task_type: string;
|
|
7
|
+
task_status: SysAsyncTaskStatus;
|
|
8
|
+
input_params: any;
|
|
9
|
+
output_result: any | null;
|
|
10
|
+
input_file_path: string | null;
|
|
11
|
+
input_file_format: SysAsyncFileFormat | null;
|
|
12
|
+
input_file_size: number | null;
|
|
13
|
+
output_file_path: string | null;
|
|
14
|
+
output_file_format: SysAsyncFileFormat | null;
|
|
15
|
+
output_file_size: number | null;
|
|
16
|
+
input_total_records: number | null;
|
|
17
|
+
output_total_records: number | null;
|
|
18
|
+
processed_records: number;
|
|
19
|
+
progress: number;
|
|
20
|
+
error_message: string | null;
|
|
21
|
+
error_records: any | null;
|
|
22
|
+
created_by: string | null;
|
|
23
|
+
priority: number;
|
|
24
|
+
retry_count: number;
|
|
25
|
+
max_retries: number;
|
|
26
|
+
parent_task_id: number | null;
|
|
27
|
+
created_at: Date;
|
|
28
|
+
started_at: Date | null;
|
|
29
|
+
updated_at: Date;
|
|
30
|
+
expired_at: Date | null;
|
|
31
|
+
completed_at: Date | null;
|
|
32
|
+
created_user_session: string;
|
|
33
|
+
}
|
|
34
|
+
export declare type SysAsyncTaskPartial = Partial<SysAsyncTaskEntity>;
|
|
35
|
+
export declare enum SysAsyncTaskStatus {
|
|
36
|
+
PENDING = "PENDING",
|
|
37
|
+
RUNNING = "RUNNING",
|
|
38
|
+
SUCCEEDED = "SUCCEEDED",
|
|
39
|
+
PART_SUCCEEDED = "PART_SUCCEEDED",
|
|
40
|
+
FAILED = "FAILED",
|
|
41
|
+
CANCELLED = "CANCELLED",
|
|
42
|
+
PAUSED = "PAUSED"
|
|
43
|
+
}
|
|
44
|
+
export declare enum SysAsyncFileFormat {
|
|
45
|
+
XLSX = "xlsx",
|
|
46
|
+
CSV = "csv",
|
|
47
|
+
JSON = "json",
|
|
48
|
+
PDF = "pdf",
|
|
49
|
+
TXT = "txt",
|
|
50
|
+
XML = "xml",
|
|
51
|
+
ZIP = "zip",
|
|
52
|
+
HTML = "html",
|
|
53
|
+
PNG = "png",
|
|
54
|
+
JPG = "jpg"
|
|
55
|
+
}
|
|
56
|
+
export interface ISysAsyncTaskHandler {
|
|
57
|
+
execute(asyncTaskContext: SysAsyncTaskContext): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
export interface SysAsyncTaskContext {
|
|
60
|
+
task: SysAsyncTaskEntity;
|
|
61
|
+
updateTaskStatus: (sysAsyncTaskPartial: SysAsyncTaskPartial) => any;
|
|
62
|
+
}
|
|
63
|
+
export interface SysAsyncTaskHandlerConfig {
|
|
64
|
+
taskType: string;
|
|
65
|
+
handler: ISysAsyncTaskHandler;
|
|
66
|
+
maxRetries?: number;
|
|
67
|
+
priority?: number;
|
|
68
|
+
expireSeconds?: number;
|
|
69
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SysAsyncFileFormat = exports.SysAsyncTaskStatus = void 0;
|
|
4
|
+
var SysAsyncTaskStatus;
|
|
5
|
+
(function (SysAsyncTaskStatus) {
|
|
6
|
+
SysAsyncTaskStatus["PENDING"] = "PENDING";
|
|
7
|
+
SysAsyncTaskStatus["RUNNING"] = "RUNNING";
|
|
8
|
+
SysAsyncTaskStatus["SUCCEEDED"] = "SUCCEEDED";
|
|
9
|
+
SysAsyncTaskStatus["PART_SUCCEEDED"] = "PART_SUCCEEDED";
|
|
10
|
+
SysAsyncTaskStatus["FAILED"] = "FAILED";
|
|
11
|
+
SysAsyncTaskStatus["CANCELLED"] = "CANCELLED";
|
|
12
|
+
SysAsyncTaskStatus["PAUSED"] = "PAUSED";
|
|
13
|
+
})(SysAsyncTaskStatus = exports.SysAsyncTaskStatus || (exports.SysAsyncTaskStatus = {}));
|
|
14
|
+
var SysAsyncFileFormat;
|
|
15
|
+
(function (SysAsyncFileFormat) {
|
|
16
|
+
SysAsyncFileFormat["XLSX"] = "xlsx";
|
|
17
|
+
SysAsyncFileFormat["CSV"] = "csv";
|
|
18
|
+
SysAsyncFileFormat["JSON"] = "json";
|
|
19
|
+
SysAsyncFileFormat["PDF"] = "pdf";
|
|
20
|
+
SysAsyncFileFormat["TXT"] = "txt";
|
|
21
|
+
SysAsyncFileFormat["XML"] = "xml";
|
|
22
|
+
SysAsyncFileFormat["ZIP"] = "zip";
|
|
23
|
+
SysAsyncFileFormat["HTML"] = "html";
|
|
24
|
+
SysAsyncFileFormat["PNG"] = "png";
|
|
25
|
+
SysAsyncFileFormat["JPG"] = "jpg";
|
|
26
|
+
})(SysAsyncFileFormat = exports.SysAsyncFileFormat || (exports.SysAsyncFileFormat = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisKeys = void 0;
|
|
4
|
+
const RedisKeys = {
|
|
5
|
+
ASYNC_TASK_LOCK: "FatAsyncTaskLock",
|
|
6
|
+
ASYNC_TASK_UPDATE_TIME: "FatAsyncTaskUpdateTime",
|
|
7
|
+
USER_SESSION_PREFIX: "FatUserSession_",
|
|
8
|
+
VISIT_STAT_LOCK_PREFIX: "FatVsLock_",
|
|
9
|
+
VISIT_STAT_DATE_PREFIX: "FatVsDate_",
|
|
10
|
+
};
|
|
11
|
+
exports.RedisKeys = RedisKeys;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SqlDbType } from "../libs/crud-pro/models/keys";
|
|
2
1
|
export declare const SystemTables: {
|
|
3
2
|
sys_workbench: string;
|
|
4
3
|
sys_user_account: string;
|
|
@@ -21,7 +20,6 @@ export declare const SystemTables: {
|
|
|
21
20
|
sys_anyapi: string;
|
|
22
21
|
sys_proxyapi: string;
|
|
23
22
|
sys_visit_stats: string;
|
|
23
|
+
sys_async_tasks: string;
|
|
24
24
|
};
|
|
25
|
-
export declare const SystemDbName = "fatcms";
|
|
26
|
-
export declare const SystemDbType = SqlDbType.mysql;
|
|
27
25
|
export declare const SystemDevOpsWorkbench = "devops";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SystemDevOpsWorkbench = exports.
|
|
4
|
-
const keys_1 = require("../libs/crud-pro/models/keys");
|
|
3
|
+
exports.SystemDevOpsWorkbench = exports.SystemTables = void 0;
|
|
5
4
|
exports.SystemTables = {
|
|
6
5
|
sys_workbench: 'sys_workbench',
|
|
7
6
|
sys_user_account: 'sys_user_account',
|
|
@@ -24,7 +23,6 @@ exports.SystemTables = {
|
|
|
24
23
|
sys_anyapi: 'sys_anyapi',
|
|
25
24
|
sys_proxyapi: 'sys_proxyapi',
|
|
26
25
|
sys_visit_stats: 'sys_visit_stats',
|
|
26
|
+
sys_async_tasks: 'sys_async_tasks',
|
|
27
27
|
};
|
|
28
|
-
exports.SystemDbName = 'fatcms';
|
|
29
|
-
exports.SystemDbType = keys_1.SqlDbType.mysql;
|
|
30
28
|
exports.SystemDevOpsWorkbench = 'devops';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as koa from '@midwayjs/koa';
|
|
2
|
+
export declare type RunServiceAtAnonymousContextRunner = (ctx: koa.IMidwayKoaContext) => any;
|
|
3
|
+
declare class AnonymousContext {
|
|
4
|
+
private app;
|
|
5
|
+
setApp(app: koa.Application): void;
|
|
6
|
+
getApp(): koa.IMidwayKoaApplication;
|
|
7
|
+
runServiceAtAnonymousContext(runner: RunServiceAtAnonymousContextRunner): Promise<{
|
|
8
|
+
result: any;
|
|
9
|
+
error: any;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
declare const ANONYMOUS_CONTEXT: AnonymousContext;
|
|
13
|
+
export { ANONYMOUS_CONTEXT };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ANONYMOUS_CONTEXT = void 0;
|
|
4
|
+
const contextLogger_1 = require("../models/contextLogger");
|
|
5
|
+
const Transaction_1 = require("../libs/crud-pro/models/Transaction");
|
|
6
|
+
const userSession_1 = require("../models/userSession");
|
|
7
|
+
const anonymousUserInfo = {
|
|
8
|
+
nickName: 'anonymous_user',
|
|
9
|
+
avatar: '',
|
|
10
|
+
roleCodes: [],
|
|
11
|
+
functionCodes: [],
|
|
12
|
+
loginName: 'anonymous_user',
|
|
13
|
+
sessionId: '',
|
|
14
|
+
accountId: '',
|
|
15
|
+
workbenchCode: '',
|
|
16
|
+
accountType: userSession_1.SYS_ACCOUNT_TYPE,
|
|
17
|
+
};
|
|
18
|
+
const anonymousWorkbenchInfo = {
|
|
19
|
+
id: 0,
|
|
20
|
+
workbench_code: 'anonymous_workbench',
|
|
21
|
+
workbench_name: 'anonymous_workbench',
|
|
22
|
+
workbench_domain: 'anonymous_workbench',
|
|
23
|
+
workbench_desc: 'anonymous_workbench',
|
|
24
|
+
html_content: 'anonymous_workbench',
|
|
25
|
+
status: 1,
|
|
26
|
+
workbench_type: 0,
|
|
27
|
+
};
|
|
28
|
+
class AnonymousContext {
|
|
29
|
+
setApp(app) {
|
|
30
|
+
this.app = app;
|
|
31
|
+
}
|
|
32
|
+
getApp() {
|
|
33
|
+
return this.app;
|
|
34
|
+
}
|
|
35
|
+
async runServiceAtAnonymousContext(runner) {
|
|
36
|
+
const app = this.app;
|
|
37
|
+
const ctx = app.createAnonymousContext();
|
|
38
|
+
ctx.app = app;
|
|
39
|
+
ctx.contextLogger = new contextLogger_1.ContextLogger(ctx);
|
|
40
|
+
ctx.transaction = new Transaction_1.Transaction();
|
|
41
|
+
ctx.userSession = new userSession_1.UserSessionInfo(anonymousUserInfo, true);
|
|
42
|
+
ctx.workbenchInfo = anonymousWorkbenchInfo;
|
|
43
|
+
let result = null;
|
|
44
|
+
let error = null;
|
|
45
|
+
try {
|
|
46
|
+
result = await runner(ctx);
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
error = e;
|
|
50
|
+
ctx.logger.error(`runServiceAtAnonymousContext error `, e);
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
await ctx.transaction.releaseTx();
|
|
54
|
+
}
|
|
55
|
+
return { result: result, error: error };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const ANONYMOUS_CONTEXT = new AnonymousContext();
|
|
59
|
+
exports.ANONYMOUS_CONTEXT = ANONYMOUS_CONTEXT;
|
package/dist/schedule/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { SCHEDULE_QUEUE, runScheduleTaskOnce } from './runSchedule';
|
|
2
|
+
import { ANONYMOUS_CONTEXT } from './anonymousContext';
|
|
3
|
+
import { INNER_SCHEDULE_INTERVAL } from './scheduleNames';
|
|
4
|
+
export { INNER_SCHEDULE_INTERVAL, ANONYMOUS_CONTEXT, SCHEDULE_QUEUE, runScheduleTaskOnce };
|
package/dist/schedule/index.js
CHANGED
|
@@ -1,69 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
functionCodes: [],
|
|
12
|
-
loginName: 'schedule_user',
|
|
13
|
-
sessionId: '',
|
|
14
|
-
accountId: '',
|
|
15
|
-
workbenchCode: '',
|
|
16
|
-
accountType: userSession_1.SYS_ACCOUNT_TYPE,
|
|
17
|
-
};
|
|
18
|
-
const scheduleWorkbenchInfo = {
|
|
19
|
-
id: 0,
|
|
20
|
-
workbench_code: 'schedule_workbench',
|
|
21
|
-
workbench_name: 'schedule_workbench',
|
|
22
|
-
workbench_domain: 'schedule_workbench',
|
|
23
|
-
workbench_desc: 'schedule_workbench',
|
|
24
|
-
html_content: 'schedule_workbench',
|
|
25
|
-
status: 1,
|
|
26
|
-
workbench_type: 0,
|
|
27
|
-
};
|
|
28
|
-
async function runScheduleService(app, serviceName) {
|
|
29
|
-
const ctx = app.createAnonymousContext();
|
|
30
|
-
ctx.app = app;
|
|
31
|
-
ctx.contextLogger = new contextLogger_1.ContextLogger(ctx);
|
|
32
|
-
ctx.transaction = new Transaction_1.Transaction();
|
|
33
|
-
ctx.userSession = new userSession_1.UserSessionInfo(scheduleUserInfo, true);
|
|
34
|
-
ctx.workbenchInfo = scheduleWorkbenchInfo;
|
|
35
|
-
try {
|
|
36
|
-
const serviceObject = await ctx.requestContext.getAsync(serviceName);
|
|
37
|
-
if (serviceObject && serviceObject.runBySchedule) {
|
|
38
|
-
await serviceObject.runBySchedule();
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
ctx.logger.error(`runSchedule error , serviceName = ${serviceName}, 没有找到服务`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
ctx.logger.error(`runSchedule error , serviceName = ${serviceName}`, e);
|
|
46
|
-
}
|
|
47
|
-
finally {
|
|
48
|
-
await ctx.transaction.releaseTx();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
async function runSchedule(app, serviceList) {
|
|
52
|
-
for (let i = 0; i < serviceList.length; i++) {
|
|
53
|
-
const serviceName = serviceList[i];
|
|
54
|
-
try {
|
|
55
|
-
await runScheduleService(app, serviceName);
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
const ctx = app.createAnonymousContext();
|
|
59
|
-
ctx.logger.error(`runSchedule error , serviceName = ${serviceName}`, e);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async function startSchedule(app, serviceList) {
|
|
64
|
-
await runSchedule(app, serviceList);
|
|
65
|
-
setInterval(() => {
|
|
66
|
-
runSchedule(app, serviceList);
|
|
67
|
-
}, 2 * 60 * 1000);
|
|
68
|
-
}
|
|
69
|
-
exports.startSchedule = startSchedule;
|
|
3
|
+
exports.runScheduleTaskOnce = exports.SCHEDULE_QUEUE = exports.ANONYMOUS_CONTEXT = exports.INNER_SCHEDULE_INTERVAL = void 0;
|
|
4
|
+
const runSchedule_1 = require("./runSchedule");
|
|
5
|
+
Object.defineProperty(exports, "SCHEDULE_QUEUE", { enumerable: true, get: function () { return runSchedule_1.SCHEDULE_QUEUE; } });
|
|
6
|
+
Object.defineProperty(exports, "runScheduleTaskOnce", { enumerable: true, get: function () { return runSchedule_1.runScheduleTaskOnce; } });
|
|
7
|
+
const anonymousContext_1 = require("./anonymousContext");
|
|
8
|
+
Object.defineProperty(exports, "ANONYMOUS_CONTEXT", { enumerable: true, get: function () { return anonymousContext_1.ANONYMOUS_CONTEXT; } });
|
|
9
|
+
const scheduleNames_1 = require("./scheduleNames");
|
|
10
|
+
Object.defineProperty(exports, "INNER_SCHEDULE_INTERVAL", { enumerable: true, get: function () { return scheduleNames_1.INNER_SCHEDULE_INTERVAL; } });
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare function runScheduleTaskOnce(serviceName: string): Promise<{
|
|
2
|
+
result: any;
|
|
3
|
+
error: any;
|
|
4
|
+
}>;
|
|
5
|
+
declare class ScheduleQueue {
|
|
6
|
+
private scheduleIntervalMap;
|
|
7
|
+
setScheduleTask(serviceName: string, intervalTime: number): void;
|
|
8
|
+
removeScheduleTask(serviceName: string): void;
|
|
9
|
+
private isAlreadyTimeToExecute;
|
|
10
|
+
private runScheduleTaskOnceCheckTime;
|
|
11
|
+
private runScheduleServiceList;
|
|
12
|
+
startScheduleLoop(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
declare const SCHEDULE_QUEUE: ScheduleQueue;
|
|
15
|
+
export { SCHEDULE_QUEUE, runScheduleTaskOnce };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runScheduleTaskOnce = exports.SCHEDULE_QUEUE = void 0;
|
|
4
|
+
const anonymousContext_1 = require("./anonymousContext");
|
|
5
|
+
// 上次执行时间
|
|
6
|
+
const lastExecuteTimeMap = {};
|
|
7
|
+
const DEFAULT_SCHEDULE_INTERVAL = 2 * 60 * 1000;
|
|
8
|
+
async function runScheduleTaskOnce(serviceName) {
|
|
9
|
+
return await anonymousContext_1.ANONYMOUS_CONTEXT.runServiceAtAnonymousContext(async (ctx) => {
|
|
10
|
+
const serviceObject = await ctx.requestContext.getAsync(serviceName);
|
|
11
|
+
if (serviceObject && serviceObject.runBySchedule) {
|
|
12
|
+
await serviceObject.runBySchedule();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
ctx.logger.error(`runSchedule error , serviceName = ${serviceName}, 没有找到服务`);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
exports.runScheduleTaskOnce = runScheduleTaskOnce;
|
|
20
|
+
class ScheduleQueue {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.scheduleIntervalMap = new Map();
|
|
23
|
+
}
|
|
24
|
+
setScheduleTask(serviceName, intervalTime) {
|
|
25
|
+
this.scheduleIntervalMap.set(serviceName, intervalTime);
|
|
26
|
+
}
|
|
27
|
+
removeScheduleTask(serviceName) {
|
|
28
|
+
this.scheduleIntervalMap.delete(serviceName);
|
|
29
|
+
}
|
|
30
|
+
isAlreadyTimeToExecute(serviceName) {
|
|
31
|
+
if (!lastExecuteTimeMap[serviceName]) {
|
|
32
|
+
return true; // 可以执行
|
|
33
|
+
}
|
|
34
|
+
const intervalTime1 = this.scheduleIntervalMap.get(serviceName);
|
|
35
|
+
const intervalTime = intervalTime1 || DEFAULT_SCHEDULE_INTERVAL; // 时间间隔
|
|
36
|
+
const lastExecuteTime = lastExecuteTimeMap[serviceName];
|
|
37
|
+
return (Date.now() - lastExecuteTime) >= intervalTime;
|
|
38
|
+
}
|
|
39
|
+
async runScheduleTaskOnceCheckTime(serviceName) {
|
|
40
|
+
// 还没有到可以执行时间
|
|
41
|
+
if (!this.isAlreadyTimeToExecute(serviceName)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
lastExecuteTimeMap[serviceName] = Date.now();
|
|
45
|
+
await runScheduleTaskOnce(serviceName);
|
|
46
|
+
}
|
|
47
|
+
async runScheduleServiceList() {
|
|
48
|
+
const serviceListKeys = this.scheduleIntervalMap.keys();
|
|
49
|
+
const serviceList = [...serviceListKeys];
|
|
50
|
+
for (let i = 0; i < serviceList.length; i++) {
|
|
51
|
+
const serviceName = serviceList[i];
|
|
52
|
+
try {
|
|
53
|
+
await this.runScheduleTaskOnceCheckTime(serviceName);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
anonymousContext_1.ANONYMOUS_CONTEXT.getApp().getCoreLogger().error(`runSchedule error , serviceName = ${serviceName}`, e);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async startScheduleLoop() {
|
|
61
|
+
await this.runScheduleServiceList();
|
|
62
|
+
setInterval(() => {
|
|
63
|
+
this.runScheduleServiceList();
|
|
64
|
+
}, 1000); // 最少1秒执行一次
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const SCHEDULE_QUEUE = new ScheduleQueue();
|
|
68
|
+
exports.SCHEDULE_QUEUE = SCHEDULE_QUEUE;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const INNER_SCHEDULE_INTERVAL: {
|
|
2
|
+
proxyApiLoadService: number;
|
|
3
|
+
workbenchService: number;
|
|
4
|
+
visitStatService: number;
|
|
5
|
+
asyncTaskRunnerService: number;
|
|
6
|
+
};
|
|
7
|
+
declare const INNER_SCHEDULE_NAMES: {
|
|
8
|
+
proxyApiLoadService: string;
|
|
9
|
+
workbenchService: string;
|
|
10
|
+
visitStatService: string;
|
|
11
|
+
asyncTaskRunnerService: string;
|
|
12
|
+
};
|
|
13
|
+
export { INNER_SCHEDULE_INTERVAL, INNER_SCHEDULE_NAMES };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INNER_SCHEDULE_NAMES = exports.INNER_SCHEDULE_INTERVAL = void 0;
|
|
4
|
+
const INNER_SCHEDULE_INTERVAL = {
|
|
5
|
+
proxyApiLoadService: 2 * 60 * 1000,
|
|
6
|
+
workbenchService: 60 * 1000,
|
|
7
|
+
visitStatService: 10 * 60 * 1000,
|
|
8
|
+
asyncTaskRunnerService: 1000, // 1s可以执行
|
|
9
|
+
};
|
|
10
|
+
exports.INNER_SCHEDULE_INTERVAL = INNER_SCHEDULE_INTERVAL;
|
|
11
|
+
const INNER_SCHEDULE_NAMES = {
|
|
12
|
+
proxyApiLoadService: 'proxyApiLoadService',
|
|
13
|
+
workbenchService: 'workbenchService',
|
|
14
|
+
visitStatService: "visitStatService",
|
|
15
|
+
asyncTaskRunnerService: "asyncTaskRunnerService",
|
|
16
|
+
};
|
|
17
|
+
exports.INNER_SCHEDULE_NAMES = INNER_SCHEDULE_NAMES;
|
|
@@ -22,6 +22,7 @@ const UserSessionService_1 = require("./UserSessionService");
|
|
|
22
22
|
const common_dto_1 = require("../libs/utils/common-dto");
|
|
23
23
|
const fatcms_request_1 = require("../libs/utils/fatcms-request");
|
|
24
24
|
const exceptions_1 = require("../libs/crud-pro/exceptions");
|
|
25
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
25
26
|
let AuthService = class AuthService {
|
|
26
27
|
/**
|
|
27
28
|
* 明文密码转unsaltedPwd密码
|
|
@@ -116,7 +117,7 @@ let AuthService = class AuthService {
|
|
|
116
117
|
sessionId,
|
|
117
118
|
accountId,
|
|
118
119
|
workbenchCode,
|
|
119
|
-
accountType: userSession_1.SYS_ACCOUNT_TYPE
|
|
120
|
+
accountType: userSession_1.SYS_ACCOUNT_TYPE,
|
|
120
121
|
};
|
|
121
122
|
await this.userSessionService.saveUserSession(sessionInfo);
|
|
122
123
|
return {
|
|
@@ -171,14 +172,15 @@ let AuthService = class AuthService {
|
|
|
171
172
|
* @private
|
|
172
173
|
*/
|
|
173
174
|
async queryUserRoleCodeList(accountId) {
|
|
175
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
174
176
|
const res = await this.curdMixService.executeCrudByCfg({
|
|
175
177
|
condition: { account_id: accountId },
|
|
176
178
|
limit: 10000,
|
|
177
179
|
}, {
|
|
178
180
|
sqlTable: SystemTables_1.SystemTables.sys_perm_user_role,
|
|
179
181
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
180
|
-
sqlDatabase:
|
|
181
|
-
|
|
182
|
+
sqlDatabase: SystemDbName,
|
|
183
|
+
sqlDbType: SystemDbType,
|
|
182
184
|
});
|
|
183
185
|
const rows = res.getResModel().rows || [];
|
|
184
186
|
const roleCodes = rows.map(({ role_code }) => {
|
|
@@ -195,14 +197,15 @@ let AuthService = class AuthService {
|
|
|
195
197
|
if (!roleCodeList || roleCodeList.length === 0) {
|
|
196
198
|
return [];
|
|
197
199
|
}
|
|
200
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
198
201
|
const res = await this.curdMixService.executeCrudByCfg({
|
|
199
202
|
condition: { role_code: { $in: roleCodeList } },
|
|
200
203
|
limit: 10000,
|
|
201
204
|
}, {
|
|
202
205
|
sqlTable: SystemTables_1.SystemTables.sys_perm_role_func,
|
|
203
206
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
204
|
-
sqlDatabase:
|
|
205
|
-
|
|
207
|
+
sqlDatabase: SystemDbName,
|
|
208
|
+
sqlDbType: SystemDbType,
|
|
206
209
|
});
|
|
207
210
|
const rows = res.getResModel().rows || [];
|
|
208
211
|
const funcCodes = rows.map(({ func_code }) => {
|
|
@@ -18,6 +18,7 @@ const SystemTables_1 = require("../models/SystemTables");
|
|
|
18
18
|
const parseConfig_1 = require("../libs/utils/parseConfig");
|
|
19
19
|
const RedisCacheService_1 = require("./base/RedisCacheService");
|
|
20
20
|
const CurdMixByLinkToCustomService_1 = require("./curd/CurdMixByLinkToCustomService");
|
|
21
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
21
22
|
function filterEmpty(e) {
|
|
22
23
|
return e.label && typeof e.value !== 'undefined';
|
|
23
24
|
}
|
|
@@ -70,13 +71,14 @@ let EnumInfoService = class EnumInfoService {
|
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
async queryEnumInfoBySysCfgEnum(code) {
|
|
74
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
73
75
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
74
76
|
condition: { config_code: code },
|
|
75
77
|
}, {
|
|
76
78
|
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
77
79
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
78
|
-
sqlDatabase:
|
|
79
|
-
|
|
80
|
+
sqlDatabase: SystemDbName,
|
|
81
|
+
sqlDbType: SystemDbType,
|
|
80
82
|
});
|
|
81
83
|
const obj = res1.getOneObj();
|
|
82
84
|
if (!obj) {
|
|
@@ -86,13 +88,14 @@ let EnumInfoService = class EnumInfoService {
|
|
|
86
88
|
return rows.map(e => ({ label: e.label, value: e.value, children: e.children })).filter(filterEmpty);
|
|
87
89
|
}
|
|
88
90
|
async queryEnumInfoItemByDict(code) {
|
|
91
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
89
92
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
90
93
|
condition: { dict_code: code },
|
|
91
94
|
}, {
|
|
92
95
|
sqlTable: SystemTables_1.SystemTables.sys_data_dict_item,
|
|
93
96
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
94
|
-
sqlDatabase:
|
|
95
|
-
|
|
97
|
+
sqlDatabase: SystemDbName,
|
|
98
|
+
sqlDbType: SystemDbType,
|
|
96
99
|
});
|
|
97
100
|
const obj = res1.getResRows();
|
|
98
101
|
if (!obj) {
|