midway-fatcms 0.0.1-beta.22 → 0.0.1-beta.25

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 (419) hide show
  1. package/.eslintrc.json +14 -12
  2. package/.prettierrc.js +4 -4
  3. package/README.md +8 -8
  4. package/dist/config/config.default.d.ts +3 -3
  5. package/dist/config/config.default.js +187 -185
  6. package/dist/config/seed/aeskey.txt +1 -1
  7. package/dist/config/utils.d.ts +1 -1
  8. package/dist/config/utils.js +23 -23
  9. package/dist/configuration.d.ts +7 -7
  10. package/dist/configuration.js +113 -114
  11. package/dist/controller/base/BaseApiController.d.ts +37 -31
  12. package/dist/controller/base/BaseApiController.js +164 -146
  13. package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -13
  14. package/dist/controller/gateway/AnyApiGatewayController.js +55 -55
  15. package/dist/controller/gateway/AsyncTaskController.d.ts +20 -14
  16. package/dist/controller/gateway/AsyncTaskController.js +181 -108
  17. package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -21
  18. package/dist/controller/gateway/CrudMtdGatewayController.js +119 -119
  19. package/dist/controller/gateway/CrudStdGatewayController.d.ts +38 -38
  20. package/dist/controller/gateway/CrudStdGatewayController.js +137 -137
  21. package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
  22. package/dist/controller/gateway/DocGatewayController.js +179 -179
  23. package/dist/controller/gateway/FileController.d.ts +25 -25
  24. package/dist/controller/gateway/FileController.js +129 -129
  25. package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
  26. package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
  27. package/dist/controller/gateway/PublicApiController.d.ts +27 -27
  28. package/dist/controller/gateway/PublicApiController.js +165 -165
  29. package/dist/controller/gateway/StaticController.d.ts +24 -23
  30. package/dist/controller/gateway/StaticController.js +288 -284
  31. package/dist/controller/helpers.controller.d.ts +39 -39
  32. package/dist/controller/helpers.controller.js +188 -188
  33. package/dist/controller/home.controller.d.ts +9 -9
  34. package/dist/controller/home.controller.js +71 -71
  35. package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -10
  36. package/dist/controller/manage/AnyApiMangeApi.js +98 -98
  37. package/dist/controller/manage/AppLogMangeApi.d.ts +10 -10
  38. package/dist/controller/manage/AppLogMangeApi.js +88 -88
  39. package/dist/controller/manage/AppMangeApi.d.ts +10 -10
  40. package/dist/controller/manage/AppMangeApi.js +88 -88
  41. package/dist/controller/manage/AppPageMangeApi.d.ts +10 -10
  42. package/dist/controller/manage/AppPageMangeApi.js +87 -87
  43. package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -10
  44. package/dist/controller/manage/AppSchemaHistoryApi.js +83 -83
  45. package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -10
  46. package/dist/controller/manage/CrudMethodsMangeApi.js +84 -84
  47. package/dist/controller/manage/CrudStandardDesignApi.d.ts +38 -38
  48. package/dist/controller/manage/CrudStandardDesignApi.js +334 -334
  49. package/dist/controller/manage/DataDictManageApi.d.ts +15 -15
  50. package/dist/controller/manage/DataDictManageApi.js +133 -133
  51. package/dist/controller/manage/DeployManageApi.d.ts +19 -19
  52. package/dist/controller/manage/DeployManageApi.js +180 -180
  53. package/dist/controller/manage/DocLibManageApi.d.ts +10 -10
  54. package/dist/controller/manage/DocLibManageApi.js +104 -104
  55. package/dist/controller/manage/DocManageApi.d.ts +11 -11
  56. package/dist/controller/manage/DocManageApi.js +130 -130
  57. package/dist/controller/manage/FileManageApi.d.ts +13 -13
  58. package/dist/controller/manage/FileManageApi.js +77 -77
  59. package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
  60. package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
  61. package/dist/controller/manage/MenuManageApi.d.ts +10 -10
  62. package/dist/controller/manage/MenuManageApi.js +93 -93
  63. package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -10
  64. package/dist/controller/manage/ProxyApiMangeApi.js +87 -87
  65. package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -24
  66. package/dist/controller/manage/SuperAdminManageApi.js +153 -153
  67. package/dist/controller/manage/SysConfigMangeApi.d.ts +11 -11
  68. package/dist/controller/manage/SysConfigMangeApi.js +126 -126
  69. package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
  70. package/dist/controller/manage/SystemInfoManageApi.js +72 -72
  71. package/dist/controller/manage/UserAccountManageApi.d.ts +14 -14
  72. package/dist/controller/manage/UserAccountManageApi.js +129 -129
  73. package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
  74. package/dist/controller/manage/WorkbenchMangeApi.js +103 -103
  75. package/dist/controller/myinfo/AuthController.d.ts +33 -33
  76. package/dist/controller/myinfo/AuthController.js +136 -136
  77. package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
  78. package/dist/controller/myinfo/MyInfoController.js +51 -51
  79. package/dist/controller/render/AppRenderController.d.ts +11 -11
  80. package/dist/controller/render/AppRenderController.js +91 -91
  81. package/dist/controller/test.controller.d.ts +8 -8
  82. package/dist/controller/test.controller.js +51 -51
  83. package/dist/filter/default.filter.d.ts +7 -7
  84. package/dist/filter/default.filter.js +23 -23
  85. package/dist/filter/notfound.filter.d.ts +5 -5
  86. package/dist/filter/notfound.filter.js +20 -20
  87. package/dist/index.d.ts +102 -101
  88. package/dist/index.js +120 -119
  89. package/dist/interface.d.ts +27 -27
  90. package/dist/interface.js +3 -3
  91. package/dist/libs/crud-pro/CrudPro.d.ts +37 -37
  92. package/dist/libs/crud-pro/CrudPro.js +136 -136
  93. package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -4
  94. package/dist/libs/crud-pro/defaultConfigs.js +15 -15
  95. package/dist/libs/crud-pro/exceptions.d.ts +104 -104
  96. package/dist/libs/crud-pro/exceptions.js +117 -117
  97. package/dist/libs/crud-pro/interfaces.d.ts +163 -163
  98. package/dist/libs/crud-pro/interfaces.js +12 -12
  99. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +49 -43
  100. package/dist/libs/crud-pro/models/ExecuteContext.js +79 -79
  101. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -38
  102. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -72
  103. package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -18
  104. package/dist/libs/crud-pro/models/FuncContext.js +6 -6
  105. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -65
  106. package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -81
  107. package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -25
  108. package/dist/libs/crud-pro/models/RequestModel.js +113 -113
  109. package/dist/libs/crud-pro/models/ResModel.d.ts +16 -16
  110. package/dist/libs/crud-pro/models/ResModel.js +2 -2
  111. package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -20
  112. package/dist/libs/crud-pro/models/ServiceHub.js +2 -2
  113. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +22 -22
  114. package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -40
  115. package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -6
  116. package/dist/libs/crud-pro/models/SqlSegArg.js +12 -12
  117. package/dist/libs/crud-pro/models/Transaction.d.ts +29 -29
  118. package/dist/libs/crud-pro/models/Transaction.js +67 -67
  119. package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +28 -28
  120. package/dist/libs/crud-pro/models/TransactionMySQL.js +76 -76
  121. package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +28 -28
  122. package/dist/libs/crud-pro/models/TransactionPostgres.js +85 -85
  123. package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +34 -34
  124. package/dist/libs/crud-pro/models/TransactionSqlServer.js +92 -92
  125. package/dist/libs/crud-pro/models/keys.d.ts +106 -106
  126. package/dist/libs/crud-pro/models/keys.js +149 -149
  127. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -11
  128. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -73
  129. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -9
  130. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +112 -112
  131. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -17
  132. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +225 -223
  133. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -9
  134. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -51
  135. package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -13
  136. package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -148
  137. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -24
  138. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +340 -340
  139. package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -25
  140. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -165
  141. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -32
  142. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +334 -334
  143. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
  144. package/dist/libs/crud-pro/services/CrudProServiceBase.js +79 -79
  145. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +9 -9
  146. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +78 -78
  147. package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -32
  148. package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -64
  149. package/dist/libs/crud-pro/sql.txt +120 -120
  150. package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -9
  151. package/dist/libs/crud-pro/utils/CompareUtils.js +25 -25
  152. package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -9
  153. package/dist/libs/crud-pro/utils/DatabaseName.js +50 -50
  154. package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -7
  155. package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -21
  156. package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -19
  157. package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -47
  158. package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -5
  159. package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -33
  160. package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -39
  161. package/dist/libs/crud-pro/utils/MixinUtils.js +255 -255
  162. package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -11
  163. package/dist/libs/crud-pro/utils/ModelUtils.js +49 -49
  164. package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -11
  165. package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -63
  166. package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -5
  167. package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -29
  168. package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -40
  169. package/dist/libs/crud-pro/utils/TypeUtils.js +166 -166
  170. package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -3
  171. package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -165
  172. package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -3
  173. package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -19
  174. package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -3
  175. package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -20
  176. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -3
  177. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -20
  178. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -4
  179. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +21 -21
  180. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -3
  181. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -22
  182. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
  183. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +11 -11
  184. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
  185. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +11 -11
  186. package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -2
  187. package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -128
  188. package/dist/libs/global-config/global-config.d.ts +45 -45
  189. package/dist/libs/global-config/global-config.js +33 -33
  190. package/dist/libs/utils/common-dto.d.ts +18 -18
  191. package/dist/libs/utils/common-dto.js +40 -40
  192. package/dist/libs/utils/crypto-utils.d.ts +3 -3
  193. package/dist/libs/utils/crypto-utils.js +46 -46
  194. package/dist/libs/utils/errorToString.d.ts +2 -2
  195. package/dist/libs/utils/errorToString.js +57 -57
  196. package/dist/libs/utils/fatcms-request.d.ts +30 -30
  197. package/dist/libs/utils/fatcms-request.js +104 -104
  198. package/dist/libs/utils/functions.d.ts +5 -4
  199. package/dist/libs/utils/functions.js +68 -63
  200. package/dist/libs/utils/ordernum-utils.d.ts +2 -2
  201. package/dist/libs/utils/ordernum-utils.js +13 -13
  202. package/dist/libs/utils/parseConfig.d.ts +7 -7
  203. package/dist/libs/utils/parseConfig.js +44 -44
  204. package/dist/libs/utils/parseCreateSql.d.ts +5 -5
  205. package/dist/libs/utils/parseCreateSql.js +86 -86
  206. package/dist/libs/utils/render-utils.d.ts +28 -28
  207. package/dist/libs/utils/render-utils.js +135 -135
  208. package/dist/middleware/forbidden.middleware.d.ts +10 -10
  209. package/dist/middleware/forbidden.middleware.js +54 -54
  210. package/dist/middleware/global.middleware.d.ts +10 -10
  211. package/dist/middleware/global.middleware.js +253 -253
  212. package/dist/middleware/permission.middleware.d.ts +18 -18
  213. package/dist/middleware/permission.middleware.js +74 -74
  214. package/dist/middleware/tx.middleware.d.ts +9 -9
  215. package/dist/middleware/tx.middleware.js +40 -40
  216. package/dist/models/AsyncTaskModel.d.ts +72 -69
  217. package/dist/models/AsyncTaskModel.js +29 -26
  218. package/dist/models/RedisKeys.d.ts +12 -8
  219. package/dist/models/RedisKeys.js +15 -11
  220. package/dist/models/SystemEntities.d.ts +98 -98
  221. package/dist/models/SystemEntities.js +2 -2
  222. package/dist/models/SystemPerm.d.ts +95 -95
  223. package/dist/models/SystemPerm.js +100 -100
  224. package/dist/models/SystemTables.d.ts +25 -25
  225. package/dist/models/SystemTables.js +28 -28
  226. package/dist/models/bizmodels.d.ts +96 -69
  227. package/dist/models/bizmodels.js +39 -34
  228. package/dist/models/contextLogger.d.ts +25 -25
  229. package/dist/models/contextLogger.js +112 -112
  230. package/dist/models/devops.d.ts +12 -12
  231. package/dist/models/devops.js +19 -19
  232. package/dist/models/userSession.d.ts +61 -61
  233. package/dist/models/userSession.js +165 -165
  234. package/dist/schedule/anonymousContext.d.ts +14 -13
  235. package/dist/schedule/anonymousContext.js +59 -59
  236. package/dist/schedule/index.d.ts +4 -4
  237. package/dist/schedule/index.js +10 -10
  238. package/dist/schedule/runSchedule.d.ts +12 -15
  239. package/dist/schedule/runSchedule.js +68 -68
  240. package/dist/schedule/scheduleNames.d.ts +13 -13
  241. package/dist/schedule/scheduleNames.js +17 -17
  242. package/dist/service/AuthService.d.ts +70 -70
  243. package/dist/service/AuthService.js +251 -251
  244. package/dist/service/EnumInfoService.d.ts +30 -30
  245. package/dist/service/EnumInfoService.js +127 -126
  246. package/dist/service/FileCenterService.d.ts +43 -43
  247. package/dist/service/FileCenterService.js +351 -351
  248. package/dist/service/SysConfigService.d.ts +7 -7
  249. package/dist/service/SysConfigService.js +47 -47
  250. package/dist/service/UserAccountService.d.ts +23 -23
  251. package/dist/service/UserAccountService.js +107 -107
  252. package/dist/service/UserSessionService.d.ts +16 -16
  253. package/dist/service/UserSessionService.js +86 -86
  254. package/dist/service/VisitStatService.d.ts +14 -14
  255. package/dist/service/VisitStatService.js +158 -158
  256. package/dist/service/WorkbenchService.d.ts +20 -20
  257. package/dist/service/WorkbenchService.js +159 -155
  258. package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -15
  259. package/dist/service/anyapi/AnyApiSandboxService.js +110 -110
  260. package/dist/service/anyapi/AnyApiService.d.ts +27 -27
  261. package/dist/service/anyapi/AnyApiService.js +181 -181
  262. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +37 -37
  263. package/dist/service/asyncTask/AsyncTaskRunnerService.js +242 -232
  264. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -7
  265. package/dist/service/asyncTask/AsyncTaskService.js +34 -34
  266. package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -0
  267. package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -0
  268. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -0
  269. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -0
  270. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -0
  271. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +130 -0
  272. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -0
  273. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +121 -0
  274. package/dist/service/base/ApiBaseService.d.ts +15 -15
  275. package/dist/service/base/ApiBaseService.js +50 -50
  276. package/dist/service/base/ApiRateLimiter.d.ts +10 -10
  277. package/dist/service/base/ApiRateLimiter.js +51 -51
  278. package/dist/service/base/BaseService.d.ts +41 -29
  279. package/dist/service/base/BaseService.js +101 -79
  280. package/dist/service/base/RedisCacheService.d.ts +13 -13
  281. package/dist/service/base/RedisCacheService.js +50 -50
  282. package/dist/service/crudstd/CrudStdActionService.d.ts +17 -17
  283. package/dist/service/crudstd/CrudStdActionService.js +32 -32
  284. package/dist/service/crudstd/CrudStdConstant.d.ts +58 -58
  285. package/dist/service/crudstd/CrudStdConstant.js +64 -64
  286. package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -10
  287. package/dist/service/crudstd/CrudStdRelationService.js +85 -85
  288. package/dist/service/crudstd/CrudStdService.d.ts +63 -51
  289. package/dist/service/crudstd/CrudStdService.js +259 -227
  290. package/dist/service/curd/CrudProQuick.d.ts +24 -24
  291. package/dist/service/curd/CrudProQuick.js +109 -105
  292. package/dist/service/curd/CurdMixByAccountService.d.ts +9 -9
  293. package/dist/service/curd/CurdMixByAccountService.js +93 -93
  294. package/dist/service/curd/CurdMixByDictService.d.ts +13 -13
  295. package/dist/service/curd/CurdMixByDictService.js +114 -113
  296. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +31 -31
  297. package/dist/service/curd/CurdMixByLinkToCustomService.js +203 -202
  298. package/dist/service/curd/CurdMixBySysConfigService.d.ts +9 -9
  299. package/dist/service/curd/CurdMixBySysConfigService.js +80 -80
  300. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +10 -10
  301. package/dist/service/curd/CurdMixByWorkbenchService.js +78 -78
  302. package/dist/service/curd/CurdMixService.d.ts +27 -17
  303. package/dist/service/curd/CurdMixService.js +100 -76
  304. package/dist/service/curd/CurdMixUtils.d.ts +51 -35
  305. package/dist/service/curd/CurdMixUtils.js +275 -238
  306. package/dist/service/curd/CurdProService.d.ts +32 -31
  307. package/dist/service/curd/CurdProService.js +210 -207
  308. package/dist/service/curd/fixCfgModel.d.ts +3 -3
  309. package/dist/service/curd/fixCfgModel.js +107 -107
  310. package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -21
  311. package/dist/service/proxyapi/ProxyApiLoadService.js +167 -167
  312. package/dist/service/proxyapi/ProxyApiService.d.ts +60 -60
  313. package/dist/service/proxyapi/ProxyApiService.js +260 -260
  314. package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
  315. package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
  316. package/dist/service/proxyapi/RouteHandler.d.ts +5 -5
  317. package/dist/service/proxyapi/RouteHandler.js +9 -9
  318. package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
  319. package/dist/service/proxyapi/RouteTrie.js +63 -63
  320. package/dist/service/proxyapi/WeightedRandom.d.ts +9 -9
  321. package/dist/service/proxyapi/WeightedRandom.js +31 -31
  322. package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -8
  323. package/dist/service/proxyapi/WeightedRoundRobin.js +32 -32
  324. package/dist/views/404_app.html +31 -31
  325. package/dist/views/404_workbench.html +34 -34
  326. package/index.d.ts +10 -10
  327. package/package.json +80 -78
  328. package/src/config/config.default.ts +207 -203
  329. package/src/config/seed/aeskey.txt +1 -1
  330. package/src/config/utils.ts +2 -3
  331. package/src/configuration.ts +5 -12
  332. package/src/controller/base/BaseApiController.ts +21 -3
  333. package/src/controller/gateway/AsyncTaskController.ts +76 -2
  334. package/src/controller/gateway/StaticController.ts +15 -12
  335. package/src/controller/manage/AnyApiMangeApi.ts +66 -66
  336. package/src/controller/manage/AppLogMangeApi.ts +53 -53
  337. package/src/controller/manage/AppMangeApi.ts +53 -53
  338. package/src/controller/manage/AppPageMangeApi.ts +52 -52
  339. package/src/controller/manage/AppSchemaHistoryApi.ts +49 -49
  340. package/src/controller/manage/CrudMethodsMangeApi.ts +49 -49
  341. package/src/controller/manage/DataDictManageApi.ts +78 -78
  342. package/src/controller/manage/DocLibManageApi.ts +69 -69
  343. package/src/controller/manage/DocManageApi.ts +99 -99
  344. package/src/controller/manage/FileManageApi.ts +45 -45
  345. package/src/controller/manage/LowCodeTplManageApi.ts +52 -52
  346. package/src/controller/manage/MenuManageApi.ts +58 -58
  347. package/src/controller/manage/ProxyApiMangeApi.ts +52 -52
  348. package/src/controller/manage/SysConfigMangeApi.ts +95 -95
  349. package/src/controller/manage/UserAccountManageApi.ts +94 -94
  350. package/src/controller/manage/WorkbenchMangeApi.ts +72 -72
  351. package/src/index.ts +106 -105
  352. package/src/interface.ts +31 -31
  353. package/src/libs/crud-pro/models/ExecuteContext.ts +13 -4
  354. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +2 -3
  355. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +8 -9
  356. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +86 -86
  357. package/src/libs/crud-pro/sql.txt +120 -120
  358. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +26 -26
  359. package/src/libs/crud-pro/utils/sqlConvert/convertMix.ts +25 -25
  360. package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +11 -11
  361. package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +11 -11
  362. package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +129 -129
  363. package/src/libs/utils/functions.ts +73 -67
  364. package/src/libs/utils/render-utils.ts +184 -184
  365. package/src/middleware/permission.middleware.ts +1 -2
  366. package/src/models/AsyncTaskModel.ts +9 -6
  367. package/src/models/RedisKeys.ts +11 -11
  368. package/src/models/SystemEntities.ts +115 -115
  369. package/src/models/SystemPerm.ts +105 -105
  370. package/src/models/SystemTables.ts +27 -27
  371. package/src/models/bizmodels.ts +120 -88
  372. package/src/models/contextLogger.ts +132 -132
  373. package/src/models/devops.ts +17 -17
  374. package/src/models/userSession.ts +216 -216
  375. package/src/schedule/anonymousContext.ts +17 -23
  376. package/src/schedule/index.ts +12 -12
  377. package/src/schedule/runSchedule.ts +82 -83
  378. package/src/schedule/scheduleNames.ts +21 -21
  379. package/src/service/AuthService.ts +7 -10
  380. package/src/service/EnumInfoService.ts +24 -28
  381. package/src/service/FileCenterService.ts +4 -9
  382. package/src/service/SysConfigService.ts +4 -5
  383. package/src/service/UserAccountService.ts +107 -110
  384. package/src/service/UserSessionService.ts +12 -16
  385. package/src/service/WorkbenchService.ts +15 -15
  386. package/src/service/anyapi/AnyApiService.ts +1 -2
  387. package/src/service/asyncTask/AsyncTaskRunnerService.ts +22 -11
  388. package/src/service/asyncTask/handler/ExcelInfoModel.ts +11 -0
  389. package/src/service/asyncTask/handler/ExportExcelAsyncTaskHandler.ts +245 -0
  390. package/src/service/asyncTask/handler/ExportExcelByInnerHttpHandler.ts +147 -0
  391. package/src/service/asyncTask/handler/ExportExcelByStdCrudHandler.ts +138 -0
  392. package/src/service/base/ApiBaseService.ts +3 -3
  393. package/src/service/base/ApiRateLimiter.ts +59 -59
  394. package/src/service/base/BaseService.ts +100 -74
  395. package/src/service/base/RedisCacheService.ts +38 -38
  396. package/src/service/crudstd/CrudStdActionService.ts +27 -27
  397. package/src/service/crudstd/CrudStdConstant.ts +62 -62
  398. package/src/service/crudstd/CrudStdRelationService.ts +78 -78
  399. package/src/service/crudstd/CrudStdService.ts +283 -243
  400. package/src/service/curd/CrudProQuick.ts +11 -17
  401. package/src/service/curd/CurdMixByAccountService.ts +8 -9
  402. package/src/service/curd/CurdMixByDictService.ts +19 -24
  403. package/src/service/curd/CurdMixByLinkToCustomService.ts +10 -9
  404. package/src/service/curd/CurdMixBySysConfigService.ts +8 -13
  405. package/src/service/curd/CurdMixByWorkbenchService.ts +7 -8
  406. package/src/service/curd/CurdMixService.ts +37 -5
  407. package/src/service/curd/CurdMixUtils.ts +65 -45
  408. package/src/service/curd/CurdProService.ts +42 -48
  409. package/src/service/curd/fixCfgModel.ts +139 -139
  410. package/src/service/proxyapi/ProxyApiLoadService.ts +174 -174
  411. package/src/service/proxyapi/ProxyApiService.ts +262 -262
  412. package/src/service/proxyapi/ProxyApiUtils.ts +32 -32
  413. package/src/service/proxyapi/RouteHandler.ts +8 -8
  414. package/src/service/proxyapi/RouteTrie.ts +74 -74
  415. package/src/service/proxyapi/WeightedRandom.ts +37 -37
  416. package/src/service/proxyapi/WeightedRoundRobin.ts +44 -44
  417. package/src/views/404_app.html +31 -31
  418. package/src/views/404_workbench.html +34 -34
  419. package/tsconfig.json +32 -32
@@ -1,243 +1,283 @@
1
- import { Inject, Provide } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
- import { CurdMixService } from '../curd/CurdMixService';
4
- import { IRequestCfgModel, IRequestModel } from '../../libs/crud-pro/interfaces';
5
- import { KeysOfAuthType, KeysOfSimpleSQL, SqlDbType } from '../../libs/crud-pro/models/keys';
6
- import { parseJsonObject } from '../../libs/utils/functions';
7
- import { ICrudStdAppInfo, ICrudStdAppInfoForSettingKey } from '../../models/bizmodels';
8
- import { BizException } from '../../models/devops';
9
- import { ExecuteContext } from '../../libs/crud-pro/models/ExecuteContext';
10
- import { SystemTables } from '../../models/SystemTables';
11
- import { CrudStdActionService } from './CrudStdActionService';
12
- import { CrudStdRelationService } from './CrudStdRelationService';
13
- import * as _ from 'lodash';
14
- import { ApiBaseService } from '../base/ApiBaseService';
15
- import { parseDatabaseName } from '../../libs/crud-pro/utils/DatabaseName';
16
- import { GLOBAL_STATIC_CONFIG } from '../../libs/global-config/global-config';
17
- import { MixinUtils } from '@/libs/crud-pro/utils/MixinUtils';
18
-
19
- export const SPECIAL_SETTING_KEY = {
20
- QUERY_LIST: 'QUERY_LIST',
21
- QUERY_ONE: 'QUERY_ONE',
22
- };
23
-
24
- @Provide()
25
- export class CrudStdService extends ApiBaseService {
26
- @Inject()
27
- protected ctx: Context;
28
-
29
- @Inject()
30
- protected curdMixService: CurdMixService;
31
-
32
- @Inject()
33
- protected crudStdActionService: CrudStdActionService;
34
-
35
- @Inject()
36
- protected crudStdRelationService: CrudStdRelationService;
37
-
38
- /**
39
- * 执行普通CRUD
40
- */
41
- public async executeStdQuery(appCode: string, settingKey: string, params: IRequestModel, sqlSimpleName: KeysOfSimpleSQL) {
42
- const appInfo = await this.getParsedCrudStdAppForSettingKey(appCode, settingKey);
43
- const stdCrudCfgObj = appInfo.stdCrudCfgObj;
44
-
45
- if (!appInfo || appInfo.status !== 1) {
46
- throw new BizException('应用不存在或已下线:' + appCode);
47
- }
48
-
49
-
50
- // 查询列表功能
51
- if(settingKey === SPECIAL_SETTING_KEY.QUERY_LIST) {
52
- // 正确启用了自定义查询功能
53
- const customQueryApi:string = _.get(stdCrudCfgObj, 'othersSetting.values.customQueryApi');
54
- if(typeof customQueryApi === 'string') {
55
- const customQueryApiArr = customQueryApi.split('.');
56
- const serviceName = customQueryApiArr[0] || "";
57
- const serviceFunc = customQueryApiArr[1] || "";
58
- if(serviceName.endsWith('Service')){
59
- const serviceObj = await this.ctx.requestContext.getAsync(serviceName);
60
- return serviceObj[serviceFunc](params);
61
- }
62
- }
63
- }
64
-
65
-
66
- const databaseName = stdCrudCfgObj.tableBaseInfo.databaseName;
67
-
68
- const { dbType, dbName } = parseDatabaseName(databaseName);
69
-
70
- const cfgModel: IRequestCfgModel = {
71
- sqlDatabase: dbName,
72
- sqlDbType: dbType,
73
- sqlTable: stdCrudCfgObj.tableBaseInfo.tableName,
74
- sqlSimpleName,
75
- };
76
-
77
- // 接口返回最大值
78
- const maxLimit = _.get(stdCrudCfgObj, 'othersSetting.values.maxLimit');
79
- if (typeof maxLimit === 'number' && maxLimit > 0) {
80
- cfgModel.maxLimit = maxLimit;
81
- }
82
-
83
- if (!appInfo.settingKeyActionCfg.hasOperationPerm) {
84
- throw new BizException('没有权限');
85
- }
86
-
87
- // 根据用户配置,设置关联查询的数据信息。
88
- await this.crudStdRelationService.addCfgModelColumnsRelation(cfgModel, appInfo);
89
-
90
- // 根据表结构的数据类型,修正数据类型
91
- await this.fixDataFieldTypeBySqlTableField(params, cfgModel, appInfo, { dbType, dbName });
92
-
93
- // 业务系统自定义的修改cfgModel
94
- await GLOBAL_STATIC_CONFIG.getConfig().bizUpdateCfgModelForCrudStd(params, cfgModel, appInfo, this.ctx);
95
-
96
- return await this.curdMixService.executeCrudByCfg(params, cfgModel);
97
- }
98
-
99
- /**
100
- * 获取appInfo 并且拿到当前settingKey相关的信息
101
- * @param appCode
102
- * @param settingKey
103
- * @private
104
- */
105
- private async getParsedCrudStdAppForSettingKey(appCode: string, settingKey: string): Promise<ICrudStdAppInfoForSettingKey> {
106
- if (!appCode) {
107
- throw new BizException('缺少参数:curdStdAppCode');
108
- }
109
- const appInfo: ICrudStdAppInfoForSettingKey = await this.getParsedCrudStdAppInfo(appCode);
110
- if (!appInfo) {
111
- return null;
112
- }
113
-
114
- const actionsMap = appInfo.actionsMap;
115
- const appSchema = appInfo.stdCrudCfgObj;
116
-
117
- if (settingKey === SPECIAL_SETTING_KEY.QUERY_LIST || settingKey === SPECIAL_SETTING_KEY.QUERY_ONE) {
118
- const authSettingValues = _.get(appSchema, 'authSetting.values');
119
- const { auth_type, auth_config_by_func_code, auth_config_by_role_code } = authSettingValues || {};
120
- const authConfig = auth_type === 'byFuncCode' ? auth_config_by_func_code : auth_config_by_role_code;
121
- const hasOperationPerm = this.ctx.userSession.isAuthPass(auth_type as any, authConfig);
122
- appInfo.settingKeyActionCfg = { settingKey, hasOperationPerm };
123
- } else {
124
- const actionCfg = actionsMap[settingKey];
125
- if (!actionCfg) {
126
- throw new BizException('没有找到相关配置:' + JSON.stringify({ appCode, settingKey }));
127
- }
128
- const componentNameCfg = _.get(actionCfg, 'component.componentName');
129
- if (!componentNameCfg) {
130
- throw new BizException('没有配置动作组件:' + JSON.stringify({ appCode, settingKey }));
131
- }
132
- appInfo.settingKeyActionCfg = actionCfg;
133
- }
134
-
135
- return appInfo;
136
- }
137
-
138
- /**
139
- * 执行动作
140
- * @param appCode
141
- * @param settingKey
142
- * @param params
143
- */
144
- public async executeStdActionByReq(appCode: string, settingKey: string, params: IRequestModel): Promise<ExecuteContext> {
145
- const appInfo = await this.getParsedCrudStdAppForSettingKey(appCode, settingKey);
146
- if (!appInfo || appInfo.status !== 1) {
147
- throw new BizException('应用不存在或已下线:' + appCode);
148
- }
149
-
150
- const actionsMap = appInfo.actionsMap;
151
- const actionCfg = appInfo.settingKeyActionCfg;
152
-
153
- return this.crudStdActionService.handleStdActionByReq({ appInfo, params, actionsMap, actionCfg });
154
- }
155
-
156
- /**
157
- * 查询APP信息
158
- * @param appCode
159
- * @private
160
- */
161
- private async getCrudStdAppInfo(appCode?: string) {
162
- const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
163
-
164
- this.logInfo('getCrudStdAppInfo', appCode);
165
-
166
- const ss = {
167
- sqlTable: SystemTables.sys_app,
168
- sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
169
- sqlDatabase: SystemDbName,
170
- sqlDbType: SystemDbType,
171
- };
172
- return await this.curdMixService.executeCrudByCfg({ condition: { app_code: appCode } }, ss);
173
- }
174
-
175
- /**
176
- * 查询APP信息
177
- * @param appCode
178
- * @private
179
- */
180
- public async getParsedCrudStdAppInfo(appCode: string): Promise<ICrudStdAppInfo> {
181
- const a = await this.getCrudStdAppInfo(appCode);
182
- const { row } = a.getResModel();
183
- if (!row) {
184
- return null;
185
- }
186
- const { app_schema, ...others } = row;
187
- const stdCrudCfgObj = parseJsonObject(app_schema);
188
-
189
- // 为了方便查找到action对象
190
- const actionsMap = {};
191
- const keys = Object.keys(stdCrudCfgObj);
192
- for (let i = 0; i < keys.length; i++) {
193
- const key = keys[i];
194
- const arrayCfg = stdCrudCfgObj[key];
195
- if (Array.isArray(arrayCfg)) {
196
- for (let j = 0; j < arrayCfg.length; j++) {
197
- const actionCfg = arrayCfg[j];
198
- actionCfg.hasOperationPerm = this.hasOperationPerm(actionCfg);
199
- if (actionCfg.settingKey) {
200
- actionsMap[actionCfg.settingKey] = actionCfg;
201
- }
202
- }
203
- }
204
- }
205
-
206
- return { ...others, stdCrudCfgObj, actionsMap };
207
- }
208
-
209
- private hasOperationPerm(actionCfg: any): boolean {
210
- const permissionCode = _.get(actionCfg, 'permissionCode');
211
- if (permissionCode) {
212
- return this.ctx.userSession.isAuthPass(KeysOfAuthType.byFuncCode, permissionCode);
213
- }
214
- return true; // 无需鉴权
215
- }
216
-
217
- private async fixDataFieldTypeBySqlTableField(params: IRequestModel, cfgModel: IRequestCfgModel, appInfo: ICrudStdAppInfoForSettingKey, arg3: { dbType: SqlDbType; dbName: string }) {
218
- const tableFields = _.get(appInfo, 'stdCrudCfgObj.tableFields');
219
-
220
- const tableFieldMap = MixinUtils.toMap(tableFields, (e: any) => {
221
- return e.fieldIndex;
222
- });
223
-
224
- if (arg3.dbType === SqlDbType.postgres) {
225
- if (cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT || cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_UPDATE) {
226
- const data = params.data || {};
227
- const dataKeys = Object.keys(data);
228
- for (let index = 0; index < dataKeys.length; index++) {
229
- const dataKey = dataKeys[index];
230
- const dataValue = data[dataKey];
231
- const fieldInfo = tableFieldMap[dataKey];
232
- const fieldType = ('' + _.get(fieldInfo, 'type')).toUpperCase();
233
- if (fieldType === 'ARRAY') {
234
- const dataValueArray = parseJsonObject(dataValue);
235
- if (Array.isArray(dataValueArray)) {
236
- data[dataKey] = `{${dataValueArray.map(v => `"${v}"`).join(',')}}`;
237
- }
238
- }
239
- }
240
- }
241
- }
242
- }
243
- }
1
+ import * as _ from 'lodash';
2
+ import axios from 'axios';
3
+ import { Inject, Provide } from '@midwayjs/core';
4
+ import { Context } from '@midwayjs/koa';
5
+ import { CurdMixService } from '../curd/CurdMixService';
6
+ import { IRequestCfgModel, IRequestModel } from '../../libs/crud-pro/interfaces';
7
+ import { KeysOfAuthType, KeysOfSimpleSQL, SqlDbType } from '../../libs/crud-pro/models/keys';
8
+ import { parseJsonObject } from '../../libs/utils/functions';
9
+ import { ICrudStdAppInfo, ICrudStdAppInfoForSettingKey } from '../../models/bizmodels';
10
+ import { BizException } from '../../models/devops';
11
+ import { ExecuteContext } from '../../libs/crud-pro/models/ExecuteContext';
12
+ import { SystemTables } from '../../models/SystemTables';
13
+ import { CrudStdActionService } from './CrudStdActionService';
14
+ import { CrudStdRelationService } from './CrudStdRelationService';
15
+ import { ApiBaseService } from '../base/ApiBaseService';
16
+ import { parseDatabaseName } from '../../libs/crud-pro/utils/DatabaseName';
17
+ import { GLOBAL_STATIC_CONFIG } from '../../libs/global-config/global-config';
18
+ import { MixinUtils } from '@/libs/crud-pro/utils/MixinUtils';
19
+
20
+ export const SPECIAL_SETTING_KEY = {
21
+ QUERY_LIST: 'QUERY_LIST',
22
+ QUERY_ONE: 'QUERY_ONE',
23
+ };
24
+
25
+ const INNER_HTTP_POTOCAL = "innerHttp://"
26
+
27
+
28
+ @Provide()
29
+ export class CrudStdService extends ApiBaseService {
30
+
31
+ @Inject()
32
+ protected ctx: Context;
33
+
34
+ @Inject()
35
+ protected curdMixService: CurdMixService;
36
+
37
+ @Inject()
38
+ protected crudStdActionService: CrudStdActionService;
39
+
40
+ @Inject()
41
+ protected crudStdRelationService: CrudStdRelationService;
42
+
43
+ /**
44
+ * 执行普通CRUD
45
+ */
46
+ public async executeStdQuery(appCode: string, settingKey: string, params: IRequestModel, sqlSimpleName: KeysOfSimpleSQL): Promise<ExecuteContext> {
47
+ const appInfo = await this.getParsedCrudStdAppForSettingKey(appCode, settingKey);
48
+ const stdCrudCfgObj = appInfo.stdCrudCfgObj;
49
+
50
+ if (!appInfo || appInfo.status !== 1) {
51
+ throw new BizException('应用不存在或已下线:' + appCode);
52
+ }
53
+
54
+
55
+ // 查询列表功能
56
+ if (settingKey === SPECIAL_SETTING_KEY.QUERY_LIST) {
57
+ // 正确启用了自定义查询功能
58
+ const customQueryApi: string = _.get(stdCrudCfgObj, 'othersSetting.values.customQueryApi');
59
+ if (typeof customQueryApi === 'string' && customQueryApi.startsWith(INNER_HTTP_POTOCAL)) {
60
+ return this.executeStdQueryByInnerHttp(customQueryApi, params);
61
+ }
62
+ }
63
+
64
+
65
+ const databaseName = stdCrudCfgObj.tableBaseInfo.databaseName;
66
+
67
+ const { dbType, dbName } = parseDatabaseName(databaseName);
68
+
69
+ const cfgModel: IRequestCfgModel = {
70
+ sqlDatabase: dbName,
71
+ sqlDbType: dbType,
72
+ sqlTable: stdCrudCfgObj.tableBaseInfo.tableName,
73
+ sqlSimpleName,
74
+ };
75
+
76
+ // 接口返回最大值
77
+ const maxLimit = _.get(stdCrudCfgObj, 'othersSetting.values.maxLimit');
78
+ if (typeof maxLimit === 'number' && maxLimit > 0) {
79
+ cfgModel.maxLimit = maxLimit;
80
+ }
81
+
82
+ if (!appInfo.settingKeyActionCfg.hasOperationPerm) {
83
+ throw new BizException('没有权限');
84
+ }
85
+
86
+ // 根据用户配置,设置关联查询的数据信息。
87
+ await this.crudStdRelationService.addCfgModelColumnsRelation(cfgModel, appInfo);
88
+
89
+ // 根据表结构的数据类型,修正数据类型
90
+ await this.fixDataFieldTypeBySqlTableField(params, cfgModel, appInfo, { dbType, dbName });
91
+
92
+ // 业务系统自定义的修改cfgModel
93
+ await GLOBAL_STATIC_CONFIG.getConfig().bizUpdateCfgModelForCrudStd(params, cfgModel, appInfo, this.ctx);
94
+
95
+ return await this.curdMixService.executeCrudByCfg(params, cfgModel);
96
+ }
97
+
98
+
99
+ /**
100
+ * 内部请求
101
+ * @param customQueryApi
102
+ * @param params
103
+ */
104
+ private async executeStdQueryByInnerHttp(customQueryApi: string, params: IRequestModel): Promise<ExecuteContext> {
105
+ const queryApi = customQueryApi.substring(INNER_HTTP_POTOCAL.length);
106
+ const port = this.app.getConfig().koa.port;
107
+ const response = await axios({
108
+ method: 'POST',
109
+ url: `http://127.0.0.1:${port}/${queryApi}`,
110
+ data: this.ctx.request?.body || params,
111
+ headers: this.ctx.innerHeaders || this.ctx.headers,
112
+ responseType: 'json',
113
+ validateStatus: () => true,
114
+ });
115
+ if (response.status !== 200) {
116
+ throw new Error('executeStdQueryByInnerHttp请求错误失败')
117
+ }
118
+ return Promise.resolve(response.data);
119
+ }
120
+
121
+
122
+ /**
123
+ * 获取appInfo 并且拿到当前settingKey相关的信息
124
+ * @param appCode
125
+ * @param settingKey
126
+ * @private
127
+ */
128
+ private async getParsedCrudStdAppForSettingKey(appCode: string, settingKey: string): Promise<ICrudStdAppInfoForSettingKey> {
129
+ if (!appCode) {
130
+ throw new BizException('缺少参数:curdStdAppCode');
131
+ }
132
+ const appInfo: ICrudStdAppInfoForSettingKey = await this.getParsedCrudStdAppInfo(appCode);
133
+ if (!appInfo) {
134
+ return null;
135
+ }
136
+
137
+ const actionsMap = appInfo.actionsMap;
138
+ const appSchema = appInfo.stdCrudCfgObj;
139
+
140
+ if (settingKey === SPECIAL_SETTING_KEY.QUERY_LIST || settingKey === SPECIAL_SETTING_KEY.QUERY_ONE) {
141
+ const authSettingValues = _.get(appSchema, 'authSetting.values');
142
+ const { auth_type, auth_config_by_func_code, auth_config_by_role_code } = authSettingValues || {};
143
+ const authConfig = auth_type === 'byFuncCode' ? auth_config_by_func_code : auth_config_by_role_code;
144
+ const hasOperationPerm = this.ctx.userSession.isAuthPass(auth_type as any, authConfig);
145
+ appInfo.settingKeyActionCfg = { settingKey, hasOperationPerm };
146
+ } else {
147
+ const actionCfg = actionsMap[settingKey];
148
+ if (!actionCfg) {
149
+ throw new BizException('没有找到相关配置:' + JSON.stringify({ appCode, settingKey }));
150
+ }
151
+ const componentNameCfg = _.get(actionCfg, 'component.componentName');
152
+ if (!componentNameCfg) {
153
+ throw new BizException('没有配置动作组件:' + JSON.stringify({ appCode, settingKey }));
154
+ }
155
+ appInfo.settingKeyActionCfg = actionCfg;
156
+ }
157
+
158
+ return appInfo;
159
+ }
160
+
161
+ /**
162
+ * 执行动作
163
+ * @param appCode
164
+ * @param settingKey
165
+ * @param params
166
+ */
167
+ public async executeStdActionByReq(appCode: string, settingKey: string, params: IRequestModel): Promise<ExecuteContext> {
168
+ const appInfo = await this.getParsedCrudStdAppForSettingKey(appCode, settingKey);
169
+ if (!appInfo || appInfo.status !== 1) {
170
+ throw new BizException('应用不存在或已下线:' + appCode);
171
+ }
172
+
173
+ const actionsMap = appInfo.actionsMap;
174
+ const actionCfg = appInfo.settingKeyActionCfg;
175
+
176
+ return this.crudStdActionService.handleStdActionByReq({ appInfo, params, actionsMap, actionCfg });
177
+ }
178
+
179
+ /**
180
+ * 查询APP信息
181
+ * @param appCode
182
+ * @private
183
+ */
184
+ private async getCrudStdAppInfo(appCode?: string) {
185
+ const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
186
+
187
+ this.logInfo('getCrudStdAppInfo', appCode);
188
+
189
+ const ss = {
190
+ sqlTable: SystemTables.sys_app,
191
+ sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
192
+ sqlDatabase: SystemDbName,
193
+ sqlDbType: SystemDbType,
194
+ };
195
+ return await this.curdMixService.executeCrudByCfg({ condition: { app_code: appCode } }, ss);
196
+ }
197
+
198
+
199
+ /**
200
+ * 查询APP信息
201
+ * @param appCode
202
+ * @private
203
+ */
204
+ public async getParsedCrudStdAppInfo(appCode: string): Promise<ICrudStdAppInfo> {
205
+ const cacheKey = "getParsedCrudStdAppInfo:" + appCode;
206
+ let appInfo: ICrudStdAppInfo = this.getFromCtxCache(cacheKey) as any;
207
+ if (!appInfo) {
208
+ appInfo = await this.getParsedCrudStdAppInfoPrivate(appCode);
209
+ this.setToCtxCache(cacheKey, appInfo);
210
+ }
211
+ return appInfo;
212
+ }
213
+
214
+
215
+ /**
216
+ * 查询APP信息
217
+ * @param appCode
218
+ * @private
219
+ */
220
+ private async getParsedCrudStdAppInfoPrivate(appCode: string): Promise<ICrudStdAppInfo> {
221
+ const a = await this.getCrudStdAppInfo(appCode);
222
+ const { row } = a.getResModel();
223
+ if (!row) {
224
+ return null;
225
+ }
226
+ const { app_schema, ...others } = row;
227
+ const stdCrudCfgObj = parseJsonObject(app_schema);
228
+
229
+ // 为了方便查找到action对象
230
+ const actionsMap = {};
231
+ const keys = Object.keys(stdCrudCfgObj);
232
+ for (let i = 0; i < keys.length; i++) {
233
+ const key = keys[i];
234
+ const arrayCfg = stdCrudCfgObj[key];
235
+ if (Array.isArray(arrayCfg)) {
236
+ for (let j = 0; j < arrayCfg.length; j++) {
237
+ const actionCfg = arrayCfg[j];
238
+ actionCfg.hasOperationPerm = this.hasOperationPerm(actionCfg);
239
+ if (actionCfg.settingKey) {
240
+ actionsMap[actionCfg.settingKey] = actionCfg;
241
+ }
242
+ }
243
+ }
244
+ }
245
+
246
+ return { ...others, stdCrudCfgObj, actionsMap };
247
+ }
248
+
249
+ private hasOperationPerm(actionCfg: any): boolean {
250
+ const permissionCode = _.get(actionCfg, 'permissionCode');
251
+ if (permissionCode) {
252
+ return this.ctx.userSession.isAuthPass(KeysOfAuthType.byFuncCode, permissionCode);
253
+ }
254
+ return true; // 无需鉴权
255
+ }
256
+
257
+ private async fixDataFieldTypeBySqlTableField(params: IRequestModel, cfgModel: IRequestCfgModel, appInfo: ICrudStdAppInfoForSettingKey, arg3: { dbType: SqlDbType; dbName: string }) {
258
+ const tableFields = _.get(appInfo, 'stdCrudCfgObj.tableFields');
259
+
260
+ const tableFieldMap = MixinUtils.toMap(tableFields, (e: any) => {
261
+ return e.fieldIndex;
262
+ });
263
+
264
+ if (arg3.dbType === SqlDbType.postgres) {
265
+ if (cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT || cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_UPDATE) {
266
+ const data = params.data || {};
267
+ const dataKeys = Object.keys(data);
268
+ for (let index = 0; index < dataKeys.length; index++) {
269
+ const dataKey = dataKeys[index];
270
+ const dataValue = data[dataKey];
271
+ const fieldInfo = tableFieldMap[dataKey];
272
+ const fieldType = ('' + _.get(fieldInfo, 'type')).toUpperCase();
273
+ if (fieldType === 'ARRAY') {
274
+ const dataValueArray = parseJsonObject(dataValue);
275
+ if (Array.isArray(dataValueArray)) {
276
+ data[dataKey] = `{${dataValueArray.map(v => `"${v}"`).join(',')}}`;
277
+ }
278
+ }
279
+ }
280
+ }
281
+ }
282
+ }
283
+ }
@@ -1,17 +1,19 @@
1
- import { KeysOfSimpleSQL, SqlDbType } from "@/libs/crud-pro/models/keys";
2
- import { IRequestCfgModel, IRequestModel, ISqlCfgModel } from "@/libs/crud-pro/interfaces";
3
- import { IRequestCfgModel2 } from "@/models/bizmodels";
4
- import { CrudPro } from "@/libs/crud-pro/CrudPro";
5
- import { ResModelAffected, ResModelStandard } from "@/libs/crud-pro/models/ResModel";
6
-
1
+ import { KeysOfSimpleSQL, SqlDbType } from '@/libs/crud-pro/models/keys';
2
+ import { IRequestCfgModel, IRequestModel, ISqlCfgModel } from '@/libs/crud-pro/interfaces';
3
+ import { IRequestCfgModel2 } from '@/models/bizmodels';
4
+ import { CrudPro } from '@/libs/crud-pro/CrudPro';
5
+ import { ResModelAffected, ResModelStandard } from '@/libs/crud-pro/models/ResModel';
7
6
 
7
+ const DEFAULT_MAX_LIMIT = 10 * 10000;
8
8
 
9
9
  export class CrudProQuick {
10
10
  private readonly curdPro: CrudPro;
11
11
  private readonly sqlDbType: SqlDbType;
12
12
  private readonly sqlDatabase: string;
13
13
  private readonly sqlTable?: string;
14
- private baseCfgModel: IRequestCfgModel2 = {};
14
+ private baseCfgModel: IRequestCfgModel2 = {
15
+ maxLimit: DEFAULT_MAX_LIMIT,
16
+ };
15
17
 
16
18
  constructor(curdPro: CrudPro, sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string) {
17
19
  this.sqlDatabase = sqlDatabase;
@@ -25,7 +27,6 @@ export class CrudProQuick {
25
27
  }
26
28
 
27
29
  private async executeCrudByCfg(reqJson: IRequestModel, cfgModel2: IRequestCfgModel2) {
28
-
29
30
  const cfgModel = { ...this.baseCfgModel };
30
31
  Object.assign(cfgModel, cfgModel2);
31
32
 
@@ -45,7 +46,6 @@ export class CrudProQuick {
45
46
  return await this.curdPro.executeCrudByCfg(reqJson, cfgModel);
46
47
  }
47
48
 
48
-
49
49
  public async getOne(reqJson: IRequestModel, sqlTable?: string): Promise<any> {
50
50
  const cfgModel: IRequestCfgModel = {
51
51
  sqlTable,
@@ -70,7 +70,7 @@ export class CrudProQuick {
70
70
  sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_PAGE,
71
71
  };
72
72
  const res = await this.executeCrudByCfg(reqJson, cfgModel);
73
- return res.getResModel(); // 因为它有2个返回值
73
+ return res.getResModel(); // 因为它有2个返回值
74
74
  }
75
75
 
76
76
  public async getTotalCount(reqJson: IRequestModel, sqlTable?: string): Promise<number> {
@@ -118,20 +118,14 @@ export class CrudProQuick {
118
118
  return res.getResModel().affected;
119
119
  }
120
120
 
121
-
122
121
  public async executeSQL(executeSql: string, args?: any[]): Promise<any> {
123
122
  const sqlCfgModel: ISqlCfgModel = {
124
123
  executeSql: executeSql,
125
124
  executeSqlArgs: args,
126
125
  sqlDatabase: this.sqlDatabase,
127
126
  sqlDbType: this.sqlDbType,
127
+ maxLimit: this.baseCfgModel.maxLimit || DEFAULT_MAX_LIMIT,
128
128
  };
129
129
  return await this.curdPro.executeSQL(sqlCfgModel);
130
130
  }
131
-
132
-
133
-
134
-
135
131
  }
136
-
137
-