midway-fatcms 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/config.default.js +5 -3
- package/dist/configuration.d.ts +0 -3
- package/dist/configuration.js +0 -19
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +0 -2
- package/dist/controller/gateway/ProxyApiGatewayController.js +0 -18
- package/dist/controller/helpers.controller.d.ts +4 -5
- package/dist/controller/helpers.controller.js +56 -14
- package/dist/controller/manage/AccountRoleManageApi.js +3 -5
- package/dist/controller/manage/AnyApiMangeApi.js +4 -3
- package/dist/controller/manage/AppMangeApi.js +3 -4
- package/dist/controller/manage/AppPageMangeApi.js +4 -3
- package/dist/controller/manage/CrudMethodsMangeApi.js +3 -4
- package/dist/controller/manage/DataDictManageApi.js +6 -7
- package/dist/controller/manage/DeployManageApi.js +4 -5
- package/dist/controller/manage/FlowConfigManageApi.js +3 -5
- package/dist/controller/manage/MenuManageApi.js +3 -4
- package/dist/controller/manage/ProxyApiMangeApi.js +3 -4
- package/dist/controller/manage/SysConfigMangeApi.js +3 -3
- package/dist/controller/manage/SystemInfoManageApi.js +3 -1
- package/dist/controller/manage/WorkbenchMangeApi.js +3 -4
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +27 -4
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +5 -8
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +25 -42
- package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.d.ts +2 -37
- package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.js +137 -213
- package/dist/libs/crud-pro/utils/CrudMonitor.d.ts +0 -9
- package/dist/libs/crud-pro/utils/CrudMonitor.js +0 -21
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +2 -17
- package/dist/libs/crud-pro/utils/MixinUtils.js +4 -84
- package/dist/libs/crud-pro/utils/idgene/generateSnowflakeId.d.ts +12 -0
- package/dist/libs/crud-pro/utils/idgene/generateSnowflakeId.js +61 -0
- package/dist/libs/crud-pro/utils/idgene/generateSnowflakeIdExt.d.ts +19 -0
- package/dist/libs/crud-pro/utils/idgene/generateSnowflakeIdExt.js +89 -0
- package/dist/libs/crud-pro/utils/idgene/index.d.ts +3 -0
- package/dist/libs/crud-pro/utils/idgene/index.js +10 -0
- package/dist/libs/crud-pro/utils/idgene/uuid.d.ts +7 -0
- package/dist/libs/crud-pro/utils/idgene/uuid.js +28 -0
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +26 -0
- package/dist/libs/crud-pro-quick/fixSoftDelete.d.ts +0 -17
- package/dist/libs/crud-pro-quick/fixSoftDelete.js +55 -5
- package/dist/libs/crud-pro-quick/models.d.ts +11 -1
- package/dist/middleware/cacherefresh.middleware.d.ts +3 -46
- package/dist/middleware/cacherefresh.middleware.js +9 -67
- package/dist/models/CacheRefreshCategory.d.ts +1 -18
- package/dist/models/CacheRefreshCategory.js +0 -17
- package/dist/models/SystemEntities.d.ts +2 -0
- package/dist/models/bizmodels.d.ts +0 -8
- package/dist/models/bizmodels.js +0 -8
- package/dist/schedule/scheduleNames.d.ts +2 -0
- package/dist/schedule/scheduleNames.js +3 -1
- package/dist/service/SysAppService.d.ts +0 -6
- package/dist/service/SysAppService.js +10 -79
- package/dist/service/SysConfigService.d.ts +0 -6
- package/dist/service/SysConfigService.js +6 -51
- package/dist/service/SysDictDataService.d.ts +0 -5
- package/dist/service/SysDictDataService.js +7 -65
- package/dist/service/SysMenuService.d.ts +0 -4
- package/dist/service/SysMenuService.js +5 -44
- package/dist/service/WorkbenchService.d.ts +1 -6
- package/dist/service/WorkbenchService.js +9 -63
- package/dist/service/anyapi/AnyApiService.d.ts +1 -1
- package/dist/service/anyapi/AnyApiService.js +6 -16
- package/dist/service/base/bizmemcache/BizMemCacheService.d.ts +16 -0
- package/dist/service/base/bizmemcache/BizMemCacheService.js +241 -0
- package/dist/service/base/bizmemcache/BizMemCacheStore.d.ts +34 -0
- package/dist/service/base/bizmemcache/BizMemCacheStore.js +119 -0
- package/dist/service/base/bizmemcache/BizMemCacheTypes.d.ts +60 -0
- package/dist/service/base/bizmemcache/BizMemCacheTypes.js +18 -0
- package/dist/service/base/cache-refresh/CacheRefreshHub.d.ts +0 -22
- package/dist/service/base/cache-refresh/CacheRefreshHub.js +0 -22
- package/dist/service/base/cache-refresh/CacheRefreshHubScheduleService.d.ts +0 -6
- package/dist/service/base/cache-refresh/CacheRefreshHubScheduleService.js +0 -6
- package/dist/service/crudstd/CrudStdService.js +1 -1
- package/dist/service/curd/CurdMixByDictService.d.ts +0 -4
- package/dist/service/curd/CurdMixByDictService.js +9 -55
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +0 -5
- package/dist/service/curd/CurdMixBySysConfigService.js +9 -54
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +0 -1
- package/dist/service/curd/CurdMixByWorkbenchService.js +9 -36
- package/dist/service/curd/CurdProService.d.ts +0 -1
- package/dist/service/curd/CurdProService.js +0 -4
- package/dist/service/curd/fixCfgModel.js +21 -1
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +3 -8
- package/dist/service/proxyapi/ProxyApiLoadService.js +40 -68
- package/dist/service/proxyapi/ProxyApiService.d.ts +2 -0
- package/dist/service/proxyapi/ProxyApiService.js +32 -9
- package/dist/service/proxyapi/RouteTrie.d.ts +1 -7
- package/dist/service/proxyapi/RouteTrie.js +1 -17
- package/package.json +1 -1
- package/src/config/config.default.ts +4 -2
- package/src/configuration.ts +0 -23
- package/src/controller/gateway/ProxyApiGatewayController.ts +1 -9
- package/src/controller/helpers.controller.ts +66 -15
- package/src/controller/manage/AccountRoleManageApi.ts +3 -5
- package/src/controller/manage/AnyApiMangeApi.ts +4 -3
- package/src/controller/manage/AppMangeApi.ts +4 -5
- package/src/controller/manage/AppPageMangeApi.ts +4 -3
- package/src/controller/manage/CrudMethodsMangeApi.ts +4 -5
- package/src/controller/manage/DataDictManageApi.ts +7 -8
- package/src/controller/manage/DeployManageApi.ts +2 -3
- package/src/controller/manage/FlowConfigManageApi.ts +3 -5
- package/src/controller/manage/MenuManageApi.ts +4 -5
- package/src/controller/manage/ProxyApiMangeApi.ts +4 -5
- package/src/controller/manage/SysConfigMangeApi.ts +5 -5
- package/src/controller/manage/SystemInfoManageApi.ts +3 -1
- package/src/controller/manage/WorkbenchMangeApi.ts +4 -5
- package/src/index.ts +3 -0
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +26 -4
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +25 -43
- package/src/libs/crud-pro/services/CrudProDataTypeConvertService.ts +149 -219
- package/src/libs/crud-pro/utils/CrudMonitor.ts +0 -23
- package/src/libs/crud-pro/utils/MixinUtils.ts +309 -400
- package/src/libs/crud-pro/utils/idgene/generateSnowflakeId.ts +65 -0
- package/src/libs/crud-pro/utils/idgene/generateSnowflakeIdExt.ts +99 -0
- package/src/libs/crud-pro/utils/idgene/index.ts +3 -0
- package/src/libs/crud-pro/utils/idgene/uuid.ts +26 -0
- package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +31 -0
- package/src/libs/crud-pro-quick/fixSoftDelete.ts +84 -18
- package/src/libs/crud-pro-quick/models.ts +15 -3
- package/src/middleware/cacherefresh.middleware.ts +10 -71
- package/src/models/CacheRefreshCategory.ts +0 -17
- package/src/models/SystemEntities.ts +2 -0
- package/src/models/bizmodels.ts +0 -8
- package/src/schedule/scheduleNames.ts +5 -3
- package/src/service/SysAppService.ts +7 -78
- package/src/service/SysConfigService.ts +4 -45
- package/src/service/SysDictDataService.ts +5 -64
- package/src/service/SysMenuService.ts +3 -40
- package/src/service/WorkbenchService.ts +9 -72
- package/src/service/anyapi/AnyApiService.ts +5 -17
- package/src/service/base/bizmemcache/BizMemCacheService.ts +290 -0
- package/src/service/base/bizmemcache/BizMemCacheStore.ts +159 -0
- package/src/service/base/bizmemcache/BizMemCacheTypes.ts +76 -0
- package/src/service/base/cache-refresh/CacheRefreshHub.ts +0 -22
- package/src/service/base/cache-refresh/CacheRefreshHubScheduleService.ts +0 -6
- package/src/service/crudstd/CrudStdService.ts +3 -2
- package/src/service/curd/CurdMixByDictService.ts +10 -61
- package/src/service/curd/CurdMixBySysConfigService.ts +9 -62
- package/src/service/curd/CurdMixByWorkbenchService.ts +7 -32
- package/src/service/curd/CurdProService.ts +0 -6
- package/src/service/curd/fixCfgModel.ts +145 -125
- package/src/service/proxyapi/ProxyApiLoadService.ts +39 -77
- package/src/service/proxyapi/ProxyApiService.ts +45 -9
- package/src/service/proxyapi/RouteTrie.ts +1 -18
|
@@ -15,7 +15,6 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
15
15
|
const BaseApiController_1 = require("../base/BaseApiController");
|
|
16
16
|
const permission_middleware_1 = require("../../middleware/permission.middleware");
|
|
17
17
|
const cacherefresh_middleware_1 = require("../../middleware/cacherefresh.middleware");
|
|
18
|
-
const CacheRefreshCategory_1 = require("../../models/CacheRefreshCategory");
|
|
19
18
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
20
19
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
21
20
|
let ProxyApiMangeApi = class ProxyApiMangeApi extends BaseApiController_1.BaseApiController {
|
|
@@ -66,19 +65,19 @@ __decorate([
|
|
|
66
65
|
__metadata("design:returntype", Promise)
|
|
67
66
|
], ProxyApiMangeApi.prototype, "getProxyApiOne", null);
|
|
68
67
|
__decorate([
|
|
69
|
-
(0, core_1.Post)('/createProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.
|
|
68
|
+
(0, core_1.Post)('/createProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysProxyApiCacheObj')] }),
|
|
70
69
|
__metadata("design:type", Function),
|
|
71
70
|
__metadata("design:paramtypes", []),
|
|
72
71
|
__metadata("design:returntype", Promise)
|
|
73
72
|
], ProxyApiMangeApi.prototype, "createProxyApi", null);
|
|
74
73
|
__decorate([
|
|
75
|
-
(0, core_1.Post)('/updateProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.
|
|
74
|
+
(0, core_1.Post)('/updateProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysProxyApiCacheObj')] }),
|
|
76
75
|
__metadata("design:type", Function),
|
|
77
76
|
__metadata("design:paramtypes", []),
|
|
78
77
|
__metadata("design:returntype", Promise)
|
|
79
78
|
], ProxyApiMangeApi.prototype, "updateProxyApi", null);
|
|
80
79
|
__decorate([
|
|
81
|
-
(0, core_1.Post)('/deleteProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.
|
|
80
|
+
(0, core_1.Post)('/deleteProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysProxyApiCacheObj')] }),
|
|
82
81
|
__metadata("design:type", Function),
|
|
83
82
|
__metadata("design:paramtypes", []),
|
|
84
83
|
__metadata("design:returntype", Promise)
|
|
@@ -115,19 +115,19 @@ __decorate([
|
|
|
115
115
|
__metadata("design:returntype", Promise)
|
|
116
116
|
], SysConfigMangeApi.prototype, "getSysConfigOne", null);
|
|
117
117
|
__decorate([
|
|
118
|
-
(0, core_1.Post)('/createSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.
|
|
118
|
+
(0, core_1.Post)('/createSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysConfgCacheObj')] }),
|
|
119
119
|
__metadata("design:type", Function),
|
|
120
120
|
__metadata("design:paramtypes", []),
|
|
121
121
|
__metadata("design:returntype", Promise)
|
|
122
122
|
], SysConfigMangeApi.prototype, "createSysConfig", null);
|
|
123
123
|
__decorate([
|
|
124
|
-
(0, core_1.Post)('/updateSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.
|
|
124
|
+
(0, core_1.Post)('/updateSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysConfgCacheObj')] }),
|
|
125
125
|
__metadata("design:type", Function),
|
|
126
126
|
__metadata("design:paramtypes", []),
|
|
127
127
|
__metadata("design:returntype", Promise)
|
|
128
128
|
], SysConfigMangeApi.prototype, "updateSysConfig", null);
|
|
129
129
|
__decorate([
|
|
130
|
-
(0, core_1.Post)('/deleteSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.
|
|
130
|
+
(0, core_1.Post)('/deleteSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysConfgCacheObj')] }),
|
|
131
131
|
__metadata("design:type", Function),
|
|
132
132
|
__metadata("design:paramtypes", []),
|
|
133
133
|
__metadata("design:returntype", Promise)
|
|
@@ -16,6 +16,7 @@ const BaseApiController_1 = require("../base/BaseApiController");
|
|
|
16
16
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
17
17
|
const common_dto_1 = require("../../libs/utils/common-dto");
|
|
18
18
|
const CrudMonitor_1 = require("../../libs/crud-pro/utils/CrudMonitor");
|
|
19
|
+
const BizMemCacheStore_1 = require("../../service/base/bizmemcache/BizMemCacheStore");
|
|
19
20
|
let SystemInfoManageApi = class SystemInfoManageApi extends BaseApiController_1.BaseApiController {
|
|
20
21
|
/**
|
|
21
22
|
* 预设系统内置功能点数据
|
|
@@ -58,7 +59,8 @@ let SystemInfoManageApi = class SystemInfoManageApi extends BaseApiController_1.
|
|
|
58
59
|
timeInfo,
|
|
59
60
|
envInfo,
|
|
60
61
|
networkInfo,
|
|
61
|
-
crudMonitorInfo: CrudMonitor_1.CrudMonitor
|
|
62
|
+
crudMonitorInfo: CrudMonitor_1.CrudMonitor,
|
|
63
|
+
bizMemCacheLastTime: BizMemCacheStore_1.bizMemCacheStore.getLastTimeSnapshot(),
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
};
|
|
@@ -15,7 +15,6 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
15
15
|
const BaseApiController_1 = require("../base/BaseApiController");
|
|
16
16
|
const permission_middleware_1 = require("../../middleware/permission.middleware");
|
|
17
17
|
const cacherefresh_middleware_1 = require("../../middleware/cacherefresh.middleware");
|
|
18
|
-
const bizmodels_1 = require("../../models/bizmodels");
|
|
19
18
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
20
19
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
21
20
|
let WorkbenchMangeApi = class WorkbenchMangeApi extends BaseApiController_1.BaseApiController {
|
|
@@ -78,19 +77,19 @@ __decorate([
|
|
|
78
77
|
__metadata("design:returntype", Promise)
|
|
79
78
|
], WorkbenchMangeApi.prototype, "getWorkbenchOne", null);
|
|
80
79
|
__decorate([
|
|
81
|
-
(0, core_1.Post)('/createWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.
|
|
80
|
+
(0, core_1.Post)('/createWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('workbenchCachedObj')] }),
|
|
82
81
|
__metadata("design:type", Function),
|
|
83
82
|
__metadata("design:paramtypes", []),
|
|
84
83
|
__metadata("design:returntype", Promise)
|
|
85
84
|
], WorkbenchMangeApi.prototype, "createWorkbench", null);
|
|
86
85
|
__decorate([
|
|
87
|
-
(0, core_1.Post)('/updateWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.
|
|
86
|
+
(0, core_1.Post)('/updateWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('workbenchCachedObj')] }),
|
|
88
87
|
__metadata("design:type", Function),
|
|
89
88
|
__metadata("design:paramtypes", []),
|
|
90
89
|
__metadata("design:returntype", Promise)
|
|
91
90
|
], WorkbenchMangeApi.prototype, "updateWorkbench", null);
|
|
92
91
|
__decorate([
|
|
93
|
-
(0, core_1.Post)('/deleteWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.
|
|
92
|
+
(0, core_1.Post)('/deleteWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('workbenchCachedObj')] }),
|
|
94
93
|
__metadata("design:type", Function),
|
|
95
94
|
__metadata("design:paramtypes", []),
|
|
96
95
|
__metadata("design:returntype", Promise)
|
package/dist/index.d.ts
CHANGED
|
@@ -58,6 +58,9 @@ export * from './service/UserAccountService';
|
|
|
58
58
|
export * from './service/UserSessionService';
|
|
59
59
|
export * from './service/VisitStatService';
|
|
60
60
|
export * from './service/WorkbenchService';
|
|
61
|
+
export * from './service/base/bizmemcache/BizMemCacheService';
|
|
62
|
+
export * from './service/base/bizmemcache/BizMemCacheTypes';
|
|
63
|
+
export * from './service/base/bizmemcache/BizMemCacheStore';
|
|
61
64
|
export * from './service/anyapi/AnyApiSandboxService';
|
|
62
65
|
export * from './service/anyapi/AnyApiService';
|
|
63
66
|
export * from './service/base/ApiBaseService';
|
package/dist/index.js
CHANGED
|
@@ -76,6 +76,9 @@ __exportStar(require("./service/UserAccountService"), exports);
|
|
|
76
76
|
__exportStar(require("./service/UserSessionService"), exports);
|
|
77
77
|
__exportStar(require("./service/VisitStatService"), exports);
|
|
78
78
|
__exportStar(require("./service/WorkbenchService"), exports);
|
|
79
|
+
__exportStar(require("./service/base/bizmemcache/BizMemCacheService"), exports);
|
|
80
|
+
__exportStar(require("./service/base/bizmemcache/BizMemCacheTypes"), exports);
|
|
81
|
+
__exportStar(require("./service/base/bizmemcache/BizMemCacheStore"), exports);
|
|
79
82
|
__exportStar(require("./service/anyapi/AnyApiSandboxService"), exports);
|
|
80
83
|
__exportStar(require("./service/anyapi/AnyApiService"), exports);
|
|
81
84
|
__exportStar(require("./service/base/ApiBaseService"), exports);
|
|
@@ -6,10 +6,15 @@ const CrudMonitor_1 = require("../../../libs/crud-pro/utils/CrudMonitor");
|
|
|
6
6
|
const _ = require("lodash");
|
|
7
7
|
class SqlServerConnectionClient {
|
|
8
8
|
constructor(originConnection) {
|
|
9
|
+
this.isReleased = false;
|
|
9
10
|
this.originConnection = originConnection;
|
|
11
|
+
CrudMonitor_1.CrudMonitor.mssqlGetConnectionCount++;
|
|
10
12
|
}
|
|
11
13
|
async query(sql, values) {
|
|
12
|
-
|
|
14
|
+
// 如果存在活跃的事务,请求应该绑定到事务上,否则事务不生效
|
|
15
|
+
const request = this.sqlServerTransaction
|
|
16
|
+
? new mssql_1.Request(this.sqlServerTransaction)
|
|
17
|
+
: new mssql_1.Request(this.originConnection);
|
|
13
18
|
if (Array.isArray(values)) {
|
|
14
19
|
for (let i = 0; i < values.length; i++) {
|
|
15
20
|
const index = i + 1;
|
|
@@ -32,15 +37,33 @@ class SqlServerConnectionClient {
|
|
|
32
37
|
}
|
|
33
38
|
async commit() {
|
|
34
39
|
const tmpTx = this.sqlServerTransaction;
|
|
35
|
-
|
|
40
|
+
if (tmpTx) {
|
|
41
|
+
await tmpTx.commit();
|
|
42
|
+
}
|
|
36
43
|
}
|
|
37
44
|
async rollback() {
|
|
38
45
|
const tmpTx = this.sqlServerTransaction;
|
|
39
|
-
|
|
46
|
+
if (tmpTx) {
|
|
47
|
+
await tmpTx.rollback();
|
|
48
|
+
}
|
|
40
49
|
}
|
|
41
50
|
async release() {
|
|
51
|
+
if (this.isReleased) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.isReleased = true;
|
|
42
55
|
try {
|
|
43
|
-
|
|
56
|
+
// 如果有未结束的事务,先回滚
|
|
57
|
+
if (this.sqlServerTransaction) {
|
|
58
|
+
try {
|
|
59
|
+
await this.sqlServerTransaction.rollback();
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
// 事务可能已经回滚或提交,忽略错误
|
|
63
|
+
}
|
|
64
|
+
this.sqlServerTransaction = null;
|
|
65
|
+
}
|
|
66
|
+
CrudMonitor_1.CrudMonitor.mssqlReleaseConnectionCount++;
|
|
44
67
|
}
|
|
45
68
|
catch (e) {
|
|
46
69
|
console.log('[crud-pro] SqlServerConnectionClient release ', e);
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { CrudProServiceBase } from './CrudProServiceBase';
|
|
2
2
|
import { IRequestCfgModel } from '../interfaces';
|
|
3
3
|
import { ICurdProServiceHub } from '../models/ServiceHub';
|
|
4
|
+
export declare function parseCrudMethodInfo(row: any): IRequestCfgModel;
|
|
5
|
+
/**
|
|
6
|
+
* 注入 CRUD 方法配置缓存(由 BizMemCache 加载后调用)
|
|
7
|
+
*/
|
|
8
|
+
export declare function setMethodCache(methodInfoList: IRequestCfgModel[] | null): void;
|
|
4
9
|
declare class CrudProCachedCfgService extends CrudProServiceBase {
|
|
5
10
|
constructor(serviceHub: ICurdProServiceHub);
|
|
6
11
|
getCachedCfgByMethod(method: string, isEnableCache: boolean): Promise<IRequestCfgModel | null>;
|
|
7
12
|
private getCachedCfgByMethodInner;
|
|
8
13
|
private loadMethodInfo;
|
|
9
|
-
private loadMethodInfoList;
|
|
10
14
|
}
|
|
11
15
|
export { CrudProCachedCfgService };
|
|
12
|
-
/**
|
|
13
|
-
* 清空 CRUD 方法配置缓存(独立函数,无需实例化 Service 即可调用)
|
|
14
|
-
*
|
|
15
|
-
* 清空后,下次请求会自动从数据库重新加载(懒加载刷新)。
|
|
16
|
-
* 适用于 manage 增删改触发刷新、定时刷新等场景。
|
|
17
|
-
*/
|
|
18
|
-
export declare function clearMethodCache(): void;
|
|
@@ -1,19 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CrudProCachedCfgService = exports.setMethodCache = exports.parseCrudMethodInfo = void 0;
|
|
4
4
|
const humps_1 = require("humps");
|
|
5
5
|
const CrudProServiceBase_1 = require("./CrudProServiceBase");
|
|
6
6
|
const MixinUtils_1 = require("../utils/MixinUtils");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
function parseMethodInfo(row) {
|
|
12
|
-
const methodInfo = (0, humps_1.camelizeKeys)(row); //转换成驼峰
|
|
7
|
+
/** 由上层 BizMemCache 注入的方法配置缓存,key 为 method */
|
|
8
|
+
let externalMethodCacheMap = null;
|
|
9
|
+
function parseCrudMethodInfo(row) {
|
|
10
|
+
const methodInfo = (0, humps_1.camelizeKeys)(row);
|
|
13
11
|
const configObject = MixinUtils_1.MixinUtils.parseJsonObject(methodInfo.moreConfig) || {};
|
|
14
12
|
const sqlCfgList = MixinUtils_1.MixinUtils.parseJsonObject(methodInfo.sqlCfgList) || [];
|
|
15
13
|
return { ...configObject, ...methodInfo, sqlCfgList };
|
|
16
14
|
}
|
|
15
|
+
exports.parseCrudMethodInfo = parseCrudMethodInfo;
|
|
16
|
+
/**
|
|
17
|
+
* 注入 CRUD 方法配置缓存(由 BizMemCache 加载后调用)
|
|
18
|
+
*/
|
|
19
|
+
function setMethodCache(methodInfoList) {
|
|
20
|
+
if (!methodInfoList) {
|
|
21
|
+
externalMethodCacheMap = null;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
externalMethodCacheMap = MixinUtils_1.MixinUtils.toMap(methodInfoList, item => item.method);
|
|
25
|
+
}
|
|
26
|
+
exports.setMethodCache = setMethodCache;
|
|
17
27
|
class CrudProCachedCfgService extends CrudProServiceBase_1.CrudProServiceBase {
|
|
18
28
|
constructor(serviceHub) {
|
|
19
29
|
super(serviceHub);
|
|
@@ -26,24 +36,21 @@ class CrudProCachedCfgService extends CrudProServiceBase_1.CrudProServiceBase {
|
|
|
26
36
|
return { ...methodInfo };
|
|
27
37
|
}
|
|
28
38
|
async getCachedCfgByMethodInner(method, isEnableCache) {
|
|
29
|
-
// 不使用缓存
|
|
30
39
|
if (!isEnableCache) {
|
|
31
40
|
return await this.loadMethodInfo(method);
|
|
32
41
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const methodInfo = await methodCache.getItem(method);
|
|
39
|
-
if (methodInfo) {
|
|
40
|
-
return methodInfo;
|
|
42
|
+
if (externalMethodCacheMap) {
|
|
43
|
+
const methodInfo = externalMethodCacheMap[method];
|
|
44
|
+
if (methodInfo) {
|
|
45
|
+
return methodInfo;
|
|
46
|
+
}
|
|
41
47
|
}
|
|
48
|
+
// 缓存未就绪或未命中时,降级单条查询
|
|
42
49
|
return await this.loadMethodInfo(method);
|
|
43
50
|
}
|
|
44
51
|
async loadMethodInfo(method) {
|
|
45
52
|
const { methodsTableName, sysDatabaseName, sysDatabaseDbType } = this.getContextCfg();
|
|
46
|
-
const sql = `select * from ${methodsTableName} where method = ? `;
|
|
53
|
+
const sql = `select * from ${methodsTableName} where method = ? `;
|
|
47
54
|
const baseInfo = {
|
|
48
55
|
sqlTable: methodsTableName,
|
|
49
56
|
sqlDatabase: sysDatabaseName,
|
|
@@ -52,33 +59,9 @@ class CrudProCachedCfgService extends CrudProServiceBase_1.CrudProServiceBase {
|
|
|
52
59
|
const queryRes = await this.executeUnsafeQuery(baseInfo, sql, [method]);
|
|
53
60
|
const rows2 = queryRes.rows || [];
|
|
54
61
|
if (rows2.length > 0) {
|
|
55
|
-
return
|
|
62
|
+
return parseCrudMethodInfo(rows2[0]);
|
|
56
63
|
}
|
|
57
64
|
return null;
|
|
58
65
|
}
|
|
59
|
-
async loadMethodInfoList() {
|
|
60
|
-
const { methodsTableName, sysDatabaseName, sysDatabaseDbType } = this.getContextCfg();
|
|
61
|
-
const sql = `select * from ${methodsTableName}`; // 全部加载到内存
|
|
62
|
-
const baseInfo = {
|
|
63
|
-
sqlTable: methodsTableName,
|
|
64
|
-
sqlDatabase: sysDatabaseName,
|
|
65
|
-
sqlDbType: sysDatabaseDbType,
|
|
66
|
-
};
|
|
67
|
-
const queryRes = await this.executeUnsafeQuery(baseInfo, sql);
|
|
68
|
-
const rows2 = queryRes.rows || [];
|
|
69
|
-
return rows2.map(row => {
|
|
70
|
-
return parseMethodInfo(row);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
66
|
}
|
|
74
67
|
exports.CrudProCachedCfgService = CrudProCachedCfgService;
|
|
75
|
-
/**
|
|
76
|
-
* 清空 CRUD 方法配置缓存(独立函数,无需实例化 Service 即可调用)
|
|
77
|
-
*
|
|
78
|
-
* 清空后,下次请求会自动从数据库重新加载(懒加载刷新)。
|
|
79
|
-
* 适用于 manage 增删改触发刷新、定时刷新等场景。
|
|
80
|
-
*/
|
|
81
|
-
function clearMethodCache() {
|
|
82
|
-
methodCache.clear();
|
|
83
|
-
}
|
|
84
|
-
exports.clearMethodCache = clearMethodCache;
|
|
@@ -2,46 +2,11 @@ import { CrudProServiceBase } from './CrudProServiceBase';
|
|
|
2
2
|
import { RequestModel } from '../models/RequestModel';
|
|
3
3
|
import { RequestCfgModel } from '../models/RequestCfgModel';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* 鎸夋暟鎹簱鍒嗙被锛?
|
|
9
|
-
* - PostgreSQL 涓撴湁锛欰RRAY 鍒?鈫?PG 鏁扮粍瀛楅潰閲?
|
|
10
|
-
* - 涓夊簱閫氱敤锛堝€肩被鍨嬮┍鍔級锛氬璞?鏁扮粍 鈫?JSON.stringify()锛岃鐩?json/jsonb/longtext瀛楯SON 绛夋墍鏈夊満鏅?
|
|
11
|
-
* - 涓夊簱閫氱敤锛氭煡璇㈡潯浠剁被鍨嬪己杞紝闃叉绱㈠紩澶辨晥
|
|
5
|
+
* 数据类型转换服务
|
|
6
|
+
* data/condition 类型强转、PG ARRAY 字面量、对象/数组 JSON 序列化
|
|
12
7
|
*/
|
|
13
8
|
declare class CrudProDataTypeConvertService extends CrudProServiceBase {
|
|
14
|
-
/**
|
|
15
|
-
* INSERT/UPDATE 鏃讹細鏍规嵁琛ㄧ粨鏋勫瓧娈电被鍨嬭嚜鍔ㄨ浆鎹?reqModel.data 涓殑鏁版嵁鏍煎紡
|
|
16
|
-
*
|
|
17
|
-
* 瀹炵幇姝ラ锛?
|
|
18
|
-
* 1. 鍒ゆ柇鎿嶄綔绫诲瀷鏄惁涓?INSERT/UPDATE锛屽惁鍒欒烦杩?
|
|
19
|
-
* 2. PostgreSQL锛氳幏鍙栬〃鍏冩暟鎹紝璇嗗埆 ARRAY 绫诲瀷瀛楁锛屽皢 JS 鏁扮粍杞负 PG 鏁扮粍瀛楅潰閲?
|
|
20
|
-
* 3. 涓夊簱閫氱敤锛氶亶鍘?data 涓墍鏈夊€硷紝灏嗗璞?鏁扮粍鑷姩 JSON.stringify()
|
|
21
|
-
* 涓嶄緷璧栧垪绫诲瀷鍒ゆ柇锛屽洜涓?longtext/varchar 绛夐潪 JSON 鍒椾篃鍙兘瀛?JSON 瀵硅薄
|
|
22
|
-
*
|
|
23
|
-
* @param reqModel 璇锋眰妯″瀷
|
|
24
|
-
* @param cfgModel 閰嶇疆妯″瀷
|
|
25
|
-
*/
|
|
26
9
|
convertDataTypeByTableMeta(reqModel: RequestModel, cfgModel: RequestCfgModel): Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* SELECT/DELETE/UPDATE 鏃讹細鏍规嵁琛ㄧ粨鏋勫瓧娈电被鍨嬭嚜鍔ㄨ浆鎹?condition 涓殑鏁版嵁鏍煎紡
|
|
29
|
-
* 闃叉鏁版嵁搴撻殣寮忕被鍨嬭浆鎹㈠鑷寸储寮曞け鏁堬紙MySQL / PostgreSQL / SQL Server 涓夊簱閫氱敤锛?
|
|
30
|
-
*
|
|
31
|
-
* 瀹炵幇姝ラ锛?
|
|
32
|
-
* 1. 鍒ゆ柇鎿嶄綔绫诲瀷鏄惁涓烘煡璇?鍒犻櫎/鏇存柊锛堣繖浜涙搷浣滃寘鍚?WHERE 鏉′欢锛?
|
|
33
|
-
* 2. 鑾峰彇琛ㄥ厓鏁版嵁锛屾瀯寤哄瓧娈靛悕鈫掔被鍨嬫槧灏?
|
|
34
|
-
* 3. 閫掑綊閬嶅巻 condition锛堟敮鎸?$or/$and 宓屽锛夛紝鎸夊瓧娈电被鍨嬭浆鎹㈠€?
|
|
35
|
-
*
|
|
36
|
-
* 杞崲瑙勫垯锛堝弻鍚戜繚鎶わ紝浠呭鐞嗘渶甯稿缓绱㈠紩鐨勫垪绫诲瀷锛夛細
|
|
37
|
-
* - 鏁存暟鍒?int/bigint/smallint/tinyint/mediumint) + 瀛楃涓插€?鈫?number
|
|
38
|
-
* - 鏁存暟鍒?+ 甯冨皵鍊?鈫?0/1
|
|
39
|
-
* - 瀛楃涓插垪(varchar/char/text绛? + 鏁板瓧鍊?鈫?string
|
|
40
|
-
* - 瀛楃涓插垪 + 甯冨皵鍊?鈫?string
|
|
41
|
-
*
|
|
42
|
-
* @param reqModel 璇锋眰妯″瀷
|
|
43
|
-
* @param cfgModel 閰嶇疆妯″瀷
|
|
44
|
-
*/
|
|
45
10
|
convertConditionTypeByTableMeta(reqModel: RequestModel, cfgModel: RequestCfgModel): Promise<void>;
|
|
46
11
|
}
|
|
47
12
|
export { CrudProDataTypeConvertService };
|