midway-fatcms 0.0.1-beta.3 → 0.0.1-beta.31

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 (328) hide show
  1. package/.eslintrc.json +14 -0
  2. package/.prettierrc.js +4 -0
  3. package/README.md +7 -0
  4. package/dist/config/config.default.js +60 -19
  5. package/dist/config/seed/aeskey.txt +1 -1
  6. package/dist/configuration.d.ts +1 -0
  7. package/dist/configuration.js +33 -9
  8. package/dist/controller/base/BaseApiController.d.ts +7 -1
  9. package/dist/controller/base/BaseApiController.js +32 -6
  10. package/dist/controller/gateway/AsyncTaskController.d.ts +20 -0
  11. package/dist/controller/gateway/AsyncTaskController.js +181 -0
  12. package/dist/controller/gateway/CrudMtdGatewayController.d.ts +3 -3
  13. package/dist/controller/gateway/CrudMtdGatewayController.js +9 -6
  14. package/dist/controller/gateway/DocGatewayController.js +14 -9
  15. package/dist/controller/gateway/FileController.d.ts +3 -2
  16. package/dist/controller/gateway/PublicApiController.js +4 -6
  17. package/dist/controller/gateway/StaticController.d.ts +3 -0
  18. package/dist/controller/gateway/StaticController.js +74 -51
  19. package/dist/controller/helpers.controller.d.ts +1 -1
  20. package/dist/controller/home.controller.js +4 -3
  21. package/dist/controller/manage/AnyApiMangeApi.js +2 -2
  22. package/dist/controller/manage/AppLogMangeApi.js +2 -2
  23. package/dist/controller/manage/AppMangeApi.js +2 -2
  24. package/dist/controller/manage/AppPageMangeApi.js +2 -2
  25. package/dist/controller/manage/AppSchemaHistoryApi.js +2 -2
  26. package/dist/controller/manage/CrudMethodsMangeApi.js +2 -2
  27. package/dist/controller/manage/CrudStandardDesignApi.d.ts +1 -1
  28. package/dist/controller/manage/CrudStandardDesignApi.js +86 -83
  29. package/dist/controller/manage/DataDictManageApi.d.ts +1 -1
  30. package/dist/controller/manage/DataDictManageApi.js +1 -1
  31. package/dist/controller/manage/DeployManageApi.d.ts +1 -1
  32. package/dist/controller/manage/DeployManageApi.js +38 -34
  33. package/dist/controller/manage/DocLibManageApi.js +2 -2
  34. package/dist/controller/manage/DocManageApi.js +2 -2
  35. package/dist/controller/manage/FileManageApi.js +1 -1
  36. package/dist/controller/manage/LowCodeTplManageApi.js +2 -2
  37. package/dist/controller/manage/MenuManageApi.js +2 -2
  38. package/dist/controller/manage/ProxyApiMangeApi.js +2 -2
  39. package/dist/controller/manage/SuperAdminManageApi.d.ts +2 -2
  40. package/dist/controller/manage/SuperAdminManageApi.js +12 -8
  41. package/dist/controller/manage/SysConfigMangeApi.d.ts +1 -1
  42. package/dist/controller/manage/SysConfigMangeApi.js +8 -6
  43. package/dist/controller/manage/SystemInfoManageApi.d.ts +1 -1
  44. package/dist/controller/manage/SystemInfoManageApi.js +7 -1
  45. package/dist/controller/manage/UserAccountManageApi.d.ts +2 -2
  46. package/dist/controller/manage/UserAccountManageApi.js +7 -2
  47. package/dist/controller/manage/WorkbenchMangeApi.js +3 -3
  48. package/dist/controller/myinfo/AuthController.d.ts +0 -4
  49. package/dist/controller/myinfo/AuthController.js +1 -54
  50. package/dist/controller/render/AppRenderController.js +12 -5
  51. package/dist/controller/test.controller.d.ts +1 -1
  52. package/dist/controller/test.controller.js +5 -5
  53. package/dist/index.d.ts +35 -4
  54. package/dist/index.js +35 -4
  55. package/dist/libs/crud-pro/CrudPro.d.ts +1 -0
  56. package/dist/libs/crud-pro/CrudPro.js +5 -0
  57. package/dist/libs/crud-pro/defaultConfigs.js +2 -0
  58. package/dist/libs/crud-pro/interfaces.d.ts +7 -1
  59. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +12 -5
  60. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +8 -1
  61. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +8 -0
  62. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +1 -1
  63. package/dist/libs/crud-pro/models/ResModel.d.ts +16 -0
  64. package/dist/libs/crud-pro/models/ResModel.js +2 -0
  65. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +1 -1
  66. package/dist/libs/crud-pro/models/TransactionSqlServer.js +1 -1
  67. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
  68. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +27 -15
  69. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +17 -19
  70. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
  71. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
  72. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
  73. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
  74. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
  75. package/dist/libs/crud-pro/services/CrudProServiceBase.js +14 -2
  76. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
  77. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +32 -7
  78. package/dist/libs/crud-pro/sql.txt +120 -120
  79. package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
  80. package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
  81. package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
  82. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
  83. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
  84. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
  85. package/dist/libs/global-config/global-config.d.ts +45 -0
  86. package/dist/libs/global-config/global-config.js +33 -0
  87. package/dist/libs/utils/errorToString.d.ts +2 -0
  88. package/dist/libs/utils/errorToString.js +57 -0
  89. package/dist/libs/utils/fatcms-request.js +2 -2
  90. package/dist/libs/utils/functions.d.ts +2 -1
  91. package/dist/libs/utils/functions.js +6 -1
  92. package/dist/middleware/forbidden.middleware.js +4 -20
  93. package/dist/middleware/global.middleware.js +30 -10
  94. package/dist/middleware/permission.middleware.js +1 -1
  95. package/dist/models/AsyncTaskModel.d.ts +74 -0
  96. package/dist/models/AsyncTaskModel.js +31 -0
  97. package/dist/models/RedisKeys.d.ts +14 -0
  98. package/dist/models/RedisKeys.js +17 -0
  99. package/dist/models/SystemTables.d.ts +1 -3
  100. package/dist/models/SystemTables.js +2 -4
  101. package/dist/models/bizmodels.d.ts +28 -0
  102. package/dist/models/bizmodels.js +6 -1
  103. package/dist/schedule/anonymousContext.d.ts +14 -0
  104. package/dist/schedule/anonymousContext.js +59 -0
  105. package/dist/schedule/index.d.ts +4 -3
  106. package/dist/schedule/index.js +8 -67
  107. package/dist/schedule/runSchedule.d.ts +12 -0
  108. package/dist/schedule/runSchedule.js +68 -0
  109. package/dist/schedule/scheduleNames.d.ts +13 -0
  110. package/dist/schedule/scheduleNames.js +17 -0
  111. package/dist/service/AuthService.js +8 -5
  112. package/dist/service/EnumInfoService.js +9 -5
  113. package/dist/service/FileCenterService.js +13 -9
  114. package/dist/service/SysConfigService.d.ts +1 -1
  115. package/dist/service/SysConfigService.js +4 -2
  116. package/dist/service/UserAccountService.js +10 -6
  117. package/dist/service/UserSessionService.d.ts +21 -0
  118. package/dist/service/UserSessionService.js +73 -2
  119. package/dist/service/VisitStatService.d.ts +1 -1
  120. package/dist/service/VisitStatService.js +20 -27
  121. package/dist/service/WorkbenchService.d.ts +32 -0
  122. package/dist/service/WorkbenchService.js +61 -12
  123. package/dist/service/anyapi/AnyApiSandboxService.js +12 -12
  124. package/dist/service/anyapi/AnyApiService.js +4 -2
  125. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -0
  126. package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -0
  127. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
  128. package/dist/service/asyncTask/AsyncTaskService.js +34 -0
  129. package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -0
  130. package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -0
  131. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -0
  132. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -0
  133. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -0
  134. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +139 -0
  135. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -0
  136. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +121 -0
  137. package/dist/service/base/BaseService.d.ts +12 -0
  138. package/dist/service/base/BaseService.js +22 -0
  139. package/dist/service/base/RedisCacheService.d.ts +7 -0
  140. package/dist/service/base/RedisCacheService.js +7 -0
  141. package/dist/service/crudstd/CrudStdService.d.ts +8 -1
  142. package/dist/service/crudstd/CrudStdService.js +63 -6
  143. package/dist/service/curd/CrudProQuick.d.ts +44 -0
  144. package/dist/service/curd/CrudProQuick.js +147 -0
  145. package/dist/service/curd/CurdMixByAccountService.d.ts +4 -4
  146. package/dist/service/curd/CurdMixByAccountService.js +12 -6
  147. package/dist/service/curd/CurdMixByDictService.d.ts +4 -4
  148. package/dist/service/curd/CurdMixByDictService.js +10 -7
  149. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +13 -4
  150. package/dist/service/curd/CurdMixByLinkToCustomService.js +73 -24
  151. package/dist/service/curd/CurdMixBySysConfigService.d.ts +3 -3
  152. package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
  153. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +3 -3
  154. package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
  155. package/dist/service/curd/CurdMixService.d.ts +13 -3
  156. package/dist/service/curd/CurdMixService.js +26 -2
  157. package/dist/service/curd/CurdMixUtils.d.ts +27 -4
  158. package/dist/service/curd/CurdMixUtils.js +115 -41
  159. package/dist/service/curd/CurdProService.d.ts +3 -10
  160. package/dist/service/curd/CurdProService.js +36 -148
  161. package/dist/service/curd/fixCfgModel.d.ts +3 -0
  162. package/dist/service/curd/fixCfgModel.js +107 -0
  163. package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
  164. package/dist/views/404_app.html +31 -31
  165. package/dist/views/404_workbench.html +34 -34
  166. package/package.json +25 -24
  167. package/tsconfig.json +32 -0
  168. package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
  169. package/dist/controller/medstatistic/MedAdminController.js +0 -205
  170. package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
  171. package/dist/controller/medstatistic/MedClientController.js +0 -188
  172. package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
  173. package/dist/controller/medstatistic/MedMessageService.js +0 -95
  174. package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
  175. package/dist/controller/medstatistic/MedScoreService.js +0 -107
  176. package/dist/controller/medstatistic/constants.d.ts +0 -32
  177. package/dist/controller/medstatistic/constants.js +0 -43
  178. package/src/config/config.default.ts +0 -172
  179. package/src/config/seed/aeskey.txt +0 -1
  180. package/src/config/utils.ts +0 -23
  181. package/src/configuration.ts +0 -83
  182. package/src/controller/base/BaseApiController.ts +0 -145
  183. package/src/controller/gateway/AnyApiGatewayController.ts +0 -33
  184. package/src/controller/gateway/CrudMtdGatewayController.ts +0 -107
  185. package/src/controller/gateway/CrudStdGatewayController.ts +0 -101
  186. package/src/controller/gateway/DocGatewayController.ts +0 -165
  187. package/src/controller/gateway/FileController.ts +0 -110
  188. package/src/controller/gateway/ProxyApiGatewayController.ts +0 -47
  189. package/src/controller/gateway/PublicApiController.ts +0 -145
  190. package/src/controller/gateway/StaticController.ts +0 -303
  191. package/src/controller/helpers.controller.ts +0 -161
  192. package/src/controller/home.controller.ts +0 -71
  193. package/src/controller/manage/AnyApiMangeApi.ts +0 -66
  194. package/src/controller/manage/AppLogMangeApi.ts +0 -53
  195. package/src/controller/manage/AppMangeApi.ts +0 -53
  196. package/src/controller/manage/AppPageMangeApi.ts +0 -52
  197. package/src/controller/manage/AppSchemaHistoryApi.ts +0 -49
  198. package/src/controller/manage/CrudMethodsMangeApi.ts +0 -49
  199. package/src/controller/manage/CrudStandardDesignApi.ts +0 -353
  200. package/src/controller/manage/DataDictManageApi.ts +0 -78
  201. package/src/controller/manage/DeployManageApi.ts +0 -179
  202. package/src/controller/manage/DocLibManageApi.ts +0 -69
  203. package/src/controller/manage/DocManageApi.ts +0 -99
  204. package/src/controller/manage/FileManageApi.ts +0 -45
  205. package/src/controller/manage/LowCodeTplManageApi.ts +0 -52
  206. package/src/controller/manage/MenuManageApi.ts +0 -63
  207. package/src/controller/manage/ProxyApiMangeApi.ts +0 -52
  208. package/src/controller/manage/SuperAdminManageApi.ts +0 -138
  209. package/src/controller/manage/SysConfigMangeApi.ts +0 -95
  210. package/src/controller/manage/SystemInfoManageApi.ts +0 -48
  211. package/src/controller/manage/UserAccountManageApi.ts +0 -88
  212. package/src/controller/manage/WorkbenchMangeApi.ts +0 -72
  213. package/src/controller/medstatistic/MedAdminController.ts +0 -221
  214. package/src/controller/medstatistic/MedClientController.ts +0 -188
  215. package/src/controller/medstatistic/MedMessageService.ts +0 -89
  216. package/src/controller/medstatistic/MedScoreService.ts +0 -108
  217. package/src/controller/medstatistic/constants.ts +0 -63
  218. package/src/controller/myinfo/AuthController.ts +0 -174
  219. package/src/controller/myinfo/MyInfoController.ts +0 -32
  220. package/src/controller/render/AppRenderController.ts +0 -76
  221. package/src/controller/test.controller.ts +0 -37
  222. package/src/filter/default.filter.ts +0 -13
  223. package/src/filter/notfound.filter.ts +0 -10
  224. package/src/index.ts +0 -71
  225. package/src/interface.ts +0 -31
  226. package/src/libs/crud-pro/CrudPro.ts +0 -158
  227. package/src/libs/crud-pro/defaultConfigs.ts +0 -13
  228. package/src/libs/crud-pro/exceptions.ts +0 -124
  229. package/src/libs/crud-pro/interfaces.ts +0 -183
  230. package/src/libs/crud-pro/models/ExecuteContext.ts +0 -111
  231. package/src/libs/crud-pro/models/ExecuteContextFunc.ts +0 -86
  232. package/src/libs/crud-pro/models/FuncContext.ts +0 -21
  233. package/src/libs/crud-pro/models/RequestCfgModel.ts +0 -141
  234. package/src/libs/crud-pro/models/RequestModel.ts +0 -141
  235. package/src/libs/crud-pro/models/ServiceHub.ts +0 -32
  236. package/src/libs/crud-pro/models/SqlCfgModel.ts +0 -52
  237. package/src/libs/crud-pro/models/SqlSegArg.ts +0 -13
  238. package/src/libs/crud-pro/models/Transaction.ts +0 -74
  239. package/src/libs/crud-pro/models/TransactionMySQL.ts +0 -79
  240. package/src/libs/crud-pro/models/TransactionPostgres.ts +0 -91
  241. package/src/libs/crud-pro/models/TransactionSqlServer.ts +0 -107
  242. package/src/libs/crud-pro/models/keys.ts +0 -159
  243. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +0 -75
  244. package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +0 -128
  245. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +0 -279
  246. package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +0 -60
  247. package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +0 -180
  248. package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +0 -373
  249. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +0 -202
  250. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +0 -397
  251. package/src/libs/crud-pro/services/CrudProServiceBase.ts +0 -98
  252. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +0 -59
  253. package/src/libs/crud-pro/services/CurdProServiceHub.ts +0 -92
  254. package/src/libs/crud-pro/sql.txt +0 -120
  255. package/src/libs/crud-pro/utils/CompareUtils.ts +0 -23
  256. package/src/libs/crud-pro/utils/DatabaseName.ts +0 -40
  257. package/src/libs/crud-pro/utils/DateTimeUtils.ts +0 -20
  258. package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +0 -64
  259. package/src/libs/crud-pro/utils/MessageParseUtils.ts +0 -33
  260. package/src/libs/crud-pro/utils/MixinUtils.ts +0 -285
  261. package/src/libs/crud-pro/utils/ModelUtils.ts +0 -55
  262. package/src/libs/crud-pro/utils/MultiKeyMap.ts +0 -72
  263. package/src/libs/crud-pro/utils/SqlFuncUtils.ts +0 -29
  264. package/src/libs/crud-pro/utils/TypeUtils.ts +0 -188
  265. package/src/libs/crud-pro/utils/ValidateUtils.ts +0 -167
  266. package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +0 -20
  267. package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +0 -22
  268. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +0 -22
  269. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +0 -26
  270. package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +0 -11
  271. package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +0 -11
  272. package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +0 -129
  273. package/src/libs/utils/common-dto.ts +0 -52
  274. package/src/libs/utils/crypto-utils.ts +0 -52
  275. package/src/libs/utils/fatcms-request.ts +0 -115
  276. package/src/libs/utils/functions.ts +0 -67
  277. package/src/libs/utils/ordernum-utils.ts +0 -18
  278. package/src/libs/utils/parseConfig.ts +0 -62
  279. package/src/libs/utils/parseCreateSql.ts +0 -91
  280. package/src/libs/utils/render-utils.ts +0 -184
  281. package/src/middleware/forbidden.middleware.ts +0 -71
  282. package/src/middleware/global.middleware.ts +0 -278
  283. package/src/middleware/permission.middleware.ts +0 -81
  284. package/src/middleware/tx.middleware.ts +0 -30
  285. package/src/models/SystemEntities.ts +0 -115
  286. package/src/models/SystemPerm.ts +0 -105
  287. package/src/models/SystemTables.ts +0 -30
  288. package/src/models/bizmodels.ts +0 -89
  289. package/src/models/contextLogger.ts +0 -132
  290. package/src/models/devops.ts +0 -17
  291. package/src/models/userSession.ts +0 -216
  292. package/src/schedule/index.ts +0 -73
  293. package/src/service/AuthService.ts +0 -270
  294. package/src/service/EnumInfoService.ts +0 -129
  295. package/src/service/FileCenterService.ts +0 -394
  296. package/src/service/SysConfigService.ts +0 -34
  297. package/src/service/UserAccountService.ts +0 -100
  298. package/src/service/UserSessionService.ts +0 -81
  299. package/src/service/VisitStatService.ts +0 -179
  300. package/src/service/WorkbenchService.ts +0 -160
  301. package/src/service/anyapi/AnyApiSandboxService.ts +0 -121
  302. package/src/service/anyapi/AnyApiService.ts +0 -184
  303. package/src/service/base/ApiBaseService.ts +0 -42
  304. package/src/service/base/ApiRateLimiter.ts +0 -59
  305. package/src/service/base/BaseService.ts +0 -74
  306. package/src/service/base/RedisCacheService.ts +0 -38
  307. package/src/service/crudstd/CrudStdActionService.ts +0 -27
  308. package/src/service/crudstd/CrudStdConstant.ts +0 -62
  309. package/src/service/crudstd/CrudStdRelationService.ts +0 -78
  310. package/src/service/crudstd/CrudStdService.ts +0 -188
  311. package/src/service/curd/CurdMixByAccountService.ts +0 -83
  312. package/src/service/curd/CurdMixByDictService.ts +0 -113
  313. package/src/service/curd/CurdMixByLinkToCustomService.ts +0 -167
  314. package/src/service/curd/CurdMixBySysConfigService.ts +0 -78
  315. package/src/service/curd/CurdMixByWorkbenchService.ts +0 -68
  316. package/src/service/curd/CurdMixService.ts +0 -65
  317. package/src/service/curd/CurdMixUtils.ts +0 -248
  318. package/src/service/curd/CurdProService.ts +0 -379
  319. package/src/service/proxyapi/ProxyApiLoadService.ts +0 -165
  320. package/src/service/proxyapi/ProxyApiService.ts +0 -262
  321. package/src/service/proxyapi/ProxyApiUtils.ts +0 -32
  322. package/src/service/proxyapi/RouteHandler.ts +0 -8
  323. package/src/service/proxyapi/RouteTrie.ts +0 -74
  324. package/src/service/proxyapi/WeightedRandom.ts +0 -37
  325. package/src/service/proxyapi/WeightedRoundRobin.ts +0 -44
  326. package/src/views/404_app.html +0 -31
  327. package/src/views/404_workbench.html +0 -34
  328. package/src/views/static/favicon.ico +0 -0
