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

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 (331) 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/TransactionSqlServer.js +1 -1
  67. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
  68. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +27 -15
  69. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +17 -19
  70. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
  71. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
  72. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
  73. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
  74. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
  75. package/dist/libs/crud-pro/services/CrudProServiceBase.js +15 -3
  76. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
  77. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +32 -7
  78. package/dist/libs/crud-pro/sql.txt +120 -120
  79. package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
  80. package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
  81. package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
  82. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
  83. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
  84. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
  85. package/dist/libs/global-config/global-config.d.ts +45 -0
  86. package/dist/libs/global-config/global-config.js +33 -0
  87. package/dist/libs/utils/errorToString.d.ts +2 -0
  88. package/dist/libs/utils/errorToString.js +57 -0
  89. package/dist/libs/utils/fatcms-request.js +2 -2
  90. package/dist/libs/utils/functions.d.ts +2 -1
  91. package/dist/libs/utils/functions.js +6 -1
  92. package/dist/middleware/forbidden.middleware.js +4 -20
  93. package/dist/middleware/global.middleware.js +30 -10
  94. package/dist/middleware/permission.middleware.js +1 -1
  95. package/dist/models/AsyncTaskModel.d.ts +74 -0
  96. package/dist/models/AsyncTaskModel.js +31 -0
  97. package/dist/models/RedisKeys.d.ts +14 -0
  98. package/dist/models/RedisKeys.js +17 -0
  99. package/dist/models/SystemEntities.d.ts +8 -1
  100. package/dist/models/SystemEntities.js +7 -0
  101. package/dist/models/SystemTables.d.ts +1 -3
  102. package/dist/models/SystemTables.js +2 -4
  103. package/dist/models/bizmodels.d.ts +28 -0
  104. package/dist/models/bizmodels.js +6 -1
  105. package/dist/schedule/anonymousContext.d.ts +14 -0
  106. package/dist/schedule/anonymousContext.js +59 -0
  107. package/dist/schedule/index.d.ts +4 -3
  108. package/dist/schedule/index.js +8 -67
  109. package/dist/schedule/runSchedule.d.ts +12 -0
  110. package/dist/schedule/runSchedule.js +68 -0
  111. package/dist/schedule/scheduleNames.d.ts +13 -0
  112. package/dist/schedule/scheduleNames.js +17 -0
  113. package/dist/service/AuthService.js +8 -5
  114. package/dist/service/EnumInfoService.js +9 -5
  115. package/dist/service/FileCenterService.js +13 -9
  116. package/dist/service/SysConfigService.d.ts +1 -1
  117. package/dist/service/SysConfigService.js +4 -2
  118. package/dist/service/UserAccountService.js +10 -6
  119. package/dist/service/UserSessionService.d.ts +21 -0
  120. package/dist/service/UserSessionService.js +73 -2
  121. package/dist/service/VisitStatService.d.ts +1 -1
  122. package/dist/service/VisitStatService.js +20 -27
  123. package/dist/service/WorkbenchService.d.ts +33 -0
  124. package/dist/service/WorkbenchService.js +70 -12
  125. package/dist/service/anyapi/AnyApiSandboxService.js +12 -12
  126. package/dist/service/anyapi/AnyApiService.js +4 -2
  127. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -0
  128. package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -0
  129. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
  130. package/dist/service/asyncTask/AsyncTaskService.js +34 -0
  131. package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -0
  132. package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -0
  133. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -0
  134. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -0
  135. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -0
  136. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +139 -0
  137. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -0
  138. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +121 -0
  139. package/dist/service/base/BaseService.d.ts +12 -0
  140. package/dist/service/base/BaseService.js +22 -0
  141. package/dist/service/base/RedisCacheService.d.ts +7 -0
  142. package/dist/service/base/RedisCacheService.js +7 -0
  143. package/dist/service/crudstd/CrudStdService.d.ts +8 -1
  144. package/dist/service/crudstd/CrudStdService.js +63 -6
  145. package/dist/service/curd/CrudProQuick.d.ts +44 -0
  146. package/dist/service/curd/CrudProQuick.js +147 -0
  147. package/dist/service/curd/CurdMixByAccountService.d.ts +4 -4
  148. package/dist/service/curd/CurdMixByAccountService.js +12 -6
  149. package/dist/service/curd/CurdMixByDictService.d.ts +4 -4
  150. package/dist/service/curd/CurdMixByDictService.js +10 -7
  151. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +13 -4
  152. package/dist/service/curd/CurdMixByLinkToCustomService.js +73 -24
  153. package/dist/service/curd/CurdMixBySysConfigService.d.ts +3 -3
  154. package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
  155. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +3 -3
  156. package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
  157. package/dist/service/curd/CurdMixService.d.ts +13 -3
  158. package/dist/service/curd/CurdMixService.js +26 -2
  159. package/dist/service/curd/CurdMixUtils.d.ts +27 -4
  160. package/dist/service/curd/CurdMixUtils.js +115 -41
  161. package/dist/service/curd/CurdProService.d.ts +3 -10
  162. package/dist/service/curd/CurdProService.js +36 -148
  163. package/dist/service/curd/fixCfgModel.d.ts +3 -0
  164. package/dist/service/curd/fixCfgModel.js +107 -0
  165. package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
  166. package/dist/service/proxyapi/ProxyApiService.js +28 -7
  167. package/dist/views/404_app.html +31 -31
  168. package/dist/views/404_workbench.html +34 -34
  169. package/package.json +25 -24
  170. package/tsconfig.json +32 -0
  171. package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
  172. package/dist/controller/medstatistic/MedAdminController.js +0 -205
  173. package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
  174. package/dist/controller/medstatistic/MedClientController.js +0 -188
  175. package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
  176. package/dist/controller/medstatistic/MedMessageService.js +0 -95
  177. package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
  178. package/dist/controller/medstatistic/MedScoreService.js +0 -107
  179. package/dist/controller/medstatistic/constants.d.ts +0 -32
  180. package/dist/controller/medstatistic/constants.js +0 -43
  181. package/src/config/config.default.ts +0 -172
  182. package/src/config/seed/aeskey.txt +0 -1
  183. package/src/config/utils.ts +0 -23
  184. package/src/configuration.ts +0 -83
  185. package/src/controller/base/BaseApiController.ts +0 -145
  186. package/src/controller/gateway/AnyApiGatewayController.ts +0 -33
  187. package/src/controller/gateway/CrudMtdGatewayController.ts +0 -107
  188. package/src/controller/gateway/CrudStdGatewayController.ts +0 -101
  189. package/src/controller/gateway/DocGatewayController.ts +0 -165
  190. package/src/controller/gateway/FileController.ts +0 -110
  191. package/src/controller/gateway/ProxyApiGatewayController.ts +0 -47
  192. package/src/controller/gateway/PublicApiController.ts +0 -145
  193. package/src/controller/gateway/StaticController.ts +0 -328
  194. package/src/controller/helpers.controller.ts +0 -161
  195. package/src/controller/home.controller.ts +0 -71
  196. package/src/controller/manage/AnyApiMangeApi.ts +0 -66
  197. package/src/controller/manage/AppLogMangeApi.ts +0 -53
  198. package/src/controller/manage/AppMangeApi.ts +0 -53
  199. package/src/controller/manage/AppPageMangeApi.ts +0 -52
  200. package/src/controller/manage/AppSchemaHistoryApi.ts +0 -49
  201. package/src/controller/manage/CrudMethodsMangeApi.ts +0 -49
  202. package/src/controller/manage/CrudStandardDesignApi.ts +0 -353
  203. package/src/controller/manage/DataDictManageApi.ts +0 -78
  204. package/src/controller/manage/DeployManageApi.ts +0 -179
  205. package/src/controller/manage/DocLibManageApi.ts +0 -69
  206. package/src/controller/manage/DocManageApi.ts +0 -99
  207. package/src/controller/manage/FileManageApi.ts +0 -45
  208. package/src/controller/manage/LowCodeTplManageApi.ts +0 -52
  209. package/src/controller/manage/MenuManageApi.ts +0 -63
  210. package/src/controller/manage/ProxyApiMangeApi.ts +0 -52
  211. package/src/controller/manage/SuperAdminManageApi.ts +0 -138
  212. package/src/controller/manage/SysConfigMangeApi.ts +0 -95
  213. package/src/controller/manage/SystemInfoManageApi.ts +0 -48
  214. package/src/controller/manage/UserAccountManageApi.ts +0 -88
  215. package/src/controller/manage/WorkbenchMangeApi.ts +0 -72
  216. package/src/controller/medstatistic/MedAdminController.ts +0 -221
  217. package/src/controller/medstatistic/MedClientController.ts +0 -188
  218. package/src/controller/medstatistic/MedMessageService.ts +0 -89
  219. package/src/controller/medstatistic/MedScoreService.ts +0 -108
  220. package/src/controller/medstatistic/constants.ts +0 -63
  221. package/src/controller/myinfo/AuthController.ts +0 -174
  222. package/src/controller/myinfo/MyInfoController.ts +0 -32
  223. package/src/controller/render/AppRenderController.ts +0 -76
  224. package/src/controller/test.controller.ts +0 -37
  225. package/src/filter/default.filter.ts +0 -13
  226. package/src/filter/notfound.filter.ts +0 -10
  227. package/src/index.ts +0 -71
  228. package/src/interface.ts +0 -31
  229. package/src/libs/crud-pro/CrudPro.ts +0 -158
  230. package/src/libs/crud-pro/defaultConfigs.ts +0 -13
  231. package/src/libs/crud-pro/exceptions.ts +0 -124
  232. package/src/libs/crud-pro/interfaces.ts +0 -183
  233. package/src/libs/crud-pro/models/ExecuteContext.ts +0 -111
  234. package/src/libs/crud-pro/models/ExecuteContextFunc.ts +0 -86
  235. package/src/libs/crud-pro/models/FuncContext.ts +0 -21
  236. package/src/libs/crud-pro/models/RequestCfgModel.ts +0 -141
  237. package/src/libs/crud-pro/models/RequestModel.ts +0 -141
  238. package/src/libs/crud-pro/models/ServiceHub.ts +0 -32
  239. package/src/libs/crud-pro/models/SqlCfgModel.ts +0 -52
  240. package/src/libs/crud-pro/models/SqlSegArg.ts +0 -13
  241. package/src/libs/crud-pro/models/Transaction.ts +0 -74
  242. package/src/libs/crud-pro/models/TransactionMySQL.ts +0 -79
  243. package/src/libs/crud-pro/models/TransactionPostgres.ts +0 -91
  244. package/src/libs/crud-pro/models/TransactionSqlServer.ts +0 -107
  245. package/src/libs/crud-pro/models/keys.ts +0 -159
  246. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +0 -75
  247. package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +0 -128
  248. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +0 -279
  249. package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +0 -60
  250. package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +0 -180
  251. package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +0 -373
  252. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +0 -202
  253. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +0 -397
  254. package/src/libs/crud-pro/services/CrudProServiceBase.ts +0 -98
  255. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +0 -59
  256. package/src/libs/crud-pro/services/CurdProServiceHub.ts +0 -92
  257. package/src/libs/crud-pro/sql.txt +0 -120
  258. package/src/libs/crud-pro/utils/CompareUtils.ts +0 -23
  259. package/src/libs/crud-pro/utils/DatabaseName.ts +0 -40
  260. package/src/libs/crud-pro/utils/DateTimeUtils.ts +0 -20
  261. package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +0 -64
  262. package/src/libs/crud-pro/utils/MessageParseUtils.ts +0 -33
  263. package/src/libs/crud-pro/utils/MixinUtils.ts +0 -285
  264. package/src/libs/crud-pro/utils/ModelUtils.ts +0 -55
  265. package/src/libs/crud-pro/utils/MultiKeyMap.ts +0 -72
  266. package/src/libs/crud-pro/utils/SqlFuncUtils.ts +0 -29
  267. package/src/libs/crud-pro/utils/TypeUtils.ts +0 -188
  268. package/src/libs/crud-pro/utils/ValidateUtils.ts +0 -167
  269. package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +0 -20
  270. package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +0 -22
  271. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +0 -22
  272. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +0 -26
  273. package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +0 -11
  274. package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +0 -11
  275. package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +0 -129
  276. package/src/libs/utils/common-dto.ts +0 -52
  277. package/src/libs/utils/crypto-utils.ts +0 -52
  278. package/src/libs/utils/fatcms-request.ts +0 -115
  279. package/src/libs/utils/functions.ts +0 -67
  280. package/src/libs/utils/ordernum-utils.ts +0 -18
  281. package/src/libs/utils/parseConfig.ts +0 -62
  282. package/src/libs/utils/parseCreateSql.ts +0 -91
  283. package/src/libs/utils/render-utils.ts +0 -184
  284. package/src/middleware/forbidden.middleware.ts +0 -71
  285. package/src/middleware/global.middleware.ts +0 -278
  286. package/src/middleware/permission.middleware.ts +0 -81
  287. package/src/middleware/tx.middleware.ts +0 -30
  288. package/src/models/SystemEntities.ts +0 -115
  289. package/src/models/SystemPerm.ts +0 -105
  290. package/src/models/SystemTables.ts +0 -30
  291. package/src/models/bizmodels.ts +0 -89
  292. package/src/models/contextLogger.ts +0 -132
  293. package/src/models/devops.ts +0 -17
  294. package/src/models/userSession.ts +0 -216
  295. package/src/schedule/index.ts +0 -73
  296. package/src/service/AuthService.ts +0 -270
  297. package/src/service/EnumInfoService.ts +0 -129
  298. package/src/service/FileCenterService.ts +0 -394
  299. package/src/service/SysConfigService.ts +0 -34
  300. package/src/service/UserAccountService.ts +0 -100
  301. package/src/service/UserSessionService.ts +0 -81
  302. package/src/service/VisitStatService.ts +0 -179
  303. package/src/service/WorkbenchService.ts +0 -160
  304. package/src/service/anyapi/AnyApiSandboxService.ts +0 -121
  305. package/src/service/anyapi/AnyApiService.ts +0 -184
  306. package/src/service/base/ApiBaseService.ts +0 -42
  307. package/src/service/base/ApiRateLimiter.ts +0 -59
  308. package/src/service/base/BaseService.ts +0 -74
  309. package/src/service/base/RedisCacheService.ts +0 -38
  310. package/src/service/crudstd/CrudStdActionService.ts +0 -27
  311. package/src/service/crudstd/CrudStdConstant.ts +0 -62
  312. package/src/service/crudstd/CrudStdRelationService.ts +0 -78
  313. package/src/service/crudstd/CrudStdService.ts +0 -188
  314. package/src/service/curd/CurdMixByAccountService.ts +0 -83
  315. package/src/service/curd/CurdMixByDictService.ts +0 -113
  316. package/src/service/curd/CurdMixByLinkToCustomService.ts +0 -167
  317. package/src/service/curd/CurdMixBySysConfigService.ts +0 -78
  318. package/src/service/curd/CurdMixByWorkbenchService.ts +0 -68
  319. package/src/service/curd/CurdMixService.ts +0 -65
  320. package/src/service/curd/CurdMixUtils.ts +0 -248
  321. package/src/service/curd/CurdProService.ts +0 -379
  322. package/src/service/proxyapi/ProxyApiLoadService.ts +0 -165
  323. package/src/service/proxyapi/ProxyApiService.ts +0 -262
  324. package/src/service/proxyapi/ProxyApiUtils.ts +0 -32
  325. package/src/service/proxyapi/RouteHandler.ts +0 -8
  326. package/src/service/proxyapi/RouteTrie.ts +0 -74
  327. package/src/service/proxyapi/WeightedRandom.ts +0 -37
  328. package/src/service/proxyapi/WeightedRoundRobin.ts +0 -44
  329. package/src/views/404_app.html +0 -31
  330. package/src/views/404_workbench.html +0 -34
  331. package/src/views/static/favicon.ico +0 -0
@@ -1,73 +0,0 @@
1
- import * as koa from '@midwayjs/koa';
2
- import { IScheduleService } from '../interface';
3
- import { ContextLogger } from '../models/contextLogger';
4
- import { Transaction } from '../libs/crud-pro/models/Transaction';
5
- import {ISessionInfo, SYS_ACCOUNT_TYPE, UserSessionInfo} from '../models/userSession';
6
- import { IWorkbenchEntity } from '../models/SystemEntities';
7
-
8
- const scheduleUserInfo:ISessionInfo = {
9
- nickName: 'schedule_user',
10
- avatar: '',
11
- roleCodes: [],
12
- functionCodes: [],
13
- loginName: 'schedule_user',
14
- sessionId: '',
15
- accountId: '',
16
- workbenchCode: '',
17
- accountType: SYS_ACCOUNT_TYPE,
18
- };
19
-
20
- const scheduleWorkbenchInfo: IWorkbenchEntity = {
21
- id: 0,
22
- workbench_code: 'schedule_workbench',
23
- workbench_name: 'schedule_workbench',
24
- workbench_domain: 'schedule_workbench',
25
- workbench_desc: 'schedule_workbench',
26
- html_content: 'schedule_workbench',
27
- status: 1,
28
- workbench_type: 0,
29
- };
30
-
31
- async function runScheduleService(app: koa.Application, serviceName: string) {
32
- const ctx = app.createAnonymousContext();
33
-
34
- ctx.app = app;
35
- ctx.contextLogger = new ContextLogger(ctx as any);
36
- ctx.transaction = new Transaction();
37
- ctx.userSession = new UserSessionInfo(scheduleUserInfo, true);
38
- ctx.workbenchInfo = scheduleWorkbenchInfo;
39
-
40
- try {
41
- const serviceObject: IScheduleService = await ctx.requestContext.getAsync(serviceName);
42
- if (serviceObject && serviceObject.runBySchedule) {
43
- await serviceObject.runBySchedule();
44
- } else {
45
- ctx.logger.error(`runSchedule error , serviceName = ${serviceName}, 没有找到服务`);
46
- }
47
- } catch (e) {
48
- ctx.logger.error(`runSchedule error , serviceName = ${serviceName}`, e);
49
- } finally {
50
- await ctx.transaction.releaseTx();
51
- }
52
- }
53
-
54
- async function runSchedule(app: koa.Application, serviceList: string[]) {
55
- for (let i = 0; i < serviceList.length; i++) {
56
- const serviceName = serviceList[i];
57
- try {
58
- await runScheduleService(app, serviceName);
59
- } catch (e) {
60
- const ctx = app.createAnonymousContext();
61
- ctx.logger.error(`runSchedule error , serviceName = ${serviceName}`, e);
62
- }
63
- }
64
- }
65
-
66
- async function startSchedule(app: koa.Application, serviceList: string[]) {
67
- await runSchedule(app, serviceList);
68
- setInterval(() => {
69
- runSchedule(app, serviceList);
70
- }, 2 * 60 * 1000);
71
- }
72
-
73
- export { startSchedule };
@@ -1,270 +0,0 @@
1
- import { Inject, Provide, Config } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
- import { KeysOfSimpleSQL } from '../libs/crud-pro/models/keys';
4
- import { CurdMixService } from './curd/CurdMixService';
5
- import * as md5 from 'md5';
6
- import { UserAccountService } from './UserAccountService';
7
- import { createUniqueId } from '../libs/utils/functions';
8
- import {IConsumerUserInfo, ISessionInfo, SYS_ACCOUNT_TYPE} from '../models/userSession';
9
- import {SystemDbName, SystemDbType, SystemTables} from '../models/SystemTables';
10
- import { UserSessionService } from './UserSessionService';
11
- import { CommonResult } from '../libs/utils/common-dto';
12
- import { isEnableSuperAdmin } from "../libs/utils/fatcms-request";
13
- import {CommonException} from "../libs/crud-pro/exceptions";
14
-
15
- @Provide()
16
- export class AuthService {
17
- @Inject()
18
- private ctx: Context;
19
-
20
- @Config('superAdminList')
21
- private superAdminList: any[];
22
-
23
- @Inject()
24
- private curdMixService: CurdMixService;
25
-
26
- @Inject()
27
- private userService: UserAccountService;
28
-
29
- @Inject()
30
- private userSessionService: UserSessionService;
31
-
32
- /**
33
- * 明文密码转unsaltedPwd密码
34
- * @param plainPwd
35
- * @param loginName
36
- */
37
- public toUnsaltedPwd(plainPwd: string, loginName: string) {
38
- const pw2 = md5(md5(plainPwd) + '_' + loginName);
39
- return pw2;
40
- }
41
-
42
- /**
43
- * front: pw1 = md5(md5(input_pw) + "_" + loginName)
44
- * db: pw2 = md5(pwd_salt + pw1)
45
- * 检查用户名密码是否正确
46
- * @param loginName
47
- * @param unsaltedPwd
48
- */
49
- public async checkLoginPassword(loginName: string, unsaltedPwd: string): Promise<CommonResult> {
50
- const message = '用户名或密码错误';
51
- const errorCode = 'USERNAME_OR_PASSWORD_IS_INCORRECT';
52
-
53
- if (!loginName) {
54
- return CommonResult.errorRes(message, errorCode, '!loginName');
55
- }
56
-
57
- if (!unsaltedPwd) {
58
- return CommonResult.errorRes(message, errorCode, '!unsaltedPwd');
59
- }
60
-
61
- const userAccount = await this.queryUserAccountByLoginName(loginName);
62
- if (!userAccount) {
63
- return CommonResult.errorRes(message, errorCode, '!userAccount');
64
- }
65
-
66
- if (userAccount.status !== 1) {
67
- return CommonResult.errorRes(message, errorCode, 'userAccount.status !== 1');
68
- }
69
-
70
- if (!userAccount.pwd_md5) {
71
- return CommonResult.errorRes(message, errorCode, '!userAccount.pwd_md5');
72
- }
73
-
74
- const pwd_salt = userAccount.pwd_salt;
75
- const pwd_md5 = md5(unsaltedPwd + pwd_salt);
76
-
77
- if (userAccount['pwd_md5'] !== pwd_md5) {
78
- return CommonResult.errorRes(message, errorCode, "userAccount['pwd_md5'] !== pwd_md5");
79
- }
80
-
81
- return CommonResult.successRes();
82
- }
83
-
84
-
85
- /**
86
- * 创建一个toC端的UserSession
87
- * @param consumerUserInfo
88
- */
89
- public async createUserSessionForConsumer(consumerUserInfo: IConsumerUserInfo) {
90
-
91
- const sessionId = createUniqueId();
92
-
93
- const sessionInfo: ISessionInfo = {
94
- nickName: consumerUserInfo.nickName,
95
- avatar: consumerUserInfo.avatar,
96
- roleCodes: [],
97
- functionCodes:[],
98
- loginName: consumerUserInfo.loginName,
99
- sessionId,
100
- accountId: consumerUserInfo.accountId,
101
- workbenchCode: consumerUserInfo.workbenchCode,
102
- accountType: consumerUserInfo.accountType,
103
- };
104
-
105
- await this.userSessionService.saveUserSession(sessionInfo);
106
-
107
- return {
108
- sessionId,
109
- loginName: sessionInfo.loginName,
110
- accountId: sessionInfo.accountId,
111
- nickName: sessionInfo.nickName,
112
- avatar: sessionInfo.avatar,
113
- workbenchCode: sessionInfo.workbenchCode,
114
- accountType: sessionInfo.accountType,
115
- };
116
- }
117
-
118
- /**
119
- * 创建一个Session
120
- * @param loginName
121
- * @param workbenchCode
122
- */
123
- public async createUserSession(loginName: string, workbenchCode: string) {
124
- const userAccount = await this.queryUserAccountByLoginName(loginName);
125
-
126
- if (!userAccount) {
127
- throw new CommonException('USER_ACCOUNT_NOT_EXIST', '用户账号不存在');
128
- }
129
-
130
- const accountId = userAccount.account_id;
131
- const sessionId = createUniqueId();
132
- const roleCodes = await this.queryUserRoleCodeList(accountId);
133
- const functionCodes = await this.queryFunctionCodeList(roleCodes);
134
-
135
- const sessionInfo: ISessionInfo = {
136
- nickName: userAccount.nick_name,
137
- avatar: userAccount.avatar,
138
- roleCodes,
139
- functionCodes,
140
- loginName,
141
- sessionId,
142
- accountId,
143
- workbenchCode,
144
- accountType: SYS_ACCOUNT_TYPE
145
- };
146
-
147
- await this.userSessionService.saveUserSession(sessionInfo);
148
-
149
- return {
150
- sessionId,
151
- loginName,
152
- accountId,
153
- nickName: userAccount.nick_name,
154
- avatar: userAccount.avatar,
155
- workbenchCode: sessionInfo.workbenchCode,
156
- accountType: sessionInfo.accountType,
157
- };
158
- }
159
-
160
- /**
161
- * 获取用户
162
- * @param loginName
163
- * @private
164
- */
165
- private async queryUserAccountByLoginName(loginName: string) {
166
- const superAdminList = this.superAdminList;
167
- const findFromSuperAdmin = () => {
168
-
169
- if (!isEnableSuperAdmin(this.ctx)) {
170
- return null;
171
- }
172
-
173
- if (!Array.isArray(superAdminList)) {
174
- return null;
175
- }
176
-
177
- for (let i = 0; i < superAdminList.length; i++) {
178
- const element = superAdminList[i];
179
- if (element && element.login_name === loginName) {
180
- const nick_name = 'SA' + i;
181
- return {
182
- nick_name: element.nick_name || nick_name,
183
- avatar: '',
184
- account_id: nick_name,
185
- status: 1,
186
- login_name: element.login_name,
187
- pwd_salt: element.pwd_salt,
188
- pwd_md5: element.pwd_md5,
189
- };
190
- }
191
- }
192
- };
193
- const superAdmin = findFromSuperAdmin();
194
- if (superAdmin) {
195
- return superAdmin;
196
- }
197
- return this.userService.queryUserAccountByLoginName(loginName);
198
- }
199
-
200
- /**
201
- * 查询此accountId下关联的角色code列表
202
- * @param accountId
203
- * @private
204
- */
205
- private async queryUserRoleCodeList(accountId: string): Promise<string[]> {
206
- const res = await this.curdMixService.executeCrudByCfg(
207
- {
208
- condition: { account_id: accountId },
209
- limit: 10000,
210
- },
211
- {
212
- sqlTable: SystemTables.sys_perm_user_role,
213
- sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY,
214
- sqlDatabase: SystemDbName,
215
- sqlDdType: SystemDbType,
216
- }
217
- );
218
- const rows = res.getResModel().rows || [];
219
- const roleCodes: string[] = rows.map(({ role_code }) => {
220
- return role_code as string;
221
- });
222
- return [...new Set(roleCodes)];
223
- }
224
-
225
- /**
226
- * 查询此roleCodeList下面关联的所有功能点列表
227
- * @param roleCodeList
228
- * @private
229
- */
230
- private async queryFunctionCodeList(roleCodeList: string[]): Promise<string[]> {
231
- if (!roleCodeList || roleCodeList.length === 0) {
232
- return [];
233
- }
234
-
235
- const res = await this.curdMixService.executeCrudByCfg(
236
- {
237
- condition: { role_code: { $in: roleCodeList } },
238
- limit: 10000,
239
- },
240
- {
241
- sqlTable: SystemTables.sys_perm_role_func,
242
- sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY,
243
- sqlDatabase: SystemDbName,
244
- sqlDdType: SystemDbType,
245
- }
246
- );
247
- const rows = res.getResModel().rows || [];
248
- const funcCodes: string[] = rows.map(({ func_code }) => {
249
- return func_code;
250
- });
251
- return [...new Set(funcCodes)];
252
- }
253
-
254
- async removeUserSession(sessionId: string) {
255
- return this.userSessionService.removeUserSession(sessionId);
256
- }
257
-
258
- async refreshSession(sessionInfo: ISessionInfo): Promise<ISessionInfo> {
259
- const oldSessionId = sessionInfo.sessionId;
260
-
261
- const sessionId = createUniqueId();
262
- const newSessionInfo: ISessionInfo = {...sessionInfo, sessionId};
263
-
264
- await this.userSessionService.saveUserSession(newSessionInfo);
265
-
266
- await this.removeUserSession(oldSessionId);
267
-
268
- return newSessionInfo;
269
- }
270
- }
@@ -1,129 +0,0 @@
1
- import {Inject, Provide} from '@midwayjs/core';
2
- import {Context} from '@midwayjs/koa';
3
- import {KeysOfSimpleSQL} from '../libs/crud-pro/models/keys';
4
- import {CurdProService} from './curd/CurdProService';
5
- import {RelatedType} from './curd/CurdMixUtils';
6
- import {SystemDbName, SystemDbType, SystemTables} from '../models/SystemTables';
7
- import {parseConfigContentToEnumInfo, IEnumInfo} from '../libs/utils/parseConfig';
8
- import {RedisCacheService} from "./base/RedisCacheService";
9
- import {CurdMixByLinkToCustomService} from "./curd/CurdMixByLinkToCustomService";
10
-
11
-
12
- interface IQueryEnumInfo {
13
- type: RelatedType;
14
- code: string;
15
- }
16
- interface IQueryEnumResult {
17
- type: RelatedType;
18
- code: string;
19
- values: IEnumInfo[];
20
- }
21
-
22
-
23
- function filterEmpty(e: IEnumInfo): boolean {
24
- return e.label && typeof e.value !== 'undefined';
25
- }
26
-
27
-
28
-
29
- @Provide()
30
- export class EnumInfoService {
31
- @Inject()
32
- ctx: Context;
33
- @Inject()
34
- private curdProService: CurdProService;
35
-
36
- @Inject()
37
- private curdMixByLinkToCustomService: CurdMixByLinkToCustomService;
38
-
39
- @Inject()
40
- private redisCacheService: RedisCacheService;
41
-
42
- async queryEnumInfo(codeList: IQueryEnumInfo[], refreshCache: boolean): Promise<IQueryEnumResult[]> {
43
-
44
- const expireSecond = 2 * 60 ;
45
-
46
- const result = [];
47
- for (let i = 0; i < codeList.length; i++) {
48
- const {code, type} = codeList[i];
49
- const cacheKey = `enums@@${type}@@${code}`;
50
- const emums = refreshCache? null : await this.redisCacheService.getJsonObject(cacheKey);
51
- if (!Array.isArray(emums) || emums.length === 0) {
52
- let values;
53
- if (type === RelatedType.sysCfgEnum) {
54
- values = await this.queryEnumInfoBySysCfgEnum(code);
55
- await this.redisCacheService.setJsonObject(cacheKey, values, expireSecond);
56
- } else if (type === RelatedType.dict) {
57
- values = await this.queryEnumInfoItemByDict(code);
58
- await this.redisCacheService.setJsonObject(cacheKey, values, expireSecond);
59
- } else if (type === RelatedType.linkToCustom) {
60
- values = await this.queryEnumInfoByLinkToCustom(code);
61
- // await this.redisCacheService.setJsonObject(cacheKey, values, expireSecond);
62
- }
63
- result.push({type, code, values});
64
- } else {
65
- result.push({type, code, values: emums});
66
- }
67
- }
68
- return result;
69
- }
70
-
71
- /**
72
- * code形如:fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
73
- * code形如:fatcms~~~sys_perm_role~~~id,*
74
- * 【数据库】~~~【表名】~~~【label】,【value】,【style】
75
- * @param code
76
- * @private
77
- */
78
- private async queryEnumInfoByLinkToCustom(code: string): Promise<IEnumInfo[]> {
79
- const cc = await this.curdMixByLinkToCustomService.queryInfoByLinkToCustom(code);
80
- if (!cc) {
81
- return [];
82
- }
83
- const keys = [...cc.keys()];
84
- return keys.map(value => {
85
- const label = cc.get(value);
86
- return {label, value}
87
- })
88
- }
89
-
90
- private async queryEnumInfoBySysCfgEnum(code: string): Promise<IEnumInfo[]> {
91
- const res1 = await this.curdProService.executeCrudByCfg(
92
- {
93
- condition: { config_code: code },
94
- },
95
- {
96
- sqlTable: SystemTables.sys_configs,
97
- sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
98
- sqlDatabase: SystemDbName,
99
- sqlDdType: SystemDbType,
100
- }
101
- );
102
- const obj = res1.getOneObj();
103
- if (!obj) {
104
- return null;
105
- }
106
-
107
- const rows = parseConfigContentToEnumInfo(obj);
108
- return rows.map(e => ({ label: e.label, value: e.value , children: e.children})).filter(filterEmpty);
109
- }
110
-
111
- private async queryEnumInfoItemByDict(code: string): Promise<IEnumInfo[]> {
112
- const res1 = await this.curdProService.executeCrudByCfg(
113
- {
114
- condition: { dict_code: code },
115
- },
116
- {
117
- sqlTable: SystemTables.sys_data_dict_item,
118
- sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY,
119
- sqlDatabase: SystemDbName,
120
- sqlDdType: SystemDbType,
121
- }
122
- );
123
- const obj = res1.getResRows();
124
- if (!obj) {
125
- return null;
126
- }
127
- return obj.map(e => ({ label: e.label, value: e.value })).filter(filterEmpty);
128
- }
129
- }