midway-fatcms 0.0.1-beta.4 → 0.0.1-beta.41

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 (336) 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 +58 -15
  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 +0 -1
  18. package/dist/controller/gateway/StaticController.js +40 -39
  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/Transaction.d.ts +1 -0
  67. package/dist/libs/crud-pro/models/Transaction.js +7 -0
  68. package/dist/libs/crud-pro/models/TransactionSqlServer.js +1 -1
  69. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
  70. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +27 -15
  71. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +17 -19
  72. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
  73. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
  74. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
  75. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
  76. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
  77. package/dist/libs/crud-pro/services/CrudProServiceBase.js +15 -3
  78. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
  79. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +32 -7
  80. package/dist/libs/crud-pro/sql.txt +120 -120
  81. package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
  82. package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
  83. package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
  84. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
  85. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
  86. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
  87. package/dist/libs/global-config/global-config.d.ts +45 -0
  88. package/dist/libs/global-config/global-config.js +33 -0
  89. package/dist/libs/utils/base64.d.ts +9 -0
  90. package/dist/libs/utils/base64.js +42 -0
  91. package/dist/libs/utils/errorToString.d.ts +2 -0
  92. package/dist/libs/utils/errorToString.js +57 -0
  93. package/dist/libs/utils/fatcms-request.js +2 -2
  94. package/dist/libs/utils/functions.d.ts +2 -1
  95. package/dist/libs/utils/functions.js +6 -1
  96. package/dist/middleware/forbidden.middleware.js +4 -20
  97. package/dist/middleware/global.middleware.js +30 -10
  98. package/dist/middleware/permission.middleware.js +1 -1
  99. package/dist/models/AsyncTaskModel.d.ts +74 -0
  100. package/dist/models/AsyncTaskModel.js +31 -0
  101. package/dist/models/RedisKeys.d.ts +14 -0
  102. package/dist/models/RedisKeys.js +17 -0
  103. package/dist/models/SystemEntities.d.ts +8 -1
  104. package/dist/models/SystemEntities.js +7 -0
  105. package/dist/models/SystemTables.d.ts +1 -3
  106. package/dist/models/SystemTables.js +2 -4
  107. package/dist/models/bizmodels.d.ts +28 -0
  108. package/dist/models/bizmodels.js +6 -1
  109. package/dist/schedule/anonymousContext.d.ts +14 -0
  110. package/dist/schedule/anonymousContext.js +59 -0
  111. package/dist/schedule/index.d.ts +4 -3
  112. package/dist/schedule/index.js +8 -67
  113. package/dist/schedule/runSchedule.d.ts +12 -0
  114. package/dist/schedule/runSchedule.js +68 -0
  115. package/dist/schedule/scheduleNames.d.ts +13 -0
  116. package/dist/schedule/scheduleNames.js +17 -0
  117. package/dist/service/AuthService.js +8 -5
  118. package/dist/service/EnumInfoService.js +9 -5
  119. package/dist/service/FileCenterService.js +13 -9
  120. package/dist/service/SysConfigService.d.ts +1 -1
  121. package/dist/service/SysConfigService.js +4 -2
  122. package/dist/service/UserAccountService.js +10 -6
  123. package/dist/service/UserSessionService.d.ts +21 -0
  124. package/dist/service/UserSessionService.js +73 -2
  125. package/dist/service/VisitStatService.d.ts +1 -1
  126. package/dist/service/VisitStatService.js +20 -27
  127. package/dist/service/WorkbenchService.d.ts +33 -0
  128. package/dist/service/WorkbenchService.js +70 -12
  129. package/dist/service/anyapi/AnyApiSandboxService.js +12 -12
  130. package/dist/service/anyapi/AnyApiService.js +4 -2
  131. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -0
  132. package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -0
  133. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
  134. package/dist/service/asyncTask/AsyncTaskService.js +34 -0
  135. package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -0
  136. package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -0
  137. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -0
  138. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -0
  139. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -0
  140. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +139 -0
  141. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -0
  142. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +121 -0
  143. package/dist/service/base/BaseService.d.ts +12 -0
  144. package/dist/service/base/BaseService.js +22 -0
  145. package/dist/service/base/RedisCacheService.d.ts +7 -0
  146. package/dist/service/base/RedisCacheService.js +7 -0
  147. package/dist/service/crudstd/CrudStdService.d.ts +8 -1
  148. package/dist/service/crudstd/CrudStdService.js +63 -6
  149. package/dist/service/curd/CrudProQuick.d.ts +44 -0
  150. package/dist/service/curd/CrudProQuick.js +147 -0
  151. package/dist/service/curd/CurdMixByAccountService.d.ts +4 -4
  152. package/dist/service/curd/CurdMixByAccountService.js +12 -6
  153. package/dist/service/curd/CurdMixByDictService.d.ts +4 -4
  154. package/dist/service/curd/CurdMixByDictService.js +10 -7
  155. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +13 -4
  156. package/dist/service/curd/CurdMixByLinkToCustomService.js +73 -24
  157. package/dist/service/curd/CurdMixBySysConfigService.d.ts +3 -3
  158. package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
  159. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +3 -3
  160. package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
  161. package/dist/service/curd/CurdMixService.d.ts +13 -3
  162. package/dist/service/curd/CurdMixService.js +26 -2
  163. package/dist/service/curd/CurdMixUtils.d.ts +27 -4
  164. package/dist/service/curd/CurdMixUtils.js +115 -41
  165. package/dist/service/curd/CurdProService.d.ts +3 -10
  166. package/dist/service/curd/CurdProService.js +36 -148
  167. package/dist/service/curd/fixCfgModel.d.ts +3 -0
  168. package/dist/service/curd/fixCfgModel.js +107 -0
  169. package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
  170. package/dist/service/proxyapi/ProxyApiService.d.ts +1 -0
  171. package/dist/service/proxyapi/ProxyApiService.js +43 -9
  172. package/dist/views/404_app.html +31 -31
  173. package/dist/views/404_workbench.html +34 -34
  174. package/package.json +28 -24
  175. package/tsconfig.json +32 -0
  176. package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
  177. package/dist/controller/medstatistic/MedAdminController.js +0 -205
  178. package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
  179. package/dist/controller/medstatistic/MedClientController.js +0 -188
  180. package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
  181. package/dist/controller/medstatistic/MedMessageService.js +0 -95
  182. package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
  183. package/dist/controller/medstatistic/MedScoreService.js +0 -107
  184. package/dist/controller/medstatistic/constants.d.ts +0 -32
  185. package/dist/controller/medstatistic/constants.js +0 -43
  186. package/src/config/config.default.ts +0 -172
  187. package/src/config/seed/aeskey.txt +0 -1
  188. package/src/config/utils.ts +0 -23
  189. package/src/configuration.ts +0 -83
  190. package/src/controller/base/BaseApiController.ts +0 -145
  191. package/src/controller/gateway/AnyApiGatewayController.ts +0 -33
  192. package/src/controller/gateway/CrudMtdGatewayController.ts +0 -107
  193. package/src/controller/gateway/CrudStdGatewayController.ts +0 -101
  194. package/src/controller/gateway/DocGatewayController.ts +0 -165
  195. package/src/controller/gateway/FileController.ts +0 -110
  196. package/src/controller/gateway/ProxyApiGatewayController.ts +0 -47
  197. package/src/controller/gateway/PublicApiController.ts +0 -145
  198. package/src/controller/gateway/StaticController.ts +0 -328
  199. package/src/controller/helpers.controller.ts +0 -161
  200. package/src/controller/home.controller.ts +0 -71
  201. package/src/controller/manage/AnyApiMangeApi.ts +0 -66
  202. package/src/controller/manage/AppLogMangeApi.ts +0 -53
  203. package/src/controller/manage/AppMangeApi.ts +0 -53
  204. package/src/controller/manage/AppPageMangeApi.ts +0 -52
  205. package/src/controller/manage/AppSchemaHistoryApi.ts +0 -49
  206. package/src/controller/manage/CrudMethodsMangeApi.ts +0 -49
  207. package/src/controller/manage/CrudStandardDesignApi.ts +0 -353
  208. package/src/controller/manage/DataDictManageApi.ts +0 -78
  209. package/src/controller/manage/DeployManageApi.ts +0 -179
  210. package/src/controller/manage/DocLibManageApi.ts +0 -69
  211. package/src/controller/manage/DocManageApi.ts +0 -99
  212. package/src/controller/manage/FileManageApi.ts +0 -45
  213. package/src/controller/manage/LowCodeTplManageApi.ts +0 -52
  214. package/src/controller/manage/MenuManageApi.ts +0 -63
  215. package/src/controller/manage/ProxyApiMangeApi.ts +0 -52
  216. package/src/controller/manage/SuperAdminManageApi.ts +0 -138
  217. package/src/controller/manage/SysConfigMangeApi.ts +0 -95
  218. package/src/controller/manage/SystemInfoManageApi.ts +0 -48
  219. package/src/controller/manage/UserAccountManageApi.ts +0 -88
  220. package/src/controller/manage/WorkbenchMangeApi.ts +0 -72
  221. package/src/controller/medstatistic/MedAdminController.ts +0 -221
  222. package/src/controller/medstatistic/MedClientController.ts +0 -188
  223. package/src/controller/medstatistic/MedMessageService.ts +0 -89
  224. package/src/controller/medstatistic/MedScoreService.ts +0 -108
  225. package/src/controller/medstatistic/constants.ts +0 -63
  226. package/src/controller/myinfo/AuthController.ts +0 -174
  227. package/src/controller/myinfo/MyInfoController.ts +0 -32
  228. package/src/controller/render/AppRenderController.ts +0 -76
  229. package/src/controller/test.controller.ts +0 -37
  230. package/src/filter/default.filter.ts +0 -13
  231. package/src/filter/notfound.filter.ts +0 -10
  232. package/src/index.ts +0 -71
  233. package/src/interface.ts +0 -31
  234. package/src/libs/crud-pro/CrudPro.ts +0 -158
  235. package/src/libs/crud-pro/defaultConfigs.ts +0 -13
  236. package/src/libs/crud-pro/exceptions.ts +0 -124
  237. package/src/libs/crud-pro/interfaces.ts +0 -183
  238. package/src/libs/crud-pro/models/ExecuteContext.ts +0 -111
  239. package/src/libs/crud-pro/models/ExecuteContextFunc.ts +0 -86
  240. package/src/libs/crud-pro/models/FuncContext.ts +0 -21
  241. package/src/libs/crud-pro/models/RequestCfgModel.ts +0 -141
  242. package/src/libs/crud-pro/models/RequestModel.ts +0 -141
  243. package/src/libs/crud-pro/models/ServiceHub.ts +0 -32
  244. package/src/libs/crud-pro/models/SqlCfgModel.ts +0 -52
  245. package/src/libs/crud-pro/models/SqlSegArg.ts +0 -13
  246. package/src/libs/crud-pro/models/Transaction.ts +0 -74
  247. package/src/libs/crud-pro/models/TransactionMySQL.ts +0 -79
  248. package/src/libs/crud-pro/models/TransactionPostgres.ts +0 -91
  249. package/src/libs/crud-pro/models/TransactionSqlServer.ts +0 -107
  250. package/src/libs/crud-pro/models/keys.ts +0 -159
  251. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +0 -75
  252. package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +0 -128
  253. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +0 -279
  254. package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +0 -60
  255. package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +0 -180
  256. package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +0 -373
  257. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +0 -202
  258. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +0 -397
  259. package/src/libs/crud-pro/services/CrudProServiceBase.ts +0 -98
  260. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +0 -59
  261. package/src/libs/crud-pro/services/CurdProServiceHub.ts +0 -92
  262. package/src/libs/crud-pro/sql.txt +0 -120
  263. package/src/libs/crud-pro/utils/CompareUtils.ts +0 -23
  264. package/src/libs/crud-pro/utils/DatabaseName.ts +0 -40
  265. package/src/libs/crud-pro/utils/DateTimeUtils.ts +0 -20
  266. package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +0 -64
  267. package/src/libs/crud-pro/utils/MessageParseUtils.ts +0 -33
  268. package/src/libs/crud-pro/utils/MixinUtils.ts +0 -285
  269. package/src/libs/crud-pro/utils/ModelUtils.ts +0 -55
  270. package/src/libs/crud-pro/utils/MultiKeyMap.ts +0 -72
  271. package/src/libs/crud-pro/utils/SqlFuncUtils.ts +0 -29
  272. package/src/libs/crud-pro/utils/TypeUtils.ts +0 -188
  273. package/src/libs/crud-pro/utils/ValidateUtils.ts +0 -167
  274. package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +0 -20
  275. package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +0 -22
  276. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +0 -22
  277. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +0 -26
  278. package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +0 -11
  279. package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +0 -11
  280. package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +0 -129
  281. package/src/libs/utils/common-dto.ts +0 -52
  282. package/src/libs/utils/crypto-utils.ts +0 -52
  283. package/src/libs/utils/fatcms-request.ts +0 -115
  284. package/src/libs/utils/functions.ts +0 -67
  285. package/src/libs/utils/ordernum-utils.ts +0 -18
  286. package/src/libs/utils/parseConfig.ts +0 -62
  287. package/src/libs/utils/parseCreateSql.ts +0 -91
  288. package/src/libs/utils/render-utils.ts +0 -184
  289. package/src/middleware/forbidden.middleware.ts +0 -71
  290. package/src/middleware/global.middleware.ts +0 -278
  291. package/src/middleware/permission.middleware.ts +0 -81
  292. package/src/middleware/tx.middleware.ts +0 -30
  293. package/src/models/SystemEntities.ts +0 -115
  294. package/src/models/SystemPerm.ts +0 -105
  295. package/src/models/SystemTables.ts +0 -30
  296. package/src/models/bizmodels.ts +0 -89
  297. package/src/models/contextLogger.ts +0 -132
  298. package/src/models/devops.ts +0 -17
  299. package/src/models/userSession.ts +0 -216
  300. package/src/schedule/index.ts +0 -73
  301. package/src/service/AuthService.ts +0 -270
  302. package/src/service/EnumInfoService.ts +0 -129
  303. package/src/service/FileCenterService.ts +0 -394
  304. package/src/service/SysConfigService.ts +0 -34
  305. package/src/service/UserAccountService.ts +0 -100
  306. package/src/service/UserSessionService.ts +0 -81
  307. package/src/service/VisitStatService.ts +0 -179
  308. package/src/service/WorkbenchService.ts +0 -160
  309. package/src/service/anyapi/AnyApiSandboxService.ts +0 -121
  310. package/src/service/anyapi/AnyApiService.ts +0 -184
  311. package/src/service/base/ApiBaseService.ts +0 -42
  312. package/src/service/base/ApiRateLimiter.ts +0 -59
  313. package/src/service/base/BaseService.ts +0 -74
  314. package/src/service/base/RedisCacheService.ts +0 -38
  315. package/src/service/crudstd/CrudStdActionService.ts +0 -27
  316. package/src/service/crudstd/CrudStdConstant.ts +0 -62
  317. package/src/service/crudstd/CrudStdRelationService.ts +0 -78
  318. package/src/service/crudstd/CrudStdService.ts +0 -188
  319. package/src/service/curd/CurdMixByAccountService.ts +0 -83
  320. package/src/service/curd/CurdMixByDictService.ts +0 -113
  321. package/src/service/curd/CurdMixByLinkToCustomService.ts +0 -167
  322. package/src/service/curd/CurdMixBySysConfigService.ts +0 -78
  323. package/src/service/curd/CurdMixByWorkbenchService.ts +0 -68
  324. package/src/service/curd/CurdMixService.ts +0 -65
  325. package/src/service/curd/CurdMixUtils.ts +0 -248
  326. package/src/service/curd/CurdProService.ts +0 -379
  327. package/src/service/proxyapi/ProxyApiLoadService.ts +0 -165
  328. package/src/service/proxyapi/ProxyApiService.ts +0 -262
  329. package/src/service/proxyapi/ProxyApiUtils.ts +0 -32
  330. package/src/service/proxyapi/RouteHandler.ts +0 -8
  331. package/src/service/proxyapi/RouteTrie.ts +0 -74
  332. package/src/service/proxyapi/WeightedRandom.ts +0 -37
  333. package/src/service/proxyapi/WeightedRoundRobin.ts +0 -44
  334. package/src/views/404_app.html +0 -31
  335. package/src/views/404_workbench.html +0 -34
  336. package/src/views/static/favicon.ico +0 -0
@@ -37,6 +37,15 @@ function isBlob(obj) {
37
37
  function isStream(obj) {
38
38
  return obj && obj instanceof node_stream_1.Stream;
39
39
  }
40
+ async function getUserSessionService(ctx) {
41
+ return ctx.requestContext.getAsync(UserSessionService_1.UserSessionService);
42
+ }
43
+ async function getWorkbenchService(ctx) {
44
+ return ctx.requestContext.getAsync(WorkbenchService_1.WorkbenchService);
45
+ }
46
+ async function getVisitStatService(ctx) {
47
+ return ctx.requestContext.getAsync(VisitStatService_1.VisitStatService);
48
+ }
40
49
  /**
41
50
  * 专门对ExecuteSqlContext对象进行处理
42
51
  * @param res
@@ -121,15 +130,6 @@ function handleDebugRes(beforeRes, ctx, originRes) {
121
130
  nextRes.debugInfo = debugInfo;
122
131
  return nextRes;
123
132
  }
124
- async function getUserSessionService(ctx) {
125
- return ctx.requestContext.getAsync(UserSessionService_1.UserSessionService);
126
- }
127
- async function getWorkbenchService(ctx) {
128
- return ctx.requestContext.getAsync(WorkbenchService_1.WorkbenchService);
129
- }
130
- async function getVisitStatService(ctx) {
131
- return ctx.requestContext.getAsync(VisitStatService_1.VisitStatService);
132
- }
133
133
  /**
134
134
  * 检查是否是超级管理员
135
135
  * @param ctx
@@ -155,6 +155,12 @@ function checkIsSuperAdmin(ctx, sessionInfo) {
155
155
  }
156
156
  return false;
157
157
  }
158
+ /**
159
+ * 处理调试错误
160
+ * @param e
161
+ * @param ctx
162
+ * @returns
163
+ */
158
164
  function handleDebugError(e, ctx) {
159
165
  ctx.logger.error('GlobalMiddleware', e);
160
166
  let errorStack = null;
@@ -177,6 +183,10 @@ function handleDebugError(e, ctx) {
177
183
  }
178
184
  return res;
179
185
  }
186
+ /**
187
+ * 数据埋点
188
+ * @param ctx
189
+ */
180
190
  async function trackRequest(ctx) {
181
191
  try {
182
192
  const visitStatService = await getVisitStatService(ctx);
@@ -186,13 +196,23 @@ async function trackRequest(ctx) {
186
196
  console.error('trackRequestError', e);
187
197
  }
188
198
  }
199
+ /**
200
+ * 这些路径不需要配置用户信息等操作
201
+ */
202
+ const excludePathPrefix = ['/ns/static/', '/ns/api/helpers'];
189
203
  /**
190
204
  * 全局中间件
191
205
  */
192
206
  let GlobalMiddleware = class GlobalMiddleware {
193
207
  match(ctx) {
194
208
  const path = ctx.path;
195
- return !(path.startsWith('/ns/static/'));
209
+ for (let i = 0; i < excludePathPrefix.length; i++) {
210
+ const excludePathPrefix1 = excludePathPrefix[i];
211
+ if (path.startsWith(excludePathPrefix1)) {
212
+ return false;
213
+ }
214
+ }
215
+ return true;
196
216
  }
197
217
  resolve() {
198
218
  return async (ctx, next) => {
@@ -19,7 +19,7 @@ function checkPermission(codeList) {
19
19
  let message;
20
20
  const loginName = userSession.getSessionInfo().loginName;
21
21
  if (loginName === 'devopsviewer') {
22
- message = "开放体验账号不支持这些操作:新增、修改、删除、上传";
22
+ message = '开放体验账号不支持这些操作:新增、修改、删除、上传';
23
23
  }
24
24
  else {
25
25
  message = '缺少权限: ' + JSON.stringify(codeList);
@@ -0,0 +1,74 @@
1
+ export interface SysAsyncTaskEntity {
2
+ id: number;
3
+ task_uuid: string;
4
+ task_name: string;
5
+ task_description: string | null;
6
+ task_type: string;
7
+ task_status: SysAsyncTaskStatus;
8
+ input_params: any;
9
+ output_result: any | null;
10
+ input_file_path: string | null;
11
+ input_file_format: SysAsyncFileFormat | null;
12
+ input_file_size: number | null;
13
+ output_file_path: string | null;
14
+ output_file_format: SysAsyncFileFormat | null;
15
+ output_file_size: number | null;
16
+ input_total_records: number | null;
17
+ output_total_records: number | null;
18
+ processed_records: number;
19
+ progress: number;
20
+ error_message: string | null;
21
+ error_records: any | null;
22
+ created_by: string | null;
23
+ priority: number;
24
+ retry_count: number;
25
+ max_retries: number;
26
+ parent_task_id: number | null;
27
+ created_at: Date | string | null;
28
+ started_at: Date | string | null;
29
+ updated_at: Date | string | null;
30
+ expired_at: Date | string | null;
31
+ completed_at: Date | string | null;
32
+ created_user_session: string;
33
+ }
34
+ export declare type SysAsyncTaskPartial = Partial<SysAsyncTaskEntity>;
35
+ export declare enum SysAsyncTaskStatus {
36
+ PENDING = "PENDING",
37
+ RUNNING = "RUNNING",
38
+ SUCCEEDED = "SUCCEEDED",
39
+ PART_SUCCEEDED = "PART_SUCCEEDED",
40
+ FAILED = "FAILED",
41
+ CANCELLED = "CANCELLED",
42
+ PAUSED = "PAUSED"
43
+ }
44
+ /**
45
+ * 导出的文件名后缀
46
+ */
47
+ export declare enum SysAsyncFileFormat {
48
+ XLSX = "xlsx",
49
+ CSV = "csv",
50
+ JSON = "json",
51
+ PDF = "pdf",
52
+ TXT = "txt",
53
+ XML = "xml",
54
+ ZIP = "zip",
55
+ HTML = "html",
56
+ PNG = "png",
57
+ JPG = "jpg"
58
+ }
59
+ export interface ISysAsyncTaskHandler {
60
+ execute(asyncTaskContext: SysAsyncTaskContext): Promise<void>;
61
+ }
62
+ export interface SysAsyncTaskContext {
63
+ task: SysAsyncTaskEntity;
64
+ updateTaskStatus: (sysAsyncTaskPartial: SysAsyncTaskPartial) => any;
65
+ }
66
+ export interface SysAsyncTaskHandlerConfig {
67
+ taskType: string;
68
+ handler: ISysAsyncTaskHandler;
69
+ maxRetries?: number;
70
+ priority?: number;
71
+ expireSeconds?: number;
72
+ }
73
+ export declare const HEADER_KEY_RUN_BY_ASYNC_TASK_ID = "run-by-async-task-id";
74
+ export declare const HEADER_KEY_RUN_BY_ASYNC_TASK_WORKBENCH_CODE = "run-by-async-task-workbenchcode";
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HEADER_KEY_RUN_BY_ASYNC_TASK_WORKBENCH_CODE = exports.HEADER_KEY_RUN_BY_ASYNC_TASK_ID = exports.SysAsyncFileFormat = exports.SysAsyncTaskStatus = void 0;
4
+ var SysAsyncTaskStatus;
5
+ (function (SysAsyncTaskStatus) {
6
+ SysAsyncTaskStatus["PENDING"] = "PENDING";
7
+ SysAsyncTaskStatus["RUNNING"] = "RUNNING";
8
+ SysAsyncTaskStatus["SUCCEEDED"] = "SUCCEEDED";
9
+ SysAsyncTaskStatus["PART_SUCCEEDED"] = "PART_SUCCEEDED";
10
+ SysAsyncTaskStatus["FAILED"] = "FAILED";
11
+ SysAsyncTaskStatus["CANCELLED"] = "CANCELLED";
12
+ SysAsyncTaskStatus["PAUSED"] = "PAUSED";
13
+ })(SysAsyncTaskStatus = exports.SysAsyncTaskStatus || (exports.SysAsyncTaskStatus = {}));
14
+ /**
15
+ * 导出的文件名后缀
16
+ */
17
+ var SysAsyncFileFormat;
18
+ (function (SysAsyncFileFormat) {
19
+ SysAsyncFileFormat["XLSX"] = "xlsx";
20
+ SysAsyncFileFormat["CSV"] = "csv";
21
+ SysAsyncFileFormat["JSON"] = "json";
22
+ SysAsyncFileFormat["PDF"] = "pdf";
23
+ SysAsyncFileFormat["TXT"] = "txt";
24
+ SysAsyncFileFormat["XML"] = "xml";
25
+ SysAsyncFileFormat["ZIP"] = "zip";
26
+ SysAsyncFileFormat["HTML"] = "html";
27
+ SysAsyncFileFormat["PNG"] = "png";
28
+ SysAsyncFileFormat["JPG"] = "jpg";
29
+ })(SysAsyncFileFormat = exports.SysAsyncFileFormat || (exports.SysAsyncFileFormat = {}));
30
+ exports.HEADER_KEY_RUN_BY_ASYNC_TASK_ID = 'run-by-async-task-id';
31
+ exports.HEADER_KEY_RUN_BY_ASYNC_TASK_WORKBENCH_CODE = 'run-by-async-task-workbenchcode';
@@ -0,0 +1,14 @@
1
+ declare const RedisKeys: {
2
+ ASYNC_TASK_LOCK: string;
3
+ ASYNC_TASK_TIMEOUT_LOCK: string;
4
+ ASYNC_TASK_UPDATE_TIME: string;
5
+ USER_SESSION_PREFIX: string;
6
+ USER_SESSION_ASYNC_TASK_ID_PREFIX: string;
7
+ USER_ACTION_TIME_LIMIT_PREFIX: string;
8
+ VISIT_STAT_LOCK_PREFIX: string;
9
+ VISIT_STAT_DATE_PREFIX: string;
10
+ LINK_TO_CUSTOM_PREFIX: string;
11
+ CURD_MIX_BY_DICT_PREFIX: string;
12
+ QUERY_ENUM_INFO_PREFIX: string;
13
+ };
14
+ export { RedisKeys };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisKeys = void 0;
4
+ const RedisKeys = {
5
+ ASYNC_TASK_LOCK: 'FatAsyncTaskLock',
6
+ ASYNC_TASK_TIMEOUT_LOCK: 'FatAsyncTaskTimeoutLock',
7
+ ASYNC_TASK_UPDATE_TIME: 'FatAsyncTaskUpdateTime',
8
+ USER_SESSION_PREFIX: 'FatUserSession_',
9
+ USER_SESSION_ASYNC_TASK_ID_PREFIX: 'FatUserSessionAsyncTaskId_',
10
+ USER_ACTION_TIME_LIMIT_PREFIX: 'FatUserActionTimeLimit_',
11
+ VISIT_STAT_LOCK_PREFIX: 'FatVsLock_',
12
+ VISIT_STAT_DATE_PREFIX: 'FatVsDate_',
13
+ LINK_TO_CUSTOM_PREFIX: 'FatLinkToCustom@@',
14
+ CURD_MIX_BY_DICT_PREFIX: 'FatCurdMixByDict@@',
15
+ QUERY_ENUM_INFO_PREFIX: 'FatQueryEnum@@',
16
+ };
17
+ exports.RedisKeys = RedisKeys;
@@ -61,13 +61,20 @@ export interface IUpstreamInfo {
61
61
  targetList: IUpstreamItem[];
62
62
  balanceStrategy: string;
63
63
  }
64
+ export declare enum ProxyUserContextEnum {
65
+ NO_PASS = 0,
66
+ BASIC_INFO = 1,
67
+ SESSION_INFO = 2
68
+ }
64
69
  export interface IProxyApiEntity extends IApiBaseEntity {
70
+ proxy_name: string;
71
+ proxy_code: string;
65
72
  path_prefix: string;
66
73
  upstream_code: string;
67
74
  timeout_ms: number;
68
75
  status: number;
69
76
  workbench_code_array: string;
70
- user_context: number;
77
+ user_context: ProxyUserContextEnum;
71
78
  pass_real_ip: number;
72
79
  change_origin: string;
73
80
  change_host: string;
@@ -1,2 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProxyUserContextEnum = void 0;
4
+ var ProxyUserContextEnum;
5
+ (function (ProxyUserContextEnum) {
6
+ ProxyUserContextEnum[ProxyUserContextEnum["NO_PASS"] = 0] = "NO_PASS";
7
+ ProxyUserContextEnum[ProxyUserContextEnum["BASIC_INFO"] = 1] = "BASIC_INFO";
8
+ ProxyUserContextEnum[ProxyUserContextEnum["SESSION_INFO"] = 2] = "SESSION_INFO";
9
+ })(ProxyUserContextEnum = exports.ProxyUserContextEnum || (exports.ProxyUserContextEnum = {}));
@@ -1,4 +1,3 @@
1
- import { SqlDbType } from "../libs/crud-pro/models/keys";
2
1
  export declare const SystemTables: {
3
2
  sys_workbench: string;
4
3
  sys_user_account: string;
@@ -21,7 +20,6 @@ export declare const SystemTables: {
21
20
  sys_anyapi: string;
22
21
  sys_proxyapi: string;
23
22
  sys_visit_stats: string;
23
+ sys_async_tasks: string;
24
24
  };
25
- export declare const SystemDbName = "fatcms";
26
- export declare const SystemDbType = SqlDbType.mysql;
27
25
  export declare const SystemDevOpsWorkbench = "devops";
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SystemDevOpsWorkbench = exports.SystemDbType = exports.SystemDbName = exports.SystemTables = void 0;
4
- const keys_1 = require("../libs/crud-pro/models/keys");
3
+ exports.SystemDevOpsWorkbench = exports.SystemTables = void 0;
5
4
  exports.SystemTables = {
6
5
  sys_workbench: 'sys_workbench',
7
6
  sys_user_account: 'sys_user_account',
@@ -24,7 +23,6 @@ exports.SystemTables = {
24
23
  sys_anyapi: 'sys_anyapi',
25
24
  sys_proxyapi: 'sys_proxyapi',
26
25
  sys_visit_stats: 'sys_visit_stats',
26
+ sys_async_tasks: 'sys_async_tasks',
27
27
  };
28
- exports.SystemDbName = 'fatcms';
29
- exports.SystemDbType = keys_1.SqlDbType.mysql;
30
28
  exports.SystemDevOpsWorkbench = 'devops';
@@ -24,6 +24,7 @@ export interface IStdCrudCfgObj {
24
24
  toolbarList?: any[];
25
25
  }
26
26
  export interface ICrudStdAppInfo {
27
+ app_code: string;
27
28
  stdCrudCfgObj?: IStdCrudCfgObj;
28
29
  actionsMap?: any;
29
30
  status: number;
@@ -67,3 +68,30 @@ export interface IVisitorExt extends IVisitor {
67
68
  accountType: string;
68
69
  }
69
70
  export declare const FILE_GET_TYPES: string[];
71
+ /**
72
+ * fat-design中的TablePro组件的查询参数
73
+ */
74
+ export interface ITableProQueryParams {
75
+ condition: any;
76
+ pageNo: number;
77
+ pageSize: number;
78
+ orderBy: string | any;
79
+ }
80
+ export declare enum StdCrudExportInputParamsAppType {
81
+ STD_CRUD = "STD_CRUD",
82
+ INNER_HTTP = "INNER_HTTP"
83
+ }
84
+ /**
85
+ * fat-design中的TablePro组件的查询参数
86
+ */
87
+ export interface IStdCrudExportInputParams {
88
+ appType: StdCrudExportInputParamsAppType;
89
+ appCode?: string;
90
+ innerHttpUrl?: string;
91
+ columns?: any[];
92
+ lastQueryParams: ITableProQueryParams;
93
+ selectedRowKeys: string[] | number[];
94
+ headers: any;
95
+ primaryKey: any;
96
+ pageSize: number;
97
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FILE_GET_TYPES = exports.CTX_WORKBENCH_CODE = exports.CTX_VISITOR_ACCOUNT_TYPE = exports.CTX_VISITOR_NICKNAME = exports.CTX_VISITOR_AVATAR = exports.CTX_VISITOR_ID = exports.PermRole = exports.PermFunc = exports.UploadCategoryType = exports.AccessType = void 0;
3
+ exports.StdCrudExportInputParamsAppType = exports.FILE_GET_TYPES = exports.CTX_WORKBENCH_CODE = exports.CTX_VISITOR_ACCOUNT_TYPE = exports.CTX_VISITOR_NICKNAME = exports.CTX_VISITOR_AVATAR = exports.CTX_VISITOR_ID = exports.PermRole = exports.PermFunc = exports.UploadCategoryType = exports.AccessType = void 0;
4
4
  var AccessType;
5
5
  (function (AccessType) {
6
6
  AccessType["owner"] = "owner";
@@ -32,3 +32,8 @@ exports.CTX_VISITOR_NICKNAME = 'visitor.nickName';
32
32
  exports.CTX_VISITOR_ACCOUNT_TYPE = 'visitor.accountType';
33
33
  exports.CTX_WORKBENCH_CODE = 'visitor.workbenchCode';
34
34
  exports.FILE_GET_TYPES = ['thumbnail', 'preview', 'download'];
35
+ var StdCrudExportInputParamsAppType;
36
+ (function (StdCrudExportInputParamsAppType) {
37
+ StdCrudExportInputParamsAppType["STD_CRUD"] = "STD_CRUD";
38
+ StdCrudExportInputParamsAppType["INNER_HTTP"] = "INNER_HTTP";
39
+ })(StdCrudExportInputParamsAppType = exports.StdCrudExportInputParamsAppType || (exports.StdCrudExportInputParamsAppType = {}));
@@ -0,0 +1,14 @@
1
+ import * as koa from '@midwayjs/koa';
2
+ export declare type RunServiceAtAnonymousContextRunner = (ctx: koa.IMidwayKoaContext) => any;
3
+ export interface RunServiceAtAnonymousContextRes {
4
+ result: any;
5
+ error: any;
6
+ }
7
+ declare class AnonymousContext {
8
+ private app;
9
+ setApp(app: koa.Application): void;
10
+ getApp(): koa.IMidwayKoaApplication;
11
+ runServiceAtAnonymousContext(runner: RunServiceAtAnonymousContextRunner): Promise<RunServiceAtAnonymousContextRes>;
12
+ }
13
+ declare const ANONYMOUS_CONTEXT: AnonymousContext;
14
+ export { ANONYMOUS_CONTEXT };
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ANONYMOUS_CONTEXT = void 0;
4
+ const contextLogger_1 = require("../models/contextLogger");
5
+ const Transaction_1 = require("../libs/crud-pro/models/Transaction");
6
+ const userSession_1 = require("../models/userSession");
7
+ const anonymousUserInfo = {
8
+ nickName: 'anonymous_user',
9
+ avatar: '',
10
+ roleCodes: [],
11
+ functionCodes: [],
12
+ loginName: 'anonymous_user',
13
+ sessionId: '',
14
+ accountId: '',
15
+ workbenchCode: '',
16
+ accountType: userSession_1.SYS_ACCOUNT_TYPE,
17
+ };
18
+ const anonymousWorkbenchInfo = {
19
+ id: 0,
20
+ workbench_code: 'anonymous_workbench',
21
+ workbench_name: 'anonymous_workbench',
22
+ workbench_domain: 'anonymous_workbench',
23
+ workbench_desc: 'anonymous_workbench',
24
+ html_content: 'anonymous_workbench',
25
+ status: 1,
26
+ workbench_type: 0,
27
+ };
28
+ class AnonymousContext {
29
+ setApp(app) {
30
+ this.app = app;
31
+ }
32
+ getApp() {
33
+ return this.app;
34
+ }
35
+ async runServiceAtAnonymousContext(runner) {
36
+ const app = this.app;
37
+ const ctx = app.createAnonymousContext();
38
+ ctx.app = app;
39
+ ctx.contextLogger = new contextLogger_1.ContextLogger(ctx);
40
+ ctx.transaction = new Transaction_1.Transaction();
41
+ ctx.userSession = new userSession_1.UserSessionInfo(anonymousUserInfo, true);
42
+ ctx.workbenchInfo = anonymousWorkbenchInfo;
43
+ let result = null;
44
+ let error = null;
45
+ try {
46
+ result = await runner(ctx);
47
+ }
48
+ catch (e) {
49
+ error = e;
50
+ ctx.logger.error('runServiceAtAnonymousContext error ', e);
51
+ }
52
+ finally {
53
+ await ctx.transaction.releaseTx();
54
+ }
55
+ return { result: result, error: error };
56
+ }
57
+ }
58
+ const ANONYMOUS_CONTEXT = new AnonymousContext();
59
+ exports.ANONYMOUS_CONTEXT = ANONYMOUS_CONTEXT;
@@ -1,3 +1,4 @@
1
- import * as koa from '@midwayjs/koa';
2
- declare function startSchedule(app: koa.Application, serviceList: string[]): Promise<void>;
3
- export { startSchedule };
1
+ import { SCHEDULE_QUEUE, runScheduleTaskOnce } from './runSchedule';
2
+ import { ANONYMOUS_CONTEXT } from './anonymousContext';
3
+ import { INNER_SCHEDULE_INTERVAL } from './scheduleNames';
4
+ export { INNER_SCHEDULE_INTERVAL, ANONYMOUS_CONTEXT, SCHEDULE_QUEUE, runScheduleTaskOnce };
@@ -1,69 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startSchedule = void 0;
4
- const contextLogger_1 = require("../models/contextLogger");
5
- const Transaction_1 = require("../libs/crud-pro/models/Transaction");
6
- const userSession_1 = require("../models/userSession");
7
- const scheduleUserInfo = {
8
- nickName: 'schedule_user',
9
- avatar: '',
10
- roleCodes: [],
11
- functionCodes: [],
12
- loginName: 'schedule_user',
13
- sessionId: '',
14
- accountId: '',
15
- workbenchCode: '',
16
- accountType: userSession_1.SYS_ACCOUNT_TYPE,
17
- };
18
- const scheduleWorkbenchInfo = {
19
- id: 0,
20
- workbench_code: 'schedule_workbench',
21
- workbench_name: 'schedule_workbench',
22
- workbench_domain: 'schedule_workbench',
23
- workbench_desc: 'schedule_workbench',
24
- html_content: 'schedule_workbench',
25
- status: 1,
26
- workbench_type: 0,
27
- };
28
- async function runScheduleService(app, serviceName) {
29
- const ctx = app.createAnonymousContext();
30
- ctx.app = app;
31
- ctx.contextLogger = new contextLogger_1.ContextLogger(ctx);
32
- ctx.transaction = new Transaction_1.Transaction();
33
- ctx.userSession = new userSession_1.UserSessionInfo(scheduleUserInfo, true);
34
- ctx.workbenchInfo = scheduleWorkbenchInfo;
35
- try {
36
- const serviceObject = await ctx.requestContext.getAsync(serviceName);
37
- if (serviceObject && serviceObject.runBySchedule) {
38
- await serviceObject.runBySchedule();
39
- }
40
- else {
41
- ctx.logger.error(`runSchedule error , serviceName = ${serviceName}, 没有找到服务`);
42
- }
43
- }
44
- catch (e) {
45
- ctx.logger.error(`runSchedule error , serviceName = ${serviceName}`, e);
46
- }
47
- finally {
48
- await ctx.transaction.releaseTx();
49
- }
50
- }
51
- async function runSchedule(app, serviceList) {
52
- for (let i = 0; i < serviceList.length; i++) {
53
- const serviceName = serviceList[i];
54
- try {
55
- await runScheduleService(app, serviceName);
56
- }
57
- catch (e) {
58
- const ctx = app.createAnonymousContext();
59
- ctx.logger.error(`runSchedule error , serviceName = ${serviceName}`, e);
60
- }
61
- }
62
- }
63
- async function startSchedule(app, serviceList) {
64
- await runSchedule(app, serviceList);
65
- setInterval(() => {
66
- runSchedule(app, serviceList);
67
- }, 2 * 60 * 1000);
68
- }
69
- exports.startSchedule = startSchedule;
3
+ exports.runScheduleTaskOnce = exports.SCHEDULE_QUEUE = exports.ANONYMOUS_CONTEXT = exports.INNER_SCHEDULE_INTERVAL = void 0;
4
+ const runSchedule_1 = require("./runSchedule");
5
+ Object.defineProperty(exports, "SCHEDULE_QUEUE", { enumerable: true, get: function () { return runSchedule_1.SCHEDULE_QUEUE; } });
6
+ Object.defineProperty(exports, "runScheduleTaskOnce", { enumerable: true, get: function () { return runSchedule_1.runScheduleTaskOnce; } });
7
+ const anonymousContext_1 = require("./anonymousContext");
8
+ Object.defineProperty(exports, "ANONYMOUS_CONTEXT", { enumerable: true, get: function () { return anonymousContext_1.ANONYMOUS_CONTEXT; } });
9
+ const scheduleNames_1 = require("./scheduleNames");
10
+ Object.defineProperty(exports, "INNER_SCHEDULE_INTERVAL", { enumerable: true, get: function () { return scheduleNames_1.INNER_SCHEDULE_INTERVAL; } });
@@ -0,0 +1,12 @@
1
+ declare function runScheduleTaskOnce(serviceName: string): Promise<import("./anonymousContext").RunServiceAtAnonymousContextRes>;
2
+ declare class ScheduleQueue {
3
+ private scheduleIntervalMap;
4
+ setScheduleTask(serviceName: string, intervalTime: number): void;
5
+ removeScheduleTask(serviceName: string): void;
6
+ private isAlreadyTimeToExecute;
7
+ private runScheduleTaskOnceCheckTime;
8
+ private runScheduleServiceList;
9
+ startScheduleLoop(): Promise<void>;
10
+ }
11
+ declare const SCHEDULE_QUEUE: ScheduleQueue;
12
+ export { SCHEDULE_QUEUE, runScheduleTaskOnce };
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runScheduleTaskOnce = exports.SCHEDULE_QUEUE = void 0;
4
+ const anonymousContext_1 = require("./anonymousContext");
5
+ // 上次执行时间
6
+ const lastExecuteTimeMap = {};
7
+ const DEFAULT_SCHEDULE_INTERVAL = 2 * 60 * 1000;
8
+ async function runScheduleTaskOnce(serviceName) {
9
+ return await anonymousContext_1.ANONYMOUS_CONTEXT.runServiceAtAnonymousContext(async (ctx) => {
10
+ const serviceObject = await ctx.requestContext.getAsync(serviceName);
11
+ if (serviceObject && serviceObject.runBySchedule) {
12
+ await serviceObject.runBySchedule();
13
+ }
14
+ else {
15
+ ctx.logger.error(`runSchedule error , serviceName = ${serviceName}, 没有找到服务`);
16
+ }
17
+ });
18
+ }
19
+ exports.runScheduleTaskOnce = runScheduleTaskOnce;
20
+ class ScheduleQueue {
21
+ constructor() {
22
+ this.scheduleIntervalMap = new Map();
23
+ }
24
+ setScheduleTask(serviceName, intervalTime) {
25
+ this.scheduleIntervalMap.set(serviceName, intervalTime);
26
+ }
27
+ removeScheduleTask(serviceName) {
28
+ this.scheduleIntervalMap.delete(serviceName);
29
+ }
30
+ isAlreadyTimeToExecute(serviceName) {
31
+ if (!lastExecuteTimeMap[serviceName]) {
32
+ return true; // 可以执行
33
+ }
34
+ const intervalTime1 = this.scheduleIntervalMap.get(serviceName);
35
+ const intervalTime = intervalTime1 || DEFAULT_SCHEDULE_INTERVAL; // 时间间隔
36
+ const lastExecuteTime = lastExecuteTimeMap[serviceName];
37
+ return (Date.now() - lastExecuteTime) >= intervalTime;
38
+ }
39
+ async runScheduleTaskOnceCheckTime(serviceName) {
40
+ // 还没有到可以执行时间
41
+ if (!this.isAlreadyTimeToExecute(serviceName)) {
42
+ return;
43
+ }
44
+ lastExecuteTimeMap[serviceName] = Date.now();
45
+ await runScheduleTaskOnce(serviceName);
46
+ }
47
+ async runScheduleServiceList() {
48
+ const serviceListKeys = this.scheduleIntervalMap.keys();
49
+ const serviceList = [...serviceListKeys];
50
+ for (let i = 0; i < serviceList.length; i++) {
51
+ const serviceName = serviceList[i];
52
+ try {
53
+ await this.runScheduleTaskOnceCheckTime(serviceName);
54
+ }
55
+ catch (e) {
56
+ anonymousContext_1.ANONYMOUS_CONTEXT.getApp().getCoreLogger().error(`runSchedule error , serviceName = ${serviceName}`, e);
57
+ }
58
+ }
59
+ }
60
+ async startScheduleLoop() {
61
+ await this.runScheduleServiceList();
62
+ setInterval(() => {
63
+ this.runScheduleServiceList();
64
+ }, 1000); // 最少1秒执行一次
65
+ }
66
+ }
67
+ const SCHEDULE_QUEUE = new ScheduleQueue();
68
+ exports.SCHEDULE_QUEUE = SCHEDULE_QUEUE;
@@ -0,0 +1,13 @@
1
+ declare const INNER_SCHEDULE_INTERVAL: {
2
+ proxyApiLoadService: number;
3
+ workbenchService: number;
4
+ visitStatService: number;
5
+ asyncTaskRunnerService: number;
6
+ };
7
+ declare const INNER_SCHEDULE_NAMES: {
8
+ proxyApiLoadService: string;
9
+ workbenchService: string;
10
+ visitStatService: string;
11
+ asyncTaskRunnerService: string;
12
+ };
13
+ export { INNER_SCHEDULE_INTERVAL, INNER_SCHEDULE_NAMES };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INNER_SCHEDULE_NAMES = exports.INNER_SCHEDULE_INTERVAL = void 0;
4
+ const INNER_SCHEDULE_INTERVAL = {
5
+ proxyApiLoadService: 2 * 60 * 1000,
6
+ workbenchService: 60 * 1000,
7
+ visitStatService: 10 * 60 * 1000,
8
+ asyncTaskRunnerService: 1000, // 1s可以执行
9
+ };
10
+ exports.INNER_SCHEDULE_INTERVAL = INNER_SCHEDULE_INTERVAL;
11
+ const INNER_SCHEDULE_NAMES = {
12
+ proxyApiLoadService: 'proxyApiLoadService',
13
+ workbenchService: 'workbenchService',
14
+ visitStatService: "visitStatService",
15
+ asyncTaskRunnerService: "asyncTaskRunnerService",
16
+ };
17
+ exports.INNER_SCHEDULE_NAMES = INNER_SCHEDULE_NAMES;