@@ -1,72 +0,0 @@
1
- class MultiKeyMap {
2
- private readonly _multiMap: Record<string, Record<string, any>> = {};
3
- private _rowsLength = 0;
4
-
5
- constructor(rows?: any[], keyName1?: string, keyName2?: string) {
6
- if (rows && keyName1 && keyName2) {
7
- this.addRows(rows, keyName1, keyName2);
8
- }
9
- }
10
-
11
- public isEmpty() {
12
- return this._rowsLength === 0;
13
- }
14
-
15
- public getValue(key1: string, key2: string) {
16
- const map1 = this._multiMap[key1];
17
- if (!map1) {
18
- return null;
19
- }
20
- return map1[key2];
21
- }
22
-
23
- public getValue1(key1: string): Record<string, any> {
24
- return this._multiMap[key1];
25
- }
26
-
27
- public addRowsValue1(rows: any[], value1: string, keyName2: string) {
28
- if (!Array.isArray(rows) || rows.length === 0) {
29
- return;
30
- }
31
-
32
- this._rowsLength = this._rowsLength + rows.length;
33
- const dictMap: Record<string, Record<string, any>> = this._multiMap;
34
-
35
- for (let i = 0; i < rows.length; i++) {
36
- const row = rows[i] || {};
37
- const value2 = row[keyName2];
38
- let dictItemMap = dictMap[value1];
39
- if (!dictItemMap) {
40
- dictItemMap = {};
41
- dictMap[value1] = dictItemMap;
42
- }
43
- dictItemMap[value2] = row;
44
-
45
- // 继续遍历children
46
- this.addRowsValue1(row.children, value1, keyName2);
47
- }
48
- }
49
-
50
- public addRows(rows: any[], keyName1: string, keyName2: string) {
51
- if (!Array.isArray(rows)) {
52
- return;
53
- }
54
-
55
- this._rowsLength = this._rowsLength + rows.length;
56
- const dictMap: Record<string, Record<string, any>> = this._multiMap;
57
-
58
- for (let i = 0; i < rows.length; i++) {
59
- const row = rows[i] || {};
60
- const value1 = row[keyName1];
61
- const value2 = row[keyName2];
62
- let dictItemMap = dictMap[value1];
63
- if (!dictItemMap) {
64
- dictItemMap = {};
65
- dictMap[value1] = dictItemMap;
66
- }
67
- dictItemMap[value2] = row;
68
- }
69
- }
70
- }
71
-
72
- export { MultiKeyMap };
@@ -1,29 +0,0 @@
1
- const SQL_FUNC_MAP = {
2
- NOW: 'NOW()',
3
- };
4
-
5
- /**
6
- * data: {
7
- * xxTime: {$sqlFunc:"NOW"}
8
- * }
9
- * @param arg
10
- */
11
- function getSqlFuncName(arg: any): string {
12
- if (arg && typeof arg === 'object' && typeof arg['$sqlFunc'] === 'string') {
13
- const sqlFunKey = arg['$sqlFunc'];
14
- return SQL_FUNC_MAP[sqlFunKey];
15
- }
16
- return null;
17
- }
18
-
19
- const sqlFuncUtils = {
20
- isSqlFuncArg: (arg: any): boolean => {
21
- const sqlFuncName = getSqlFuncName(arg);
22
- return !!sqlFuncName;
23
- },
24
- toFuncSQL: (arg: any): string => {
25
- return getSqlFuncName(arg);
26
- },
27
- };
28
-
29
- export { sqlFuncUtils };
@@ -1,188 +0,0 @@
1
- import { CommonException, Exceptions } from '../exceptions';
2
-
3
- const TypeUtils = {
4
- assertJsonArray(value: any, errorCode: string) {
5
- if (!Array.isArray(value)) {
6
- throw new CommonException(errorCode, JSON.stringify(value));
7
- }
8
- },
9
-
10
- assertBasicType(value: any, errorCode: string) {
11
- if (!TypeUtils.isBasicType(value)) {
12
- throw new CommonException(errorCode, JSON.stringify(value));
13
- }
14
- },
15
-
16
- isBasicType(value: any): boolean {
17
- if (value == null) {
18
- return true;
19
- }
20
-
21
- const valueType = typeof value;
22
- return valueType === 'boolean' || valueType === 'string' || valueType === 'number';
23
- },
24
- isBoolean(itemValue: any): boolean {
25
- return typeof itemValue === 'boolean';
26
- },
27
- isString(itemValue: any) {
28
- return typeof itemValue === 'string';
29
- },
30
- isInteger(x: any) {
31
- return typeof x === 'number' && Math.floor(x) === x;
32
- },
33
- isNumber(x: any) {
34
- return typeof x === 'number';
35
- },
36
-
37
- isNumeric(itemValue: any) {
38
- if (typeof itemValue === 'number') {
39
- return true;
40
- }
41
- if (typeof itemValue === 'string' && itemValue.length > 0) {
42
- return !isNaN(Number(itemValue));
43
- }
44
- return false;
45
- },
46
-
47
- /**
48
- * 是否是合法的name类型:以字母开头,只能包含(字母、数字、下划线)的非空字符串
49
- * @param itemValue
50
- */
51
- isValidName(itemValue: any): boolean {
52
- if (typeof itemValue === 'string' && itemValue.length > 0) {
53
- const reg = /^\w+$/; // --已经验证OK
54
- return reg.test(itemValue);
55
- }
56
- return false;
57
- },
58
-
59
- /**
60
- * 是否是合法中文手机号
61
- * @param itemValue
62
- */
63
- isChinesePhone(itemValue: string) {
64
- if (typeof itemValue === 'string' && itemValue.length > 0) {
65
- return TypeUtils.isNumeric(itemValue) && itemValue.length === 11;
66
- }
67
- return false;
68
- },
69
-
70
- /**
71
- * 是否是合法的email地址
72
- * @param itemValue
73
- */
74
- isEmailStrValid(itemValue: string) {
75
- if (typeof itemValue === 'string' && itemValue.length > 0) {
76
- const regExpStr = '^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$';
77
- const reg = new RegExp(regExpStr);
78
- return reg.test(itemValue);
79
- }
80
- return false;
81
- },
82
-
83
- /**
84
- * 从字符串中提取数字部分。
85
- * @param s
86
- */
87
- pickNumber(s: string): number | null {
88
- if (typeof s === 'undefined' || s === null) {
89
- return null;
90
- }
91
-
92
- s = s.trim();
93
-
94
- const length = s.length;
95
-
96
- if (length === 0) {
97
- return null;
98
- }
99
-
100
- const sb = [];
101
-
102
- for (let i = 0; i < length; i++) {
103
- const c = s.charAt(i);
104
- // 0到9或小数点,或负号
105
- if (TypeUtils.isNumberChar(c) || c === '.' || c === '-') {
106
- sb.push(c);
107
- }
108
- }
109
-
110
- const s2 = sb.join('');
111
- if (s2.length === 0) {
112
- return null;
113
- }
114
-
115
- const num = Number(s2);
116
- if (isNaN(num)) {
117
- return null;
118
- }
119
- return num;
120
- },
121
-
122
- isNumberChar(c: string): boolean {
123
- const charCode = c.charCodeAt(0);
124
- return charCode >= 48 && charCode <= 57; // 0 ~ 9
125
- },
126
-
127
- isNil(obj: any): boolean {
128
- return typeof obj === 'undefined' || obj === null;
129
- },
130
-
131
- /**
132
- * 判断数字是否满足范围表达式
133
- * @param scaleExpress :
134
- * 范围表达式:(0,1) 开区间,[0,1] 闭区间,(0,1] 前开后闭,[0,1) 前闭后开; 若没有大小括号,则默认闭区间
135
- * @param numberValue: 数字
136
- */
137
- isNumberScaleValid(scaleExpress: string, numberValue: number): boolean {
138
- if (typeof numberValue !== 'number') {
139
- return false;
140
- }
141
-
142
- const specials = ['(', ')', '[', ']', ' '];
143
- const scale = scaleExpress.trim();
144
-
145
- const scaleNumbersArray = (() => {
146
- const scaleNumbers = [];
147
- for (let i = 0; i < scale.length; i++) {
148
- const char = scale[i];
149
- if (specials.indexOf(char) < 0) {
150
- scaleNumbers.push(char);
151
- }
152
- }
153
- return scaleNumbers
154
- .join('')
155
- .split(',')
156
- .map(s => {
157
- return Number(s);
158
- });
159
- })();
160
-
161
- if (scaleNumbersArray.length !== 2) {
162
- throw new CommonException(Exceptions.CFG_VALIDATE_SCALE_ERROR, '范围匹配表达式不正确:' + scaleExpress);
163
- }
164
-
165
- const isStartOpen = scale.startsWith('(');
166
- const isEndOpen = scale.endsWith(')');
167
- const startNumber = scaleNumbersArray[0];
168
- const endNumber = scaleNumbersArray[1];
169
-
170
- let isStartOk = false;
171
- let isEndOk = false;
172
- if (isStartOpen) {
173
- isStartOk = startNumber < numberValue;
174
- } else {
175
- isStartOk = startNumber <= numberValue;
176
- }
177
-
178
- if (isEndOpen) {
179
- isEndOk = endNumber > numberValue;
180
- } else {
181
- isEndOk = endNumber >= numberValue;
182
- }
183
-
184
- return isStartOk && isEndOk;
185
- },
186
- };
187
-
188
- export { TypeUtils };
@@ -1,167 +0,0 @@
1
- import * as moment from 'moment';
2
- import { KeysOfValidators } from '../models/keys';
3
- import { CommonException, Exceptions } from '../exceptions';
4
- import { MixinUtils } from './MixinUtils';
5
- import { TypeUtils } from './TypeUtils';
6
- const { isEmpty } = MixinUtils;
7
-
8
- const validatorUtils = {
9
- /**
10
- * 字符串长度
11
- * @param itemCfg
12
- * @param itemValue
13
- */
14
- isLengthValid(itemCfg: string, itemValue: any): boolean {
15
- if (typeof itemValue === 'string') {
16
- const cfgPart = itemCfg.substring(KeysOfValidators.LENGTH.length);
17
- return TypeUtils.isNumberScaleValid(cfgPart, itemValue.length);
18
- }
19
- return false;
20
- },
21
-
22
- /**
23
- * 数字范围
24
- * @param itemCfg
25
- * @param itemValue
26
- */
27
- isNumberScaleValid(itemCfg: string, itemValue: any) {
28
- if (typeof itemValue === 'number') {
29
- const cfgPart = itemCfg.substring(KeysOfValidators.SCALE.length).trim();
30
- return TypeUtils.isNumberScaleValid(cfgPart, itemValue);
31
- } else if (TypeUtils.isNumeric(itemValue)) {
32
- const cfgPart = itemCfg.substring(KeysOfValidators.SCALE.length).trim();
33
- return TypeUtils.isNumberScaleValid(cfgPart, Number(itemValue));
34
- }
35
- return false;
36
- },
37
-
38
- /**
39
- * 正则表达式
40
- * @param itemCfg
41
- * @param itemValue
42
- */
43
- isRegExpValid(itemCfg: string, itemValue: any): boolean {
44
- if (typeof itemValue === 'string') {
45
- const cfgPart = itemCfg.substring(KeysOfValidators.REG_EXP.length);
46
- const regexp = new RegExp(cfgPart);
47
- return regexp.test(itemValue);
48
- }
49
- return false;
50
- },
51
-
52
- isMomentValid(itemCfg: string, itemValue: any): boolean {
53
- const cfgPart = itemCfg.substring(KeysOfValidators.ENUM.length).trim();
54
- return moment(itemValue, cfgPart, true).isValid();
55
- },
56
-
57
- isEnumValid(itemCfg: string, itemValue: any): boolean {
58
- const cfgPart = itemCfg.substring(KeysOfValidators.ENUM.length).trim();
59
- const cfgArr = cfgPart.split(','); // 1,2,3,4
60
- const enumStrArr = cfgArr.map(s => s.trim()).filter(s => !!s);
61
-
62
- // 枚举值的配置不能为空
63
- if (isEmpty(enumStrArr)) {
64
- throw new CommonException(Exceptions.CFG_VALIDATE_ENUM_ERROR, itemCfg);
65
- }
66
-
67
- // 值:不能为空
68
- if (itemValue == null) {
69
- return false;
70
- }
71
-
72
- // 值:不能为空
73
- const itemValueString = itemValue.toString();
74
- if (isEmpty(itemValueString)) {
75
- return false;
76
- }
77
-
78
- for (let i = 0; i < enumStrArr.length; i++) {
79
- const enumStr = enumStrArr[i];
80
- if (enumStr === itemValueString) {
81
- return true;
82
- }
83
- }
84
-
85
- return false;
86
- },
87
- };
88
-
89
- function validateByCfgStringInner(validateCfg: KeysOfValidators | string, itemValue: any): boolean {
90
- if (KeysOfValidators.ARRAY === validateCfg) {
91
- return itemValue !== null && Array.isArray(itemValue);
92
- } else if (KeysOfValidators.ARRAY_STRING === validateCfg) {
93
- return (
94
- itemValue !== null &&
95
- Array.isArray(itemValue) &&
96
- MixinUtils.isElementAllMatch(itemValue, e => {
97
- return typeof e === 'string';
98
- })
99
- );
100
- } else if (KeysOfValidators.ARRAY_NUMBER === validateCfg) {
101
- return (
102
- itemValue !== null &&
103
- Array.isArray(itemValue) &&
104
- MixinUtils.isElementAllMatch(itemValue, e => {
105
- return typeof e === 'number';
106
- })
107
- );
108
- } else if (KeysOfValidators.OBJECT === validateCfg) {
109
- return itemValue !== null && typeof itemValue === 'object';
110
- } else if (KeysOfValidators.BOOLEAN === validateCfg) {
111
- return TypeUtils.isBoolean(itemValue);
112
- } else if (KeysOfValidators.STRING === validateCfg) {
113
- return TypeUtils.isString(itemValue);
114
- } else if (KeysOfValidators.INTEGER === validateCfg) {
115
- return TypeUtils.isInteger(itemValue);
116
- } else if (KeysOfValidators.NUMBER === validateCfg) {
117
- return TypeUtils.isNumber(itemValue);
118
- } else if (KeysOfValidators.NUMERIC === validateCfg) {
119
- return TypeUtils.isNumeric(itemValue);
120
- } else if (KeysOfValidators.NAME === validateCfg) {
121
- return TypeUtils.isValidName(itemValue);
122
- } else if (KeysOfValidators.PHONE_CN === validateCfg) {
123
- return TypeUtils.isChinesePhone(itemValue.toString());
124
- } else if (KeysOfValidators.EMAIL === validateCfg) {
125
- return TypeUtils.isEmailStrValid(itemValue);
126
- } else if (validateCfg.startsWith(KeysOfValidators.LENGTH)) {
127
- return validatorUtils.isLengthValid(validateCfg, itemValue);
128
- } else if (validateCfg.startsWith(KeysOfValidators.REG_EXP)) {
129
- return validatorUtils.isRegExpValid(validateCfg, itemValue);
130
- } else if (validateCfg.startsWith(KeysOfValidators.SCALE)) {
131
- return validatorUtils.isNumberScaleValid(validateCfg, itemValue);
132
- } else if (validateCfg.startsWith(KeysOfValidators.ENUM)) {
133
- return validatorUtils.isEnumValid(validateCfg, itemValue);
134
- } else if (validateCfg.startsWith(KeysOfValidators.MOMENT)) {
135
- return validatorUtils.isMomentValid(validateCfg, itemValue);
136
- }
137
- throw new CommonException(Exceptions.CFG_VALIDATE_NOT_SUPPORT, validateCfg);
138
- }
139
-
140
- function validateByCfgString(validateCfg: KeysOfValidators | string, itemValue: any, errPath: string) {
141
- if (isEmpty(validateCfg)) {
142
- // 没有配置,不需要校验
143
- return;
144
- }
145
-
146
-
147
- // 必填
148
- if ("required" === validateCfg) {
149
- if (isEmpty(itemValue)) {
150
- throw new CommonException(Exceptions.VALIDATE_ERR, "'参数校验错误,字段 " + errPath + ' 不满足校验配置:' + validateCfg);
151
- }
152
- return;
153
- }
154
-
155
- // 没有填写的话,不需要校验。
156
- if (isEmpty(itemValue)) {
157
- return;
158
- }
159
-
160
-
161
- // 校验失败
162
- if (!validateByCfgStringInner(validateCfg, itemValue)) {
163
- throw new CommonException(Exceptions.VALIDATE_ERR, "'参数校验错误,字段 " + errPath + ' 不满足校验配置:' + validateCfg);
164
- }
165
- }
166
-
167
- export { validateByCfgString };
@@ -1,20 +0,0 @@
1
- import { createPool } from 'mysql2/promise';
2
- import { IConnectionPool } from '../../interfaces';
3
- import {SqlDbType} from "../../models/keys";
4
-
5
- const POOL_CACHE_MAP: Record<string, IConnectionPool> = {};
6
-
7
- function getConnectionPool(poolName: string, poolOptions: any): IConnectionPool {
8
- let pool = POOL_CACHE_MAP[poolName];
9
- if (!pool) {
10
- pool = {
11
- dbType: SqlDbType.mysql,
12
- poolName: poolName,
13
- poolInstance: createPool(poolOptions),
14
- };
15
- POOL_CACHE_MAP[poolName] = pool;
16
- }
17
- return pool;
18
- }
19
-
20
- export { getConnectionPool };
@@ -1,22 +0,0 @@
1
- import {Pool} from 'pg';
2
- import {IConnectionPool} from '../../interfaces';
3
- import {SqlDbType} from "../../models/keys";
4
-
5
- const POOL_CACHE_MAP: Record<string, IConnectionPool> = {};
6
-
7
- function getConnectionPool(poolName: string, poolOptions: any): IConnectionPool {
8
- let pool = POOL_CACHE_MAP[poolName];
9
- if (!pool) {
10
- const poolObj = new Pool(poolOptions);
11
-
12
- pool = {
13
- dbType: SqlDbType.postgres,
14
- poolName: poolName,
15
- poolInstance: poolObj,
16
- };
17
- POOL_CACHE_MAP[poolName] = pool;
18
- }
19
- return pool;
20
- }
21
-
22
- export { getConnectionPool };
@@ -1,22 +0,0 @@
1
- import {ConnectionPool} from 'mssql';
2
- import {IConnectionPool} from '../../interfaces';
3
- import {SqlDbType} from "../../models/keys";
4
-
5
- const POOL_CACHE_MAP: Record<string, IConnectionPool> = {};
6
-
7
- function getConnectionPool(poolName: string, poolOptions: any): IConnectionPool {
8
- let pool = POOL_CACHE_MAP[poolName];
9
- if (!pool) {
10
- const poolObj = new ConnectionPool(poolOptions);
11
-
12
- pool = {
13
- dbType: SqlDbType.sqlserver,
14
- poolName: poolName,
15
- poolInstance: poolObj,
16
- };
17
- POOL_CACHE_MAP[poolName] = pool;
18
- }
19
- return pool;
20
- }
21
-
22
- export { getConnectionPool };
@@ -1,26 +0,0 @@
1
- import {SqlCfgModel} from "../../models/SqlCfgModel";
2
- import {SqlDbType} from "../../models/keys";
3
-
4
-
5
- function toSqlColumnName(columnName: string, sqlCfgModel: SqlCfgModel): string {
6
- if (sqlCfgModel.sqlDdType === SqlDbType.postgres) {
7
- return '"' + columnName + '"';
8
- }
9
- if (sqlCfgModel.sqlDdType === SqlDbType.sqlserver) {
10
- return '[' + columnName + ']';
11
- }
12
- return '`' + columnName + '`';
13
- }
14
-
15
- function toSqlColumnNamesJoin(columns: string[], sqlCfgModel: SqlCfgModel): string {
16
- const columns2 = columns.map(col => {
17
- return toSqlColumnName(col.trim(), sqlCfgModel);
18
- });
19
- return columns2.join(',');
20
- }
21
-
22
-
23
- export {
24
- toSqlColumnName,
25
- toSqlColumnNamesJoin
26
- }
@@ -1,11 +0,0 @@
1
- function replaceQuestionMarksForMssql(sql:string): string {
2
- let count = 0;
3
- return sql.replace(/\?/g, () => {
4
- count = count+ 1;
5
- return `@fatcms_ms${count}`
6
- });
7
- }
8
-
9
- export {
10
- replaceQuestionMarksForMssql,
11
- }
@@ -1,11 +0,0 @@
1
- function replaceQuestionMarks(sql:string): string {
2
- let count = 0;
3
- return sql.replace(/\?/g, () => {
4
- count = count+ 1;
5
- return `$${count}`
6
- });
7
- }
8
-
9
- export {
10
- replaceQuestionMarks,
11
- }