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
|
@@ -21,6 +21,8 @@ const CrudStdRelationService_1 = require("./CrudStdRelationService");
|
|
|
21
21
|
const _ = require("lodash");
|
|
22
22
|
const ApiBaseService_1 = require("../base/ApiBaseService");
|
|
23
23
|
const DatabaseName_1 = require("../../libs/crud-pro/utils/DatabaseName");
|
|
24
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
25
|
+
const MixinUtils_1 = require("../../libs/crud-pro/utils/MixinUtils");
|
|
24
26
|
exports.SPECIAL_SETTING_KEY = {
|
|
25
27
|
QUERY_LIST: 'QUERY_LIST',
|
|
26
28
|
QUERY_ONE: 'QUERY_ONE',
|
|
@@ -39,7 +41,7 @@ let CrudStdService = class CrudStdService extends ApiBaseService_1.ApiBaseServic
|
|
|
39
41
|
const { dbType, dbName } = (0, DatabaseName_1.parseDatabaseName)(databaseName);
|
|
40
42
|
const cfgModel = {
|
|
41
43
|
sqlDatabase: dbName,
|
|
42
|
-
|
|
44
|
+
sqlDbType: dbType,
|
|
43
45
|
sqlTable: stdCrudCfgObj.tableBaseInfo.tableName,
|
|
44
46
|
sqlSimpleName,
|
|
45
47
|
};
|
|
@@ -53,6 +55,10 @@ let CrudStdService = class CrudStdService extends ApiBaseService_1.ApiBaseServic
|
|
|
53
55
|
}
|
|
54
56
|
// 根据用户配置,设置关联查询的数据信息。
|
|
55
57
|
await this.crudStdRelationService.addCfgModelColumnsRelation(cfgModel, appInfo);
|
|
58
|
+
// 根据表结构的数据类型,修正数据类型
|
|
59
|
+
await this.fixDataFieldTypeBySqlTableField(params, cfgModel, appInfo, { dbType, dbName });
|
|
60
|
+
// 业务系统自定义的修改cfgModel
|
|
61
|
+
await global_config_1.GLOBAL_STATIC_CONFIG.getConfig().bizUpdateCfgModelForCrudStd(params, cfgModel, appInfo, this.ctx);
|
|
56
62
|
return await this.curdMixService.executeCrudByCfg(params, cfgModel);
|
|
57
63
|
}
|
|
58
64
|
/**
|
|
@@ -112,12 +118,13 @@ let CrudStdService = class CrudStdService extends ApiBaseService_1.ApiBaseServic
|
|
|
112
118
|
* @private
|
|
113
119
|
*/
|
|
114
120
|
async getCrudStdAppInfo(appCode) {
|
|
121
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
115
122
|
this.logInfo('getCrudStdAppInfo', appCode);
|
|
116
123
|
const ss = {
|
|
117
124
|
sqlTable: SystemTables_1.SystemTables.sys_app,
|
|
118
125
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
119
|
-
sqlDatabase:
|
|
120
|
-
|
|
126
|
+
sqlDatabase: SystemDbName,
|
|
127
|
+
sqlDbType: SystemDbType,
|
|
121
128
|
};
|
|
122
129
|
return await this.curdMixService.executeCrudByCfg({ condition: { app_code: appCode } }, ss);
|
|
123
130
|
}
|
|
@@ -159,6 +166,30 @@ let CrudStdService = class CrudStdService extends ApiBaseService_1.ApiBaseServic
|
|
|
159
166
|
}
|
|
160
167
|
return true; // 无需鉴权
|
|
161
168
|
}
|
|
169
|
+
async fixDataFieldTypeBySqlTableField(params, cfgModel, appInfo, arg3) {
|
|
170
|
+
const tableFields = _.get(appInfo, 'stdCrudCfgObj.tableFields');
|
|
171
|
+
const tableFieldMap = MixinUtils_1.MixinUtils.toMap(tableFields, (e) => {
|
|
172
|
+
return e.fieldIndex;
|
|
173
|
+
});
|
|
174
|
+
if (arg3.dbType === keys_1.SqlDbType.postgres) {
|
|
175
|
+
if (cfgModel.sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT || cfgModel.sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE) {
|
|
176
|
+
const data = params.data || {};
|
|
177
|
+
const dataKeys = Object.keys(data);
|
|
178
|
+
for (let index = 0; index < dataKeys.length; index++) {
|
|
179
|
+
const dataKey = dataKeys[index];
|
|
180
|
+
const dataValue = data[dataKey];
|
|
181
|
+
const fieldInfo = tableFieldMap[dataKey];
|
|
182
|
+
const fieldType = ('' + _.get(fieldInfo, 'type')).toUpperCase();
|
|
183
|
+
if (fieldType === 'ARRAY') {
|
|
184
|
+
const dataValueArray = (0, functions_1.parseJsonObject)(dataValue);
|
|
185
|
+
if (Array.isArray(dataValueArray)) {
|
|
186
|
+
data[dataKey] = `{${dataValueArray.map(v => `"${v}"`).join(',')}}`;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
162
193
|
};
|
|
163
194
|
__decorate([
|
|
164
195
|
(0, core_1.Inject)(),
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SqlDbType } from "../../libs/crud-pro/models/keys";
|
|
2
|
+
import { IRequestModel } from "../../libs/crud-pro/interfaces";
|
|
3
|
+
import { IRequestCfgModel2 } from "../../models/bizmodels";
|
|
4
|
+
import { CrudPro } from "../../libs/crud-pro/CrudPro";
|
|
5
|
+
import { ResModelAffected, ResModelStandard } from "../../libs/crud-pro/models/ResModel";
|
|
6
|
+
export declare class CrudProQuick {
|
|
7
|
+
private readonly curdPro;
|
|
8
|
+
private readonly sqlDbType;
|
|
9
|
+
private readonly sqlDatabase;
|
|
10
|
+
private readonly sqlTable?;
|
|
11
|
+
private baseCfgModel;
|
|
12
|
+
constructor(curdPro: CrudPro, sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string);
|
|
13
|
+
setBaseCfgModel(baseCfgModel: IRequestCfgModel2): void;
|
|
14
|
+
private executeCrudByCfg;
|
|
15
|
+
getOne(reqJson: IRequestModel, sqlTable?: string): Promise<any>;
|
|
16
|
+
getList(reqJson: IRequestModel, sqlTable?: string): Promise<any[]>;
|
|
17
|
+
getListPage(reqJson: IRequestModel, sqlTable?: string): Promise<ResModelStandard>;
|
|
18
|
+
getTotalCount(reqJson: IRequestModel, sqlTable?: string): Promise<number>;
|
|
19
|
+
insertObject(reqJson: IRequestModel, sqlTable?: string): Promise<ResModelAffected>;
|
|
20
|
+
updateObject(reqJson: IRequestModel, sqlTable?: string): Promise<ResModelAffected>;
|
|
21
|
+
insertOrUpdate(reqJson: IRequestModel, sqlTable?: string): Promise<ResModelStandard>;
|
|
22
|
+
deleteObject(reqJson: IRequestModel, sqlTable?: string): Promise<ResModelAffected>;
|
|
23
|
+
executeSQL(executeSql: string, args?: any[]): Promise<any>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CrudProQuick = void 0;
|
|
4
|
+
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
5
|
+
class CrudProQuick {
|
|
6
|
+
constructor(curdPro, sqlDatabase, sqlDbType, sqlTable) {
|
|
7
|
+
this.baseCfgModel = {};
|
|
8
|
+
this.sqlDatabase = sqlDatabase;
|
|
9
|
+
this.sqlDbType = sqlDbType;
|
|
10
|
+
this.curdPro = curdPro;
|
|
11
|
+
this.sqlTable = sqlTable; // 全局sqlTable为空时,单独调用时就必须传sqlTable参数。
|
|
12
|
+
}
|
|
13
|
+
setBaseCfgModel(baseCfgModel) {
|
|
14
|
+
Object.assign(this.baseCfgModel, baseCfgModel);
|
|
15
|
+
}
|
|
16
|
+
async executeCrudByCfg(reqJson, cfgModel2) {
|
|
17
|
+
const cfgModel = { ...this.baseCfgModel };
|
|
18
|
+
Object.assign(cfgModel, cfgModel2);
|
|
19
|
+
cfgModel.method = 'CrudProQuickAnonymous';
|
|
20
|
+
cfgModel.updateCfg = {};
|
|
21
|
+
cfgModel.sqlDatabase = this.sqlDatabase;
|
|
22
|
+
cfgModel.sqlDbType = this.sqlDbType;
|
|
23
|
+
if (!cfgModel.sqlTable) {
|
|
24
|
+
cfgModel.sqlTable = this.sqlTable;
|
|
25
|
+
}
|
|
26
|
+
if (!cfgModel.sqlTable) {
|
|
27
|
+
throw new Error('[CrudProQuick] sqlTable not found');
|
|
28
|
+
}
|
|
29
|
+
return await this.curdPro.executeCrudByCfg(reqJson, cfgModel);
|
|
30
|
+
}
|
|
31
|
+
async getOne(reqJson, sqlTable) {
|
|
32
|
+
const cfgModel = {
|
|
33
|
+
sqlTable,
|
|
34
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
35
|
+
};
|
|
36
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
37
|
+
return res.getOneObj();
|
|
38
|
+
}
|
|
39
|
+
async getList(reqJson, sqlTable) {
|
|
40
|
+
const cfgModel = {
|
|
41
|
+
sqlTable,
|
|
42
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
43
|
+
};
|
|
44
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
45
|
+
return res.getResRows();
|
|
46
|
+
}
|
|
47
|
+
async getListPage(reqJson, sqlTable) {
|
|
48
|
+
const cfgModel = {
|
|
49
|
+
sqlTable,
|
|
50
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE,
|
|
51
|
+
};
|
|
52
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
53
|
+
return res.getResModel(); // 因为它有2个返回值
|
|
54
|
+
}
|
|
55
|
+
async getTotalCount(reqJson, sqlTable) {
|
|
56
|
+
const cfgModel = {
|
|
57
|
+
sqlTable,
|
|
58
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_COUNT,
|
|
59
|
+
};
|
|
60
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
61
|
+
return res.getResModel().total_count;
|
|
62
|
+
}
|
|
63
|
+
async insertObject(reqJson, sqlTable) {
|
|
64
|
+
const cfgModel = {
|
|
65
|
+
sqlTable,
|
|
66
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
67
|
+
};
|
|
68
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
69
|
+
return res.getResModel().affected;
|
|
70
|
+
}
|
|
71
|
+
async updateObject(reqJson, sqlTable) {
|
|
72
|
+
const cfgModel = {
|
|
73
|
+
sqlTable,
|
|
74
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE,
|
|
75
|
+
};
|
|
76
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
77
|
+
return res.getResModel().affected;
|
|
78
|
+
}
|
|
79
|
+
async insertOrUpdate(reqJson, sqlTable) {
|
|
80
|
+
const cfgModel = {
|
|
81
|
+
sqlTable,
|
|
82
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE,
|
|
83
|
+
};
|
|
84
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
85
|
+
return res.getResModel(); // 因为它有三个返回值
|
|
86
|
+
}
|
|
87
|
+
async deleteObject(reqJson, sqlTable) {
|
|
88
|
+
const cfgModel = {
|
|
89
|
+
sqlTable,
|
|
90
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_DELETE,
|
|
91
|
+
};
|
|
92
|
+
const res = await this.executeCrudByCfg(reqJson, cfgModel);
|
|
93
|
+
return res.getResModel().affected;
|
|
94
|
+
}
|
|
95
|
+
async executeSQL(executeSql, args) {
|
|
96
|
+
const sqlCfgModel = {
|
|
97
|
+
executeSql: executeSql,
|
|
98
|
+
executeSqlArgs: args,
|
|
99
|
+
sqlDatabase: this.sqlDatabase,
|
|
100
|
+
sqlDbType: this.sqlDbType,
|
|
101
|
+
};
|
|
102
|
+
return await this.curdPro.executeSQL(sqlCfgModel);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.CrudProQuick = CrudProQuick;
|
|
@@ -17,10 +17,12 @@ const CurdMixUtils_1 = require("./CurdMixUtils");
|
|
|
17
17
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
18
18
|
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
19
19
|
const MixinUtils_1 = require("../../libs/crud-pro/utils/MixinUtils");
|
|
20
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
20
21
|
const dictMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.accountBasic);
|
|
21
22
|
const TMP_CTX_KEY = _.uniqueId('CurdMixByAccountService');
|
|
22
23
|
let CurdMixByAccountService = class CurdMixByAccountService {
|
|
23
24
|
async handleExecuteContextPrepare(executeContext) {
|
|
25
|
+
const { SystemDbName, SystemDbType, toFatcmsUserAccountId } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
24
26
|
const relations = dictMixUtils.pickColumnRelations(executeContext);
|
|
25
27
|
if (!relations || relations.length === 0) {
|
|
26
28
|
return;
|
|
@@ -28,9 +30,13 @@ let CurdMixByAccountService = class CurdMixByAccountService {
|
|
|
28
30
|
const accountIds = new Set();
|
|
29
31
|
dictMixUtils.forEachRowAndColumnsRelation(executeContext, (row, columnRelation) => {
|
|
30
32
|
const { sourceColumn } = columnRelation;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
if (sourceColumn) {
|
|
34
|
+
const accountId = _.get(row, sourceColumn);
|
|
35
|
+
if (accountId) {
|
|
36
|
+
const fatcmsUserAccountId = toFatcmsUserAccountId(accountId);
|
|
37
|
+
accountIds.add(fatcmsUserAccountId);
|
|
38
|
+
row['__fatcmsUserAccountId__'] = fatcmsUserAccountId;
|
|
39
|
+
}
|
|
34
40
|
}
|
|
35
41
|
});
|
|
36
42
|
if (accountIds.size === 0) {
|
|
@@ -40,8 +46,8 @@ let CurdMixByAccountService = class CurdMixByAccountService {
|
|
|
40
46
|
method: 'UserAccountService.queryAccountBasicInfoByIds',
|
|
41
47
|
sqlTable: SystemTables_1.SystemTables.sys_user_account,
|
|
42
48
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
43
|
-
sqlDatabase:
|
|
44
|
-
|
|
49
|
+
sqlDatabase: SystemDbName,
|
|
50
|
+
sqlDbType: SystemDbType,
|
|
45
51
|
};
|
|
46
52
|
const reqJson = {
|
|
47
53
|
columns: ['nick_name', 'avatar', 'account_id'],
|
|
@@ -69,7 +75,7 @@ let CurdMixByAccountService = class CurdMixByAccountService {
|
|
|
69
75
|
{ from: 'avatar', to: `${sourceColumn}_user.avatar` },
|
|
70
76
|
];
|
|
71
77
|
}
|
|
72
|
-
dictMixUtils.
|
|
78
|
+
dictMixUtils.copyUserInfoToRowNoRelatedCode(row, userInfoMap, columnRelation);
|
|
73
79
|
});
|
|
74
80
|
}
|
|
75
81
|
};
|
|
@@ -18,6 +18,7 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
18
18
|
const MultiKeyMap_1 = require("../../libs/crud-pro/utils/MultiKeyMap");
|
|
19
19
|
const _ = require("lodash");
|
|
20
20
|
const RedisCacheService_1 = require("../base/RedisCacheService");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
21
22
|
const TMP_CTX_KEY = _.uniqueId('CurdMixByDictService');
|
|
22
23
|
const dictMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.dict);
|
|
23
24
|
let CurdMixByDictService = class CurdMixByDictService {
|
|
@@ -38,6 +39,7 @@ let CurdMixByDictService = class CurdMixByDictService {
|
|
|
38
39
|
executeContext[TMP_CTX_KEY] = new MultiKeyMap_1.MultiKeyMap(rows, 'dict_code', 'value');
|
|
39
40
|
}
|
|
40
41
|
async getDictItemRows(codes) {
|
|
42
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
41
43
|
const noCacheCodes = [];
|
|
42
44
|
// 从缓存里面取
|
|
43
45
|
let cachedRows = [];
|
|
@@ -60,8 +62,8 @@ let CurdMixByDictService = class CurdMixByDictService {
|
|
|
60
62
|
}, {
|
|
61
63
|
sqlTable: SystemTables_1.SystemTables.sys_data_dict_item,
|
|
62
64
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
63
|
-
sqlDatabase:
|
|
64
|
-
|
|
65
|
+
sqlDatabase: SystemDbName,
|
|
66
|
+
sqlDbType: SystemDbType,
|
|
65
67
|
});
|
|
66
68
|
selectedRows = res1.getResRows();
|
|
67
69
|
//放到缓存里
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Context } from '@midwayjs/koa';
|
|
2
2
|
import { CurdProService } from './CurdProService';
|
|
3
3
|
import { ExecuteContext, IExecuteContextHandler } from '../../libs/crud-pro/models/ExecuteContext';
|
|
4
|
-
import { RedisCacheService } from
|
|
4
|
+
import { RedisCacheService } from '../base/RedisCacheService';
|
|
5
5
|
export declare class CurdMixByLinkToCustomService implements IExecuteContextHandler {
|
|
6
6
|
protected ctx: Context;
|
|
7
7
|
protected curdProService: CurdProService;
|
|
@@ -13,10 +13,19 @@ export declare class CurdMixByLinkToCustomService implements IExecuteContextHand
|
|
|
13
13
|
* code形如:mysql_________fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
14
14
|
* code形如:fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
15
15
|
* code形如:fatcms~~~sys_perm_role~~~id,*
|
|
16
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
17
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
16
18
|
* 【数据库】~~~【表名】~~~【value】,【label】,【style】
|
|
17
19
|
* @param code
|
|
18
20
|
* @private
|
|
19
21
|
*/
|
|
20
22
|
private queryInfoByLinkToCustomImpl;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @param code
|
|
26
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
27
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
28
|
+
*/
|
|
29
|
+
private queryInfoByLinkToCustomByCrudMethod;
|
|
21
30
|
private loadInfoByLinkToCustomMap;
|
|
22
31
|
}
|
|
@@ -19,8 +19,32 @@ const devops_1 = require("../../models/devops");
|
|
|
19
19
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
20
20
|
const RedisCacheService_1 = require("../base/RedisCacheService");
|
|
21
21
|
const DatabaseName_1 = require("../../libs/crud-pro/utils/DatabaseName");
|
|
22
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
22
23
|
const linkToCustomMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.linkToCustom);
|
|
23
24
|
const TMP_CTX_KEY = _.uniqueId('CurdMixByLinkToCustomService');
|
|
25
|
+
function toMapObject(rows, fieldsArr) {
|
|
26
|
+
const valueKey = fieldsArr[0];
|
|
27
|
+
const labelKey = fieldsArr[1];
|
|
28
|
+
const isObjectMode = fieldsArr.length > 2 || labelKey === '*';
|
|
29
|
+
const map = new Map();
|
|
30
|
+
for (let i = 0; i < rows.length; i++) {
|
|
31
|
+
const rowObj = rows[i];
|
|
32
|
+
const value = rowObj[valueKey];
|
|
33
|
+
if (typeof value !== 'undefined') {
|
|
34
|
+
const valueStr = '' + value;
|
|
35
|
+
if (isObjectMode) {
|
|
36
|
+
map.set(valueStr, rowObj);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const label = rowObj[labelKey];
|
|
40
|
+
if (label) {
|
|
41
|
+
map.set(valueStr, label);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return map;
|
|
47
|
+
}
|
|
24
48
|
let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
|
|
25
49
|
async handleExecuteContextPrepare(executeContext) {
|
|
26
50
|
const relations = linkToCustomMixUtils.pickColumnRelations(executeContext);
|
|
@@ -43,8 +67,8 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
|
|
|
43
67
|
if (!Array.isArray(targetColumns) || targetColumns.length === 0) {
|
|
44
68
|
columnRelation.targetColumns = [
|
|
45
69
|
{
|
|
46
|
-
|
|
47
|
-
|
|
70
|
+
from: '*',
|
|
71
|
+
to: `${sourceColumn}_info[$ARRAY_INDEX]`,
|
|
48
72
|
},
|
|
49
73
|
];
|
|
50
74
|
}
|
|
@@ -54,7 +78,7 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
|
|
|
54
78
|
});
|
|
55
79
|
}
|
|
56
80
|
async queryInfoByLinkToCustom(code) {
|
|
57
|
-
const cacheKey =
|
|
81
|
+
const cacheKey = 'linkToCustom@@' + code;
|
|
58
82
|
let values;
|
|
59
83
|
const expireSecond = 2 * 60; // 2分钟
|
|
60
84
|
const enumMap = await this.redisCacheService.getJsonObject(cacheKey);
|
|
@@ -68,11 +92,16 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
|
|
|
68
92
|
* code形如:mysql_________fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
69
93
|
* code形如:fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
|
|
70
94
|
* code形如:fatcms~~~sys_perm_role~~~id,*
|
|
95
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
96
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
71
97
|
* 【数据库】~~~【表名】~~~【value】,【label】,【style】
|
|
72
98
|
* @param code
|
|
73
99
|
* @private
|
|
74
100
|
*/
|
|
75
101
|
async queryInfoByLinkToCustomImpl(code) {
|
|
102
|
+
if (code.startsWith('GET_BY_CRUD_METHOD')) {
|
|
103
|
+
return this.queryInfoByLinkToCustomByCrudMethod(code);
|
|
104
|
+
}
|
|
76
105
|
const arr = code
|
|
77
106
|
.split('~~~')
|
|
78
107
|
.map(s => s.trim())
|
|
@@ -89,46 +118,65 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
|
|
|
89
118
|
if (fieldsArr.length < 2) {
|
|
90
119
|
throw new devops_1.BizException('linkToCustom枚举值查询字符串,fields字段必须符合固定格式', exceptions_1.Exceptions.CFG_ERROR);
|
|
91
120
|
}
|
|
92
|
-
const valueKey = fieldsArr[0];
|
|
93
121
|
const labelKey = fieldsArr[1];
|
|
94
|
-
const isObjectMode = fieldsArr.length > 2 || labelKey === "*";
|
|
95
122
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
96
123
|
condition: {},
|
|
97
|
-
columns: labelKey ===
|
|
124
|
+
columns: labelKey === '*' ? null : fields,
|
|
98
125
|
limit: 4000,
|
|
99
126
|
offset: 0,
|
|
100
127
|
}, {
|
|
101
128
|
sqlTable,
|
|
102
129
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
103
130
|
sqlDatabase: dbName,
|
|
104
|
-
|
|
131
|
+
sqlDbType: dbType,
|
|
105
132
|
maxLimit: 4000,
|
|
106
133
|
});
|
|
107
134
|
const rows = res1.getResRows();
|
|
108
|
-
const map =
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
135
|
+
const map = toMapObject(rows, fieldsArr);
|
|
136
|
+
return map;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
*
|
|
140
|
+
* @param code
|
|
141
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
|
|
142
|
+
* code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
|
|
143
|
+
*/
|
|
144
|
+
async queryInfoByLinkToCustomByCrudMethod(code) {
|
|
145
|
+
const arr = code
|
|
146
|
+
.split('~~~')
|
|
147
|
+
.map(s => s.trim())
|
|
148
|
+
.filter(Boolean);
|
|
149
|
+
if (arr.length !== 3) {
|
|
150
|
+
throw new devops_1.BizException('linkToCustom枚举值查询字符串,必须符合固定格式。', exceptions_1.Exceptions.CFG_ERROR);
|
|
151
|
+
}
|
|
152
|
+
const [prefix, methodCode, fields] = arr;
|
|
153
|
+
const fieldsArr = fields
|
|
154
|
+
.split(',')
|
|
155
|
+
.map(s => s.trim())
|
|
156
|
+
.filter(Boolean);
|
|
157
|
+
if (fieldsArr.length < 2) {
|
|
158
|
+
throw new devops_1.BizException(`linkToCustom枚举值查询字符串,fields字段必须符合固定格式。${prefix}`, exceptions_1.Exceptions.CFG_ERROR);
|
|
159
|
+
}
|
|
160
|
+
const methodInfo = (await this.curdProService.getCachedCfgByMethod(methodCode));
|
|
161
|
+
if (!methodInfo || methodInfo.status !== 1) {
|
|
162
|
+
throw new Error('接口不存在或已下线: ' + methodCode);
|
|
124
163
|
}
|
|
164
|
+
const cfgModel = methodInfo;
|
|
165
|
+
const { dbType, dbName } = (0, DatabaseName_1.parseDatabaseName)(cfgModel.sqlDatabase);
|
|
166
|
+
cfgModel.sqlDatabase = dbName;
|
|
167
|
+
cfgModel.sqlDbType = dbType;
|
|
168
|
+
const reqJson = {};
|
|
169
|
+
await global_config_1.GLOBAL_STATIC_CONFIG.getConfig().bizUpdateCfgModelForCrudMtd(reqJson, cfgModel, methodInfo, this.ctx);
|
|
170
|
+
const exeCtx = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
171
|
+
const rows = exeCtx.getResRows();
|
|
172
|
+
const map = toMapObject(rows, fieldsArr);
|
|
125
173
|
return map;
|
|
126
174
|
}
|
|
127
175
|
async loadInfoByLinkToCustomMap(relations) {
|
|
128
176
|
const bigMap = new Map();
|
|
129
177
|
for (let i = 0; i < relations.length; i++) {
|
|
130
178
|
const relation = relations[i];
|
|
131
|
-
const code = relation.relatedCode ||
|
|
179
|
+
const code = relation.relatedCode || '';
|
|
132
180
|
const codeTrim = code.trim();
|
|
133
181
|
const map = await this.queryInfoByLinkToCustom(codeTrim);
|
|
134
182
|
bigMap.set(codeTrim, map);
|
|
@@ -18,10 +18,12 @@ const SystemTables_1 = require("../../models/SystemTables");
|
|
|
18
18
|
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
19
19
|
const MultiKeyMap_1 = require("../../libs/crud-pro/utils/MultiKeyMap");
|
|
20
20
|
const parseConfig_1 = require("../../libs/utils/parseConfig");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
21
22
|
const dictMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.sysCfgEnum);
|
|
22
23
|
const TMP_CTX_KEY = _.uniqueId('CurdMixBySysConfigService');
|
|
23
24
|
let CurdMixBySysConfigService = class CurdMixBySysConfigService {
|
|
24
25
|
async handleExecuteContextPrepare(executeContext) {
|
|
26
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
25
27
|
const codes = dictMixUtils.pickColumnRelationCodes(executeContext);
|
|
26
28
|
if (!codes || codes.length === 0) {
|
|
27
29
|
return;
|
|
@@ -31,8 +33,8 @@ let CurdMixBySysConfigService = class CurdMixBySysConfigService {
|
|
|
31
33
|
}, {
|
|
32
34
|
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
33
35
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
34
|
-
sqlDatabase:
|
|
35
|
-
|
|
36
|
+
sqlDatabase: SystemDbName,
|
|
37
|
+
sqlDbType: SystemDbType,
|
|
36
38
|
});
|
|
37
39
|
const rows = res1.getResRows();
|
|
38
40
|
const multiKeyMap = new MultiKeyMap_1.MultiKeyMap();
|
|
@@ -18,6 +18,7 @@ const CurdMixUtils_1 = require("./CurdMixUtils");
|
|
|
18
18
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
19
19
|
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
20
20
|
const MixinUtils_1 = require("../../libs/crud-pro/utils/MixinUtils");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
21
22
|
const lruCache = new lru_cache_1.LRUCache({
|
|
22
23
|
max: 500,
|
|
23
24
|
ttl: 1000 * 60 * 5,
|
|
@@ -27,6 +28,7 @@ const workbenchMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.Related
|
|
|
27
28
|
const TMP_CTX_KEY = _.uniqueId('CurdMixByWorkbenchService');
|
|
28
29
|
let CurdMixByWorkbenchService = class CurdMixByWorkbenchService {
|
|
29
30
|
async loadWorkbenchListMap() {
|
|
31
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
30
32
|
let workbenchListMap = lruCache.get('workbenchListMap');
|
|
31
33
|
if (!workbenchListMap) {
|
|
32
34
|
const reqJson = {
|
|
@@ -36,8 +38,8 @@ let CurdMixByWorkbenchService = class CurdMixByWorkbenchService {
|
|
|
36
38
|
const res = await this.curdProService.executeCrudByCfg(reqJson, {
|
|
37
39
|
sqlTable: SystemTables_1.SystemTables.sys_workbench,
|
|
38
40
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
39
|
-
sqlDatabase:
|
|
40
|
-
|
|
41
|
+
sqlDatabase: SystemDbName,
|
|
42
|
+
sqlDbType: SystemDbType,
|
|
41
43
|
});
|
|
42
44
|
const workbenchList = res.getResRows();
|
|
43
45
|
workbenchListMap = MixinUtils_1.MixinUtils.toNewMap(workbenchList, (obj) => obj.workbench_code);
|
|
@@ -10,7 +10,7 @@ export declare class CurdMixService {
|
|
|
10
10
|
private curdMixByLinkToCustomService;
|
|
11
11
|
private prepare;
|
|
12
12
|
executeCrudByCfg(reqJson: IRequestModel, cfgModel: IRequestCfgModel2): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
13
|
-
getBbUtil(
|
|
13
|
+
getBbUtil(sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string): import("./CrudProQuick").CrudProQuick;
|
|
14
14
|
executeSQL(sqlCfgModel: ISqlCfgModel): Promise<any>;
|
|
15
15
|
executeCrud(reqJson: IRequestModel): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
|
|
16
16
|
getCachedCfgByMethod(method: string): Promise<IRequestCfgModel>;
|
|
@@ -30,9 +30,9 @@ let CurdMixService = class CurdMixService {
|
|
|
30
30
|
this.prepare();
|
|
31
31
|
return this.curdProService.executeCrudByCfg(reqJson, cfgModel);
|
|
32
32
|
}
|
|
33
|
-
getBbUtil(
|
|
33
|
+
getBbUtil(sqlDatabase, sqlDbType, sqlTable) {
|
|
34
34
|
this.prepare();
|
|
35
|
-
return this.curdProService.getBbUtil(
|
|
35
|
+
return this.curdProService.getBbUtil(sqlDatabase, sqlDbType, sqlTable);
|
|
36
36
|
}
|
|
37
37
|
async executeSQL(sqlCfgModel) {
|
|
38
38
|
this.prepare();
|
|
@@ -24,5 +24,12 @@ declare class CrudMixUtils {
|
|
|
24
24
|
* @param columnRelation
|
|
25
25
|
*/
|
|
26
26
|
copyColumnRelationToRowNoRelatedCode(row: any, map: Map<string, any>, columnRelation: ColumnRelation): void;
|
|
27
|
+
/**
|
|
28
|
+
* 专门COPY用户信息到row上面。无relatedCode模式
|
|
29
|
+
* @param row
|
|
30
|
+
* @param map
|
|
31
|
+
* @param columnRelation
|
|
32
|
+
*/
|
|
33
|
+
copyUserInfoToRowNoRelatedCode(row: any, map: Map<string, any>, columnRelation: ColumnRelation): void;
|
|
27
34
|
}
|
|
28
35
|
export { CrudMixUtils, RelatedType, FuncRowColumnRelation };
|