midway-fatcms 0.0.1-beta.5 → 0.0.1-beta.50

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 (330) 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 +25 -13
  5. package/dist/config/seed/aeskey.txt +1 -1
  6. package/dist/configuration.d.ts +1 -0
  7. package/dist/configuration.js +35 -11
  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/CrudStdGatewayController.js +8 -16
  15. package/dist/controller/gateway/DocGatewayController.js +14 -9
  16. package/dist/controller/gateway/FileController.d.ts +3 -2
  17. package/dist/controller/gateway/PublicApiController.js +4 -6
  18. package/dist/controller/gateway/StaticController.d.ts +0 -1
  19. package/dist/controller/gateway/StaticController.js +40 -39
  20. package/dist/controller/helpers.controller.d.ts +1 -1
  21. package/dist/controller/home.controller.js +4 -3
  22. package/dist/controller/manage/AnyApiMangeApi.js +2 -2
  23. package/dist/controller/manage/AppLogMangeApi.js +2 -2
  24. package/dist/controller/manage/AppMangeApi.js +2 -2
  25. package/dist/controller/manage/AppPageMangeApi.js +2 -2
  26. package/dist/controller/manage/AppSchemaHistoryApi.js +2 -2
  27. package/dist/controller/manage/CrudMethodsMangeApi.js +2 -2
  28. package/dist/controller/manage/CrudStandardDesignApi.d.ts +9 -1
  29. package/dist/controller/manage/CrudStandardDesignApi.js +135 -79
  30. package/dist/controller/manage/DataDictManageApi.d.ts +1 -1
  31. package/dist/controller/manage/DataDictManageApi.js +1 -1
  32. package/dist/controller/manage/DeployManageApi.d.ts +1 -1
  33. package/dist/controller/manage/DeployManageApi.js +38 -34
  34. package/dist/controller/manage/DocLibManageApi.js +2 -2
  35. package/dist/controller/manage/DocManageApi.js +2 -2
  36. package/dist/controller/manage/FileManageApi.js +1 -1
  37. package/dist/controller/manage/LowCodeTplManageApi.js +2 -2
  38. package/dist/controller/manage/MenuManageApi.js +2 -2
  39. package/dist/controller/manage/ProxyApiMangeApi.js +2 -2
  40. package/dist/controller/manage/SuperAdminManageApi.d.ts +2 -2
  41. package/dist/controller/manage/SuperAdminManageApi.js +12 -8
  42. package/dist/controller/manage/SysConfigMangeApi.d.ts +1 -1
  43. package/dist/controller/manage/SysConfigMangeApi.js +8 -6
  44. package/dist/controller/manage/SystemInfoManageApi.d.ts +1 -1
  45. package/dist/controller/manage/SystemInfoManageApi.js +7 -1
  46. package/dist/controller/manage/UserAccountManageApi.d.ts +1 -1
  47. package/dist/controller/manage/UserAccountManageApi.js +9 -4
  48. package/dist/controller/manage/WorkbenchMangeApi.js +3 -3
  49. package/dist/controller/myinfo/AuthController.d.ts +0 -4
  50. package/dist/controller/myinfo/AuthController.js +1 -54
  51. package/dist/controller/render/AppRenderController.js +12 -5
  52. package/dist/controller/test.controller.d.ts +1 -1
  53. package/dist/controller/test.controller.js +5 -5
  54. package/dist/index.d.ts +10 -0
  55. package/dist/index.js +10 -0
  56. package/dist/libs/crud-pro/CrudPro.d.ts +1 -0
  57. package/dist/libs/crud-pro/CrudPro.js +5 -0
  58. package/dist/libs/crud-pro/defaultConfigs.js +2 -0
  59. package/dist/libs/crud-pro/interfaces.d.ts +7 -1
  60. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +12 -5
  61. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +8 -1
  62. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +8 -0
  63. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +1 -1
  64. package/dist/libs/crud-pro/models/ResModel.d.ts +16 -0
  65. package/dist/libs/crud-pro/models/ResModel.js +2 -0
  66. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +1 -1
  67. package/dist/libs/crud-pro/models/Transaction.d.ts +1 -0
  68. package/dist/libs/crud-pro/models/Transaction.js +7 -0
  69. package/dist/libs/crud-pro/models/TransactionSqlServer.js +1 -1
  70. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
  71. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +27 -15
  72. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +17 -19
  73. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
  74. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
  75. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
  76. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
  77. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
  78. package/dist/libs/crud-pro/services/CrudProServiceBase.js +15 -3
  79. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
  80. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +32 -7
  81. package/dist/libs/crud-pro/sql.txt +120 -120
  82. package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
  83. package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
  84. package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
  85. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
  86. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
  87. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
  88. package/dist/libs/global-config/global-config.d.ts +60 -0
  89. package/dist/libs/global-config/global-config.js +35 -0
  90. package/dist/libs/utils/base64.d.ts +9 -0
  91. package/dist/libs/utils/base64.js +42 -0
  92. package/dist/libs/utils/errorToString.d.ts +2 -0
  93. package/dist/libs/utils/errorToString.js +57 -0
  94. package/dist/libs/utils/fatcms-request.js +2 -2
  95. package/dist/libs/utils/functions.d.ts +2 -1
  96. package/dist/libs/utils/functions.js +12 -3
  97. package/dist/libs/utils/parseCreateSql.d.ts +6 -1
  98. package/dist/libs/utils/parseCreateSql.js +2 -1
  99. package/dist/middleware/forbidden.middleware.js +6 -22
  100. package/dist/middleware/global.middleware.js +30 -10
  101. package/dist/middleware/permission.middleware.js +1 -1
  102. package/dist/middleware/rediscache.middleware.d.ts +3 -0
  103. package/dist/middleware/rediscache.middleware.js +77 -0
  104. package/dist/middleware/redislock.middleware.d.ts +7 -0
  105. package/dist/middleware/redislock.middleware.js +72 -0
  106. package/dist/models/AsyncTaskModel.d.ts +74 -0
  107. package/dist/models/AsyncTaskModel.js +31 -0
  108. package/dist/models/RedisKeys.d.ts +15 -0
  109. package/dist/models/RedisKeys.js +18 -0
  110. package/dist/models/SystemEntities.d.ts +8 -1
  111. package/dist/models/SystemEntities.js +7 -0
  112. package/dist/models/SystemTables.d.ts +1 -3
  113. package/dist/models/SystemTables.js +2 -4
  114. package/dist/models/bizmodels.d.ts +30 -0
  115. package/dist/models/bizmodels.js +6 -1
  116. package/dist/models/userSession.d.ts +1 -0
  117. package/dist/schedule/anonymousContext.d.ts +14 -0
  118. package/dist/schedule/anonymousContext.js +59 -0
  119. package/dist/schedule/index.d.ts +4 -3
  120. package/dist/schedule/index.js +8 -67
  121. package/dist/schedule/runSchedule.d.ts +12 -0
  122. package/dist/schedule/runSchedule.js +68 -0
  123. package/dist/schedule/scheduleNames.d.ts +13 -0
  124. package/dist/schedule/scheduleNames.js +17 -0
  125. package/dist/service/AuthService.js +8 -5
  126. package/dist/service/EnumInfoService.js +9 -5
  127. package/dist/service/FileCenterService.js +13 -9
  128. package/dist/service/SysConfigService.d.ts +1 -1
  129. package/dist/service/SysConfigService.js +4 -2
  130. package/dist/service/UserAccountService.js +10 -6
  131. package/dist/service/UserSessionService.d.ts +22 -0
  132. package/dist/service/UserSessionService.js +74 -2
  133. package/dist/service/VisitStatService.d.ts +1 -1
  134. package/dist/service/VisitStatService.js +20 -27
  135. package/dist/service/WorkbenchService.d.ts +33 -0
  136. package/dist/service/WorkbenchService.js +70 -12
  137. package/dist/service/anyapi/AnyApiSandboxService.js +12 -12
  138. package/dist/service/anyapi/AnyApiService.js +4 -2
  139. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -0
  140. package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -0
  141. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
  142. package/dist/service/asyncTask/AsyncTaskService.js +34 -0
  143. package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -0
  144. package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -0
  145. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -0
  146. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -0
  147. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -0
  148. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +141 -0
  149. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -0
  150. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +135 -0
  151. package/dist/service/base/BaseService.d.ts +12 -0
  152. package/dist/service/base/BaseService.js +22 -0
  153. package/dist/service/base/RedisCacheService.d.ts +7 -0
  154. package/dist/service/base/RedisCacheService.js +7 -0
  155. package/dist/service/crudstd/CrudStdRelationService.js +63 -36
  156. package/dist/service/crudstd/CrudStdService.d.ts +21 -5
  157. package/dist/service/crudstd/CrudStdService.js +135 -21
  158. package/dist/service/curd/CrudProQuick.d.ts +44 -0
  159. package/dist/service/curd/CrudProQuick.js +147 -0
  160. package/dist/service/curd/CurdMixByAccountService.d.ts +4 -4
  161. package/dist/service/curd/CurdMixByAccountService.js +11 -6
  162. package/dist/service/curd/CurdMixByDictService.d.ts +4 -4
  163. package/dist/service/curd/CurdMixByDictService.js +10 -7
  164. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +13 -4
  165. package/dist/service/curd/CurdMixByLinkToCustomService.js +73 -24
  166. package/dist/service/curd/CurdMixBySysConfigService.d.ts +3 -3
  167. package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
  168. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +3 -3
  169. package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
  170. package/dist/service/curd/CurdMixService.d.ts +16 -5
  171. package/dist/service/curd/CurdMixService.js +26 -2
  172. package/dist/service/curd/CurdMixUtils.d.ts +27 -4
  173. package/dist/service/curd/CurdMixUtils.js +117 -41
  174. package/dist/service/curd/CurdProService.d.ts +3 -10
  175. package/dist/service/curd/CurdProService.js +38 -148
  176. package/dist/service/curd/fixCfgModel.d.ts +3 -0
  177. package/dist/service/curd/fixCfgModel.js +103 -0
  178. package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
  179. package/dist/service/proxyapi/ProxyApiService.d.ts +1 -0
  180. package/dist/service/proxyapi/ProxyApiService.js +43 -9
  181. package/dist/views/404_app.html +31 -31
  182. package/dist/views/404_workbench.html +34 -34
  183. package/package.json +28 -24
  184. package/tsconfig.json +32 -0
  185. package/src/config/config.default.ts +0 -172
  186. package/src/config/seed/aeskey.txt +0 -1
  187. package/src/config/utils.ts +0 -23
  188. package/src/configuration.ts +0 -83
  189. package/src/controller/base/BaseApiController.ts +0 -145
  190. package/src/controller/gateway/AnyApiGatewayController.ts +0 -33
  191. package/src/controller/gateway/CrudMtdGatewayController.ts +0 -107
  192. package/src/controller/gateway/CrudStdGatewayController.ts +0 -101
  193. package/src/controller/gateway/DocGatewayController.ts +0 -165
  194. package/src/controller/gateway/FileController.ts +0 -110
  195. package/src/controller/gateway/ProxyApiGatewayController.ts +0 -47
  196. package/src/controller/gateway/PublicApiController.ts +0 -145
  197. package/src/controller/gateway/StaticController.ts +0 -328
  198. package/src/controller/helpers.controller.ts +0 -161
  199. package/src/controller/home.controller.ts +0 -71
  200. package/src/controller/manage/AnyApiMangeApi.ts +0 -66
  201. package/src/controller/manage/AppLogMangeApi.ts +0 -53
  202. package/src/controller/manage/AppMangeApi.ts +0 -53
  203. package/src/controller/manage/AppPageMangeApi.ts +0 -52
  204. package/src/controller/manage/AppSchemaHistoryApi.ts +0 -49
  205. package/src/controller/manage/CrudMethodsMangeApi.ts +0 -49
  206. package/src/controller/manage/CrudStandardDesignApi.ts +0 -353
  207. package/src/controller/manage/DataDictManageApi.ts +0 -78
  208. package/src/controller/manage/DeployManageApi.ts +0 -179
  209. package/src/controller/manage/DocLibManageApi.ts +0 -69
  210. package/src/controller/manage/DocManageApi.ts +0 -99
  211. package/src/controller/manage/FileManageApi.ts +0 -45
  212. package/src/controller/manage/LowCodeTplManageApi.ts +0 -52
  213. package/src/controller/manage/MenuManageApi.ts +0 -63
  214. package/src/controller/manage/ProxyApiMangeApi.ts +0 -52
  215. package/src/controller/manage/SuperAdminManageApi.ts +0 -138
  216. package/src/controller/manage/SysConfigMangeApi.ts +0 -95
  217. package/src/controller/manage/SystemInfoManageApi.ts +0 -48
  218. package/src/controller/manage/UserAccountManageApi.ts +0 -88
  219. package/src/controller/manage/WorkbenchMangeApi.ts +0 -72
  220. package/src/controller/myinfo/AuthController.ts +0 -174
  221. package/src/controller/myinfo/MyInfoController.ts +0 -32
  222. package/src/controller/render/AppRenderController.ts +0 -76
  223. package/src/controller/test.controller.ts +0 -37
  224. package/src/filter/default.filter.ts +0 -13
  225. package/src/filter/notfound.filter.ts +0 -10
  226. package/src/index.ts +0 -99
  227. package/src/interface.ts +0 -31
  228. package/src/libs/crud-pro/CrudPro.ts +0 -158
  229. package/src/libs/crud-pro/defaultConfigs.ts +0 -13
  230. package/src/libs/crud-pro/exceptions.ts +0 -124
  231. package/src/libs/crud-pro/interfaces.ts +0 -183
  232. package/src/libs/crud-pro/models/ExecuteContext.ts +0 -111
  233. package/src/libs/crud-pro/models/ExecuteContextFunc.ts +0 -86
  234. package/src/libs/crud-pro/models/FuncContext.ts +0 -21
  235. package/src/libs/crud-pro/models/RequestCfgModel.ts +0 -141
  236. package/src/libs/crud-pro/models/RequestModel.ts +0 -141
  237. package/src/libs/crud-pro/models/ServiceHub.ts +0 -32
  238. package/src/libs/crud-pro/models/SqlCfgModel.ts +0 -52
  239. package/src/libs/crud-pro/models/SqlSegArg.ts +0 -13
  240. package/src/libs/crud-pro/models/Transaction.ts +0 -74
  241. package/src/libs/crud-pro/models/TransactionMySQL.ts +0 -79
  242. package/src/libs/crud-pro/models/TransactionPostgres.ts +0 -91
  243. package/src/libs/crud-pro/models/TransactionSqlServer.ts +0 -107
  244. package/src/libs/crud-pro/models/keys.ts +0 -159
  245. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +0 -75
  246. package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +0 -128
  247. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +0 -279
  248. package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +0 -60
  249. package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +0 -180
  250. package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +0 -373
  251. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +0 -202
  252. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +0 -397
  253. package/src/libs/crud-pro/services/CrudProServiceBase.ts +0 -98
  254. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +0 -59
  255. package/src/libs/crud-pro/services/CurdProServiceHub.ts +0 -92
  256. package/src/libs/crud-pro/sql.txt +0 -120
  257. package/src/libs/crud-pro/utils/CompareUtils.ts +0 -23
  258. package/src/libs/crud-pro/utils/DatabaseName.ts +0 -40
  259. package/src/libs/crud-pro/utils/DateTimeUtils.ts +0 -20
  260. package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +0 -64
  261. package/src/libs/crud-pro/utils/MessageParseUtils.ts +0 -33
  262. package/src/libs/crud-pro/utils/MixinUtils.ts +0 -285
  263. package/src/libs/crud-pro/utils/ModelUtils.ts +0 -55
  264. package/src/libs/crud-pro/utils/MultiKeyMap.ts +0 -72
  265. package/src/libs/crud-pro/utils/SqlFuncUtils.ts +0 -29
  266. package/src/libs/crud-pro/utils/TypeUtils.ts +0 -188
  267. package/src/libs/crud-pro/utils/ValidateUtils.ts +0 -167
  268. package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +0 -20
  269. package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +0 -22
  270. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +0 -22
  271. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +0 -26
  272. package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +0 -11
  273. package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +0 -11
  274. package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +0 -129
  275. package/src/libs/utils/common-dto.ts +0 -52
  276. package/src/libs/utils/crypto-utils.ts +0 -52
  277. package/src/libs/utils/fatcms-request.ts +0 -115
  278. package/src/libs/utils/functions.ts +0 -67
  279. package/src/libs/utils/ordernum-utils.ts +0 -18
  280. package/src/libs/utils/parseConfig.ts +0 -62
  281. package/src/libs/utils/parseCreateSql.ts +0 -91
  282. package/src/libs/utils/render-utils.ts +0 -184
  283. package/src/middleware/forbidden.middleware.ts +0 -71
  284. package/src/middleware/global.middleware.ts +0 -278
  285. package/src/middleware/permission.middleware.ts +0 -81
  286. package/src/middleware/tx.middleware.ts +0 -30
  287. package/src/models/SystemEntities.ts +0 -115
  288. package/src/models/SystemPerm.ts +0 -105
  289. package/src/models/SystemTables.ts +0 -30
  290. package/src/models/bizmodels.ts +0 -89
  291. package/src/models/contextLogger.ts +0 -132
  292. package/src/models/devops.ts +0 -17
  293. package/src/models/userSession.ts +0 -216
  294. package/src/schedule/index.ts +0 -73
  295. package/src/service/AuthService.ts +0 -270
  296. package/src/service/EnumInfoService.ts +0 -129
  297. package/src/service/FileCenterService.ts +0 -394
  298. package/src/service/SysConfigService.ts +0 -34
  299. package/src/service/UserAccountService.ts +0 -100
  300. package/src/service/UserSessionService.ts +0 -81
  301. package/src/service/VisitStatService.ts +0 -179
  302. package/src/service/WorkbenchService.ts +0 -160
  303. package/src/service/anyapi/AnyApiSandboxService.ts +0 -121
  304. package/src/service/anyapi/AnyApiService.ts +0 -184
  305. package/src/service/base/ApiBaseService.ts +0 -42
  306. package/src/service/base/ApiRateLimiter.ts +0 -59
  307. package/src/service/base/BaseService.ts +0 -74
  308. package/src/service/base/RedisCacheService.ts +0 -38
  309. package/src/service/crudstd/CrudStdActionService.ts +0 -27
  310. package/src/service/crudstd/CrudStdConstant.ts +0 -62
  311. package/src/service/crudstd/CrudStdRelationService.ts +0 -78
  312. package/src/service/crudstd/CrudStdService.ts +0 -188
  313. package/src/service/curd/CurdMixByAccountService.ts +0 -83
  314. package/src/service/curd/CurdMixByDictService.ts +0 -113
  315. package/src/service/curd/CurdMixByLinkToCustomService.ts +0 -167
  316. package/src/service/curd/CurdMixBySysConfigService.ts +0 -78
  317. package/src/service/curd/CurdMixByWorkbenchService.ts +0 -68
  318. package/src/service/curd/CurdMixService.ts +0 -65
  319. package/src/service/curd/CurdMixUtils.ts +0 -248
  320. package/src/service/curd/CurdProService.ts +0 -379
  321. package/src/service/proxyapi/ProxyApiLoadService.ts +0 -165
  322. package/src/service/proxyapi/ProxyApiService.ts +0 -262
  323. package/src/service/proxyapi/ProxyApiUtils.ts +0 -32
  324. package/src/service/proxyapi/RouteHandler.ts +0 -8
  325. package/src/service/proxyapi/RouteTrie.ts +0 -74
  326. package/src/service/proxyapi/WeightedRandom.ts +0 -37
  327. package/src/service/proxyapi/WeightedRoundRobin.ts +0 -44
  328. package/src/views/404_app.html +0 -31
  329. package/src/views/404_workbench.html +0 -34
  330. package/src/views/static/favicon.ico +0 -0
@@ -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;
@@ -22,6 +22,7 @@ const UserSessionService_1 = require("./UserSessionService");
22
22
  const common_dto_1 = require("../libs/utils/common-dto");
23
23
  const fatcms_request_1 = require("../libs/utils/fatcms-request");
24
24
  const exceptions_1 = require("../libs/crud-pro/exceptions");
25
+ const global_config_1 = require("../libs/global-config/global-config");
25
26
  let AuthService = class AuthService {
26
27
  /**
27
28
  * 明文密码转unsaltedPwd密码
@@ -116,7 +117,7 @@ let AuthService = class AuthService {
116
117
  sessionId,
117
118
  accountId,
118
119
  workbenchCode,
119
- accountType: userSession_1.SYS_ACCOUNT_TYPE
120
+ accountType: userSession_1.SYS_ACCOUNT_TYPE,
120
121
  };
121
122
  await this.userSessionService.saveUserSession(sessionInfo);
122
123
  return {
@@ -171,14 +172,15 @@ let AuthService = class AuthService {
171
172
  * @private
172
173
  */
173
174
  async queryUserRoleCodeList(accountId) {
175
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
174
176
  const res = await this.curdMixService.executeCrudByCfg({
175
177
  condition: { account_id: accountId },
176
178
  limit: 10000,
177
179
  }, {
178
180
  sqlTable: SystemTables_1.SystemTables.sys_perm_user_role,
179
181
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
180
- sqlDatabase: SystemTables_1.SystemDbName,
181
- sqlDdType: SystemTables_1.SystemDbType,
182
+ sqlDatabase: SystemDbName,
183
+ sqlDbType: SystemDbType,
182
184
  });
183
185
  const rows = res.getResModel().rows || [];
184
186
  const roleCodes = rows.map(({ role_code }) => {
@@ -195,14 +197,15 @@ let AuthService = class AuthService {
195
197
  if (!roleCodeList || roleCodeList.length === 0) {
196
198
  return [];
197
199
  }
200
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
198
201
  const res = await this.curdMixService.executeCrudByCfg({
199
202
  condition: { role_code: { $in: roleCodeList } },
200
203
  limit: 10000,
201
204
  }, {
202
205
  sqlTable: SystemTables_1.SystemTables.sys_perm_role_func,
203
206
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
204
- sqlDatabase: SystemTables_1.SystemDbName,
205
- sqlDdType: SystemTables_1.SystemDbType,
207
+ sqlDatabase: SystemDbName,
208
+ sqlDbType: SystemDbType,
206
209
  });
207
210
  const rows = res.getResModel().rows || [];
208
211
  const funcCodes = rows.map(({ func_code }) => {
@@ -18,6 +18,8 @@ const SystemTables_1 = require("../models/SystemTables");
18
18
  const parseConfig_1 = require("../libs/utils/parseConfig");
19
19
  const RedisCacheService_1 = require("./base/RedisCacheService");
20
20
  const CurdMixByLinkToCustomService_1 = require("./curd/CurdMixByLinkToCustomService");
21
+ const global_config_1 = require("../libs/global-config/global-config");
22
+ const RedisKeys_1 = require("../models/RedisKeys");
21
23
  function filterEmpty(e) {
22
24
  return e.label && typeof e.value !== 'undefined';
23
25
  }
@@ -27,7 +29,7 @@ let EnumInfoService = class EnumInfoService {
27
29
  const result = [];
28
30
  for (let i = 0; i < codeList.length; i++) {
29
31
  const { code, type } = codeList[i];
30
- const cacheKey = `enums@@${type}@@${code}`;
32
+ const cacheKey = `${RedisKeys_1.RedisKeys.QUERY_ENUM_INFO_PREFIX}${type}@@${code}`;
31
33
  const emums = refreshCache ? null : await this.redisCacheService.getJsonObject(cacheKey);
32
34
  if (!Array.isArray(emums) || emums.length === 0) {
33
35
  let values;
@@ -70,13 +72,14 @@ let EnumInfoService = class EnumInfoService {
70
72
  });
71
73
  }
72
74
  async queryEnumInfoBySysCfgEnum(code) {
75
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
73
76
  const res1 = await this.curdProService.executeCrudByCfg({
74
77
  condition: { config_code: code },
75
78
  }, {
76
79
  sqlTable: SystemTables_1.SystemTables.sys_configs,
77
80
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
78
- sqlDatabase: SystemTables_1.SystemDbName,
79
- sqlDdType: SystemTables_1.SystemDbType,
81
+ sqlDatabase: SystemDbName,
82
+ sqlDbType: SystemDbType,
80
83
  });
81
84
  const obj = res1.getOneObj();
82
85
  if (!obj) {
@@ -86,13 +89,14 @@ let EnumInfoService = class EnumInfoService {
86
89
  return rows.map(e => ({ label: e.label, value: e.value, children: e.children })).filter(filterEmpty);
87
90
  }
88
91
  async queryEnumInfoItemByDict(code) {
92
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
89
93
  const res1 = await this.curdProService.executeCrudByCfg({
90
94
  condition: { dict_code: code },
91
95
  }, {
92
96
  sqlTable: SystemTables_1.SystemTables.sys_data_dict_item,
93
97
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
94
- sqlDatabase: SystemTables_1.SystemDbName,
95
- sqlDdType: SystemTables_1.SystemDbType,
98
+ sqlDatabase: SystemDbName,
99
+ sqlDbType: SystemDbType,
96
100
  });
97
101
  const obj = res1.getResRows();
98
102
  if (!obj) {
@@ -20,7 +20,7 @@ const CurdMixService_1 = require("./curd/CurdMixService");
20
20
  const keys_1 = require("../libs/crud-pro/models/keys");
21
21
  const bizmodels_1 = require("../models/bizmodels");
22
22
  const BaseService_1 = require("./base/BaseService");
23
- const SystemTables_1 = require("../models/SystemTables");
23
+ const global_config_1 = require("../libs/global-config/global-config");
24
24
  function getSuffix(s) {
25
25
  if (s) {
26
26
  const indexOf = s.lastIndexOf('.');
@@ -93,12 +93,13 @@ class FileDB {
93
93
  this.curdMixService = curdMixService;
94
94
  }
95
95
  async getFileInfo(fileKey) {
96
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
96
97
  const condition = { file_key: fileKey };
97
98
  const cfgModel = {
98
99
  sqlTable: 'sys_file',
99
100
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
100
- sqlDatabase: SystemTables_1.SystemDbName,
101
- sqlDdType: SystemTables_1.SystemDbType,
101
+ sqlDatabase: SystemDbName,
102
+ sqlDbType: SystemDbType,
102
103
  validateCfg: {
103
104
  'condition.file_key': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.STRING],
104
105
  },
@@ -107,11 +108,12 @@ class FileDB {
107
108
  return res.getOneObj();
108
109
  }
109
110
  async saveFileInfo(fileInfo) {
111
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
110
112
  const cfgModel = {
111
113
  sqlTable: 'sys_file',
112
114
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
113
- sqlDatabase: SystemTables_1.SystemDbName,
114
- sqlDdType: SystemTables_1.SystemDbType,
115
+ sqlDatabase: SystemDbName,
116
+ sqlDbType: SystemDbType,
115
117
  };
116
118
  return await this.curdMixService.executeCrudByCfg({
117
119
  data: fileInfo,
@@ -121,20 +123,22 @@ class FileDB {
121
123
  }, cfgModel);
122
124
  }
123
125
  async saveAssetsLog(fileInfo) {
126
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
124
127
  const cfgModel = {
125
128
  sqlTable: 'sys_assets_log',
126
129
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
127
- sqlDatabase: SystemTables_1.SystemDbName,
128
- sqlDdType: SystemTables_1.SystemDbType,
130
+ sqlDatabase: SystemDbName,
131
+ sqlDbType: SystemDbType,
129
132
  };
130
133
  return await this.curdMixService.executeCrudByCfg({ data: fileInfo }, cfgModel);
131
134
  }
132
135
  async deleteFileInfo(id) {
136
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
133
137
  const cfgModel = {
134
138
  sqlTable: 'sys_file',
135
139
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_DELETE,
136
- sqlDatabase: SystemTables_1.SystemDbName,
137
- sqlDdType: SystemTables_1.SystemDbType,
140
+ sqlDatabase: SystemDbName,
141
+ sqlDbType: SystemDbType,
138
142
  validateCfg: {
139
143
  'condition.id': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.NUMBER],
140
144
  },
@@ -1,5 +1,5 @@
1
1
  import { Context } from '@midwayjs/koa';
2
- import { BaseService } from "./base/BaseService";
2
+ import { BaseService } from './base/BaseService';
3
3
  export declare class SysConfigService extends BaseService {
4
4
  ctx: Context;
5
5
  private curdProService;
@@ -15,18 +15,20 @@ const keys_1 = require("../libs/crud-pro/models/keys");
15
15
  const SystemTables_1 = require("../models/SystemTables");
16
16
  const BaseService_1 = require("./base/BaseService");
17
17
  const CurdProService_1 = require("./curd/CurdProService");
18
+ const global_config_1 = require("../libs/global-config/global-config");
18
19
  let SysConfigService = class SysConfigService extends BaseService_1.BaseService {
19
20
  async getSysConfigOne(config_code) {
20
21
  if (!config_code) {
21
22
  throw new Error('[getSysConfigOne] config_code required');
22
23
  }
24
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
23
25
  const res1 = await this.curdProService.executeCrudByCfg({
24
26
  condition: { config_code },
25
27
  }, {
26
28
  sqlTable: SystemTables_1.SystemTables.sys_configs,
27
29
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
28
- sqlDatabase: SystemTables_1.SystemDbName,
29
- sqlDdType: SystemTables_1.SystemDbType,
30
+ sqlDatabase: SystemDbName,
31
+ sqlDbType: SystemDbType,
30
32
  });
31
33
  return res1.getOneObj();
32
34
  }
@@ -18,20 +18,22 @@ const functions_1 = require("../libs/utils/functions");
18
18
  const exceptions_1 = require("../libs/crud-pro/exceptions");
19
19
  const SystemTables_1 = require("../models/SystemTables");
20
20
  const common_dto_1 = require("../libs/utils/common-dto");
21
+ const global_config_1 = require("../libs/global-config/global-config");
21
22
  let UserAccountService = class UserAccountService {
22
23
  /**
23
24
  * 查询用户: 根据loginName查询
24
25
  * @param loginName
25
26
  */
26
27
  async queryUserAccountByLoginName(loginName) {
28
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
27
29
  const query = await this.curdMixService.executeCrudByCfg({
28
30
  condition: { login_name: loginName },
29
31
  }, {
30
32
  method: 'UserAccountService.queryUserAccountByLoginName',
31
33
  sqlTable: SystemTables_1.SystemTables.sys_user_account,
32
34
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
33
- sqlDatabase: SystemTables_1.SystemDbName,
34
- sqlDdType: SystemTables_1.SystemDbType,
35
+ sqlDatabase: SystemDbName,
36
+ sqlDbType: SystemDbType,
35
37
  });
36
38
  const { row } = query.getResModel();
37
39
  return row;
@@ -45,6 +47,7 @@ let UserAccountService = class UserAccountService {
45
47
  if (!accountIdList || accountIdList.length === 0) {
46
48
  return [];
47
49
  }
50
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
48
51
  const accountIds = accountIdList.map(userId => {
49
52
  return `${userId}`;
50
53
  });
@@ -52,8 +55,8 @@ let UserAccountService = class UserAccountService {
52
55
  method: 'UserAccountService.queryAccountBasicInfoByIds',
53
56
  sqlTable: SystemTables_1.SystemTables.sys_user_account,
54
57
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
55
- sqlDatabase: SystemTables_1.SystemDbName,
56
- sqlDdType: SystemTables_1.SystemDbType,
58
+ sqlDatabase: SystemDbName,
59
+ sqlDbType: SystemDbType,
57
60
  };
58
61
  const reqJson = {
59
62
  columns: columns,
@@ -75,6 +78,7 @@ let UserAccountService = class UserAccountService {
75
78
  if (!loginName) {
76
79
  throw new exceptions_1.CommonException(exceptions_1.Exceptions.OTHER_EXCEPTION, 'loginName不存在');
77
80
  }
81
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
78
82
  const pwd_salt = (0, functions_1.createUniqueId)();
79
83
  const pwd_md5 = md5(unsaltedPwd + pwd_salt);
80
84
  const res1 = await this.curdMixService.executeCrudByCfg({
@@ -83,8 +87,8 @@ let UserAccountService = class UserAccountService {
83
87
  }, {
84
88
  sqlTable: SystemTables_1.SystemTables.sys_user_account,
85
89
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE,
86
- sqlDatabase: SystemTables_1.SystemDbName,
87
- sqlDdType: SystemTables_1.SystemDbType,
90
+ sqlDatabase: SystemDbName,
91
+ sqlDbType: SystemDbType,
88
92
  });
89
93
  return common_dto_1.CommonResult.successRes(res1.getResModel());
90
94
  }
@@ -2,13 +2,35 @@ import { ISessionInfo } from '../models/userSession';
2
2
  export declare class UserSessionService {
3
3
  private ctx;
4
4
  private redisCacheService;
5
+ private curdProService;
6
+ private fatcmsUserSessionKeepTimeSecond;
7
+ /**
8
+ * 获取用户会话保持时间: 单位秒
9
+ * @returns
10
+ */
11
+ private getSessionKeepTimeSecond;
12
+ /**
13
+ * 保存用户会话信息。
14
+ * 用户登录后,在业务的项目中,可以调用此函数,更新bizExt字段
15
+ * @param sessionInfo
16
+ */
5
17
  saveUserSession(sessionInfo: ISessionInfo): Promise<void>;
6
18
  /**
7
19
  * 移除Session
8
20
  * @param sessionId
9
21
  */
10
22
  removeUserSession(sessionId: string): Promise<any>;
23
+ /**
24
+ * 获取用户会话信息
25
+ * @param sessionId
26
+ * @returns
27
+ */
11
28
  private getCurrentUserSessionForMiddleware1;
29
+ /**
30
+ * 从异步任务队列中获取当时用户的Session信息
31
+ * @param asyncTaskId
32
+ */
33
+ private getCurrentUserSessionByAsyncTaskId;
12
34
  /**
13
35
  * 专门给中间件点调用的
14
36
  */
@@ -14,6 +14,12 @@ const core_1 = require("@midwayjs/core");
14
14
  const functions_1 = require("../libs/utils/functions");
15
15
  const userSession_1 = require("../models/userSession");
16
16
  const RedisCacheService_1 = require("./base/RedisCacheService");
17
+ const RedisKeys_1 = require("../models/RedisKeys");
18
+ const AsyncTaskModel_1 = require("../models/AsyncTaskModel");
19
+ const CurdProService_1 = require("./curd/CurdProService");
20
+ const keys_1 = require("../libs/crud-pro/models/keys");
21
+ const SystemTables_1 = require("../models/SystemTables");
22
+ const global_config_1 = require("../libs/global-config/global-config");
17
23
  function pickUserAvatar(avatar) {
18
24
  if (!avatar) {
19
25
  return null;
@@ -41,13 +47,29 @@ function pickUserAvatar(avatar) {
41
47
  }
42
48
  const SESSION_KEEP_TIME_SECOND = 3600 * 24 * 30;
43
49
  const toCacheKey = (sessionId) => {
44
- return `UserSession@@${sessionId}`;
50
+ return `${RedisKeys_1.RedisKeys.USER_SESSION_PREFIX}${sessionId}`;
45
51
  };
46
52
  let UserSessionService = class UserSessionService {
53
+ /**
54
+ * 获取用户会话保持时间: 单位秒
55
+ * @returns
56
+ */
57
+ getSessionKeepTimeSecond() {
58
+ if (typeof this.fatcmsUserSessionKeepTimeSecond === 'number' && this.fatcmsUserSessionKeepTimeSecond > 0) {
59
+ return this.fatcmsUserSessionKeepTimeSecond;
60
+ }
61
+ return SESSION_KEEP_TIME_SECOND;
62
+ }
63
+ /**
64
+ * 保存用户会话信息。
65
+ * 用户登录后,在业务的项目中,可以调用此函数,更新bizExt字段
66
+ * @param sessionInfo
67
+ */
47
68
  async saveUserSession(sessionInfo) {
48
69
  sessionInfo.avatar = pickUserAvatar(sessionInfo.avatar);
49
70
  const sessionId = sessionInfo.sessionId;
50
- await this.redisCacheService.setJsonObject(toCacheKey(sessionId), sessionInfo, SESSION_KEEP_TIME_SECOND);
71
+ const keepTime = this.getSessionKeepTimeSecond();
72
+ await this.redisCacheService.setJsonObject(toCacheKey(sessionId), sessionInfo, keepTime);
51
73
  }
52
74
  /**
53
75
  * 移除Session
@@ -56,16 +78,58 @@ let UserSessionService = class UserSessionService {
56
78
  async removeUserSession(sessionId) {
57
79
  return await this.redisCacheService.removeItem(toCacheKey(sessionId));
58
80
  }
81
+ /**
82
+ * 获取用户会话信息
83
+ * @param sessionId
84
+ * @returns
85
+ */
59
86
  async getCurrentUserSessionForMiddleware1(sessionId) {
60
87
  if (!sessionId) {
61
88
  return null;
62
89
  }
63
90
  return await this.redisCacheService.getJsonObject(toCacheKey(sessionId));
64
91
  }
92
+ /**
93
+ * 从异步任务队列中获取当时用户的Session信息
94
+ * @param asyncTaskId
95
+ */
96
+ async getCurrentUserSessionByAsyncTaskId(asyncTaskId) {
97
+ const taskSessionCacheKey = `${RedisKeys_1.RedisKeys.USER_SESSION_ASYNC_TASK_ID_PREFIX}${asyncTaskId}`;
98
+ const loadSessionInfo = async () => {
99
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
100
+ const asyncTaskRes = await this.curdProService.executeCrudByCfg({
101
+ columns: ['id', 'created_user_session'],
102
+ condition: {
103
+ id: asyncTaskId,
104
+ }
105
+ }, {
106
+ sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
107
+ sqlTable: SystemTables_1.SystemTables.sys_async_tasks,
108
+ sqlDatabase: SystemDbName,
109
+ sqlDbType: SystemDbType,
110
+ });
111
+ const asyncTaskObj = asyncTaskRes.getOneObj();
112
+ if (!asyncTaskObj) {
113
+ return null;
114
+ }
115
+ return (0, functions_1.parseJsonObject)(asyncTaskObj.created_user_session);
116
+ };
117
+ let sessionInfo1 = await this.redisCacheService.getJsonObject(taskSessionCacheKey);
118
+ if (!sessionInfo1) {
119
+ sessionInfo1 = await loadSessionInfo();
120
+ await this.redisCacheService.setJsonObject(taskSessionCacheKey, sessionInfo1, 3600); // 只缓存一小时即可
121
+ }
122
+ return sessionInfo1;
123
+ }
65
124
  /**
66
125
  * 专门给中间件点调用的
67
126
  */
68
127
  async getCurrentUserSessionForMiddleware() {
128
+ // 先从Header中获取:异步任务队列的任务ID
129
+ const asyncTaskId = this.ctx.headers[AsyncTaskModel_1.HEADER_KEY_RUN_BY_ASYNC_TASK_ID];
130
+ if (asyncTaskId && typeof asyncTaskId === 'string') {
131
+ return this.getCurrentUserSessionByAsyncTaskId(asyncTaskId);
132
+ }
69
133
  const cookies = this.ctx.cookies;
70
134
  const sessionId = cookies.get(userSession_1.SESSION_ID_KEY, userSession_1.sessionCookieCfg);
71
135
  return this.getCurrentUserSessionForMiddleware1(sessionId);
@@ -79,6 +143,14 @@ __decorate([
79
143
  (0, core_1.Inject)(),
80
144
  __metadata("design:type", RedisCacheService_1.RedisCacheService)
81
145
  ], UserSessionService.prototype, "redisCacheService", void 0);
146
+ __decorate([
147
+ (0, core_1.Inject)(),
148
+ __metadata("design:type", CurdProService_1.CurdProService)
149
+ ], UserSessionService.prototype, "curdProService", void 0);
150
+ __decorate([
151
+ (0, core_1.Config)('fatcmsUserSessionKeepTimeSecond'),
152
+ __metadata("design:type", Number)
153
+ ], UserSessionService.prototype, "fatcmsUserSessionKeepTimeSecond", void 0);
82
154
  UserSessionService = __decorate([
83
155
  (0, core_1.Provide)()
84
156
  ], UserSessionService);
@@ -1,6 +1,6 @@
1
1
  import { Context } from '@midwayjs/koa';
2
2
  import { IScheduleService } from '../interface';
3
- import { BaseService } from "./base/BaseService";
3
+ import { BaseService } from './base/BaseService';
4
4
  export declare class VisitStatService extends BaseService implements IScheduleService {
5
5
  protected ctx: Context;
6
6
  private curdProService;