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.
Files changed (146) hide show
  1. package/dist/config/config.default.js +5 -3
  2. package/dist/configuration.d.ts +0 -3
  3. package/dist/configuration.js +0 -19
  4. package/dist/controller/gateway/ProxyApiGatewayController.d.ts +0 -2
  5. package/dist/controller/gateway/ProxyApiGatewayController.js +0 -18
  6. package/dist/controller/helpers.controller.d.ts +4 -5
  7. package/dist/controller/helpers.controller.js +56 -14
  8. package/dist/controller/manage/AccountRoleManageApi.js +3 -5
  9. package/dist/controller/manage/AnyApiMangeApi.js +4 -3
  10. package/dist/controller/manage/AppMangeApi.js +3 -4
  11. package/dist/controller/manage/AppPageMangeApi.js +4 -3
  12. package/dist/controller/manage/CrudMethodsMangeApi.js +3 -4
  13. package/dist/controller/manage/DataDictManageApi.js +6 -7
  14. package/dist/controller/manage/DeployManageApi.js +4 -5
  15. package/dist/controller/manage/FlowConfigManageApi.js +3 -5
  16. package/dist/controller/manage/MenuManageApi.js +3 -4
  17. package/dist/controller/manage/ProxyApiMangeApi.js +3 -4
  18. package/dist/controller/manage/SysConfigMangeApi.js +3 -3
  19. package/dist/controller/manage/SystemInfoManageApi.js +3 -1
  20. package/dist/controller/manage/WorkbenchMangeApi.js +3 -4
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.js +3 -0
  23. package/dist/libs/crud-pro/models/TransactionSqlServer.js +27 -4
  24. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +5 -8
  25. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +25 -42
  26. package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.d.ts +2 -37
  27. package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.js +137 -213
  28. package/dist/libs/crud-pro/utils/CrudMonitor.d.ts +0 -9
  29. package/dist/libs/crud-pro/utils/CrudMonitor.js +0 -21
  30. package/dist/libs/crud-pro/utils/MixinUtils.d.ts +2 -17
  31. package/dist/libs/crud-pro/utils/MixinUtils.js +4 -84
  32. package/dist/libs/crud-pro/utils/idgene/generateSnowflakeId.d.ts +12 -0
  33. package/dist/libs/crud-pro/utils/idgene/generateSnowflakeId.js +61 -0
  34. package/dist/libs/crud-pro/utils/idgene/generateSnowflakeIdExt.d.ts +19 -0
  35. package/dist/libs/crud-pro/utils/idgene/generateSnowflakeIdExt.js +89 -0
  36. package/dist/libs/crud-pro/utils/idgene/index.d.ts +3 -0
  37. package/dist/libs/crud-pro/utils/idgene/index.js +10 -0
  38. package/dist/libs/crud-pro/utils/idgene/uuid.d.ts +7 -0
  39. package/dist/libs/crud-pro/utils/idgene/uuid.js +28 -0
  40. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +26 -0
  41. package/dist/libs/crud-pro-quick/fixSoftDelete.d.ts +0 -17
  42. package/dist/libs/crud-pro-quick/fixSoftDelete.js +55 -5
  43. package/dist/libs/crud-pro-quick/models.d.ts +11 -1
  44. package/dist/middleware/cacherefresh.middleware.d.ts +3 -46
  45. package/dist/middleware/cacherefresh.middleware.js +9 -67
  46. package/dist/models/CacheRefreshCategory.d.ts +1 -18
  47. package/dist/models/CacheRefreshCategory.js +0 -17
  48. package/dist/models/SystemEntities.d.ts +2 -0
  49. package/dist/models/bizmodels.d.ts +0 -8
  50. package/dist/models/bizmodels.js +0 -8
  51. package/dist/schedule/scheduleNames.d.ts +2 -0
  52. package/dist/schedule/scheduleNames.js +3 -1
  53. package/dist/service/SysAppService.d.ts +0 -6
  54. package/dist/service/SysAppService.js +10 -79
  55. package/dist/service/SysConfigService.d.ts +0 -6
  56. package/dist/service/SysConfigService.js +6 -51
  57. package/dist/service/SysDictDataService.d.ts +0 -5
  58. package/dist/service/SysDictDataService.js +7 -65
  59. package/dist/service/SysMenuService.d.ts +0 -4
  60. package/dist/service/SysMenuService.js +5 -44
  61. package/dist/service/WorkbenchService.d.ts +1 -6
  62. package/dist/service/WorkbenchService.js +9 -63
  63. package/dist/service/anyapi/AnyApiService.d.ts +1 -1
  64. package/dist/service/anyapi/AnyApiService.js +6 -16
  65. package/dist/service/base/bizmemcache/BizMemCacheService.d.ts +16 -0
  66. package/dist/service/base/bizmemcache/BizMemCacheService.js +241 -0
  67. package/dist/service/base/bizmemcache/BizMemCacheStore.d.ts +34 -0
  68. package/dist/service/base/bizmemcache/BizMemCacheStore.js +119 -0
  69. package/dist/service/base/bizmemcache/BizMemCacheTypes.d.ts +60 -0
  70. package/dist/service/base/bizmemcache/BizMemCacheTypes.js +18 -0
  71. package/dist/service/base/cache-refresh/CacheRefreshHub.d.ts +0 -22
  72. package/dist/service/base/cache-refresh/CacheRefreshHub.js +0 -22
  73. package/dist/service/base/cache-refresh/CacheRefreshHubScheduleService.d.ts +0 -6
  74. package/dist/service/base/cache-refresh/CacheRefreshHubScheduleService.js +0 -6
  75. package/dist/service/crudstd/CrudStdService.js +1 -1
  76. package/dist/service/curd/CurdMixByDictService.d.ts +0 -4
  77. package/dist/service/curd/CurdMixByDictService.js +9 -55
  78. package/dist/service/curd/CurdMixBySysConfigService.d.ts +0 -5
  79. package/dist/service/curd/CurdMixBySysConfigService.js +9 -54
  80. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +0 -1
  81. package/dist/service/curd/CurdMixByWorkbenchService.js +9 -36
  82. package/dist/service/curd/CurdProService.d.ts +0 -1
  83. package/dist/service/curd/CurdProService.js +0 -4
  84. package/dist/service/curd/fixCfgModel.js +21 -1
  85. package/dist/service/proxyapi/ProxyApiLoadService.d.ts +3 -8
  86. package/dist/service/proxyapi/ProxyApiLoadService.js +40 -68
  87. package/dist/service/proxyapi/ProxyApiService.d.ts +2 -0
  88. package/dist/service/proxyapi/ProxyApiService.js +32 -9
  89. package/dist/service/proxyapi/RouteTrie.d.ts +1 -7
  90. package/dist/service/proxyapi/RouteTrie.js +1 -17
  91. package/package.json +1 -1
  92. package/src/config/config.default.ts +4 -2
  93. package/src/configuration.ts +0 -23
  94. package/src/controller/gateway/ProxyApiGatewayController.ts +1 -9
  95. package/src/controller/helpers.controller.ts +66 -15
  96. package/src/controller/manage/AccountRoleManageApi.ts +3 -5
  97. package/src/controller/manage/AnyApiMangeApi.ts +4 -3
  98. package/src/controller/manage/AppMangeApi.ts +4 -5
  99. package/src/controller/manage/AppPageMangeApi.ts +4 -3
  100. package/src/controller/manage/CrudMethodsMangeApi.ts +4 -5
  101. package/src/controller/manage/DataDictManageApi.ts +7 -8
  102. package/src/controller/manage/DeployManageApi.ts +2 -3
  103. package/src/controller/manage/FlowConfigManageApi.ts +3 -5
  104. package/src/controller/manage/MenuManageApi.ts +4 -5
  105. package/src/controller/manage/ProxyApiMangeApi.ts +4 -5
  106. package/src/controller/manage/SysConfigMangeApi.ts +5 -5
  107. package/src/controller/manage/SystemInfoManageApi.ts +3 -1
  108. package/src/controller/manage/WorkbenchMangeApi.ts +4 -5
  109. package/src/index.ts +3 -0
  110. package/src/libs/crud-pro/models/TransactionSqlServer.ts +26 -4
  111. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +25 -43
  112. package/src/libs/crud-pro/services/CrudProDataTypeConvertService.ts +149 -219
  113. package/src/libs/crud-pro/utils/CrudMonitor.ts +0 -23
  114. package/src/libs/crud-pro/utils/MixinUtils.ts +309 -400
  115. package/src/libs/crud-pro/utils/idgene/generateSnowflakeId.ts +65 -0
  116. package/src/libs/crud-pro/utils/idgene/generateSnowflakeIdExt.ts +99 -0
  117. package/src/libs/crud-pro/utils/idgene/index.ts +3 -0
  118. package/src/libs/crud-pro/utils/idgene/uuid.ts +26 -0
  119. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +31 -0
  120. package/src/libs/crud-pro-quick/fixSoftDelete.ts +84 -18
  121. package/src/libs/crud-pro-quick/models.ts +15 -3
  122. package/src/middleware/cacherefresh.middleware.ts +10 -71
  123. package/src/models/CacheRefreshCategory.ts +0 -17
  124. package/src/models/SystemEntities.ts +2 -0
  125. package/src/models/bizmodels.ts +0 -8
  126. package/src/schedule/scheduleNames.ts +5 -3
  127. package/src/service/SysAppService.ts +7 -78
  128. package/src/service/SysConfigService.ts +4 -45
  129. package/src/service/SysDictDataService.ts +5 -64
  130. package/src/service/SysMenuService.ts +3 -40
  131. package/src/service/WorkbenchService.ts +9 -72
  132. package/src/service/anyapi/AnyApiService.ts +5 -17
  133. package/src/service/base/bizmemcache/BizMemCacheService.ts +290 -0
  134. package/src/service/base/bizmemcache/BizMemCacheStore.ts +159 -0
  135. package/src/service/base/bizmemcache/BizMemCacheTypes.ts +76 -0
  136. package/src/service/base/cache-refresh/CacheRefreshHub.ts +0 -22
  137. package/src/service/base/cache-refresh/CacheRefreshHubScheduleService.ts +0 -6
  138. package/src/service/crudstd/CrudStdService.ts +3 -2
  139. package/src/service/curd/CurdMixByDictService.ts +10 -61
  140. package/src/service/curd/CurdMixBySysConfigService.ts +9 -62
  141. package/src/service/curd/CurdMixByWorkbenchService.ts +7 -32
  142. package/src/service/curd/CurdProService.ts +0 -6
  143. package/src/service/curd/fixCfgModel.ts +145 -125
  144. package/src/service/proxyapi/ProxyApiLoadService.ts +39 -77
  145. package/src/service/proxyapi/ProxyApiService.ts +45 -9
  146. 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.refreshCategory)(CacheRefreshCategory_1.CacheRefreshCategory.ProxyApiRoute)] }),
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.refreshCategory)(CacheRefreshCategory_1.CacheRefreshCategory.ProxyApiRoute)] }),
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.refreshCategory)(CacheRefreshCategory_1.CacheRefreshCategory.ProxyApiRoute)] }),
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.refreshCache)(bizmodels_1.CacheNameEnum.GetSysConfigOne)] }),
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.refreshCache)(bizmodels_1.CacheNameEnum.GetSysConfigOne)] }),
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.refreshCache)(bizmodels_1.CacheNameEnum.GetSysConfigOne)] }),
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.refreshCache)([bizmodels_1.CacheNameEnum.GetWorkbenchCachedObj, bizmodels_1.CacheNameEnum.CurdMixByWorkbench])] }),
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.refreshCache)([bizmodels_1.CacheNameEnum.GetWorkbenchCachedObj, bizmodels_1.CacheNameEnum.CurdMixByWorkbench])] }),
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.refreshCache)([bizmodels_1.CacheNameEnum.GetWorkbenchCachedObj, bizmodels_1.CacheNameEnum.CurdMixByWorkbench])] }),
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
- const request = new mssql_1.Request(this.originConnection);
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
- await tmpTx.commit();
40
+ if (tmpTx) {
41
+ await tmpTx.commit();
42
+ }
36
43
  }
37
44
  async rollback() {
38
45
  const tmpTx = this.sqlServerTransaction;
39
- await tmpTx.rollback();
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
- CrudMonitor_1.CrudMonitor.postgresReleaseConnectionCount++;
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.clearMethodCache = exports.CrudProCachedCfgService = void 0;
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
- // import { pickAndConvertRowsByMix } from '../utils/sqlConvert/convertMix';
8
- const MemoryRefreshCache_1 = require("../utils/MemoryRefreshCache");
9
- const DEFAULT_KEEP_TIME = 1000 * 60 * 60 * 24 * 365; // 内存缓存时间默认 1年
10
- const methodCache = new MemoryRefreshCache_1.default();
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
- methodCache.setProps({
34
- keepTime: DEFAULT_KEEP_TIME,
35
- requestFn: () => this.loadMethodInfoList(),
36
- getKeyFn: item => item.method,
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 parseMethodInfo(rows2[0]);
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 };