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
@@ -1,63 +0,0 @@
1
- const DEFAULT_SECTION_ID = 10002;
2
-
3
- const TARGET_OBJECT_TYPE_BBS_TOPIC = 1; // bbs_topic (1)
4
- const TARGET_OBJECT_TYPE_BBS_REPLY = 2; // bbs_reply (2)
5
- const TARGET_OBJECT_TYPE_BBS_GUIDE = 3; // bbs_reply (3) // 教程
6
- const TARGET_OBJECT_TYPE_CONTACT_US = 4; // // 联系我们
7
- const TARGET_OBJECT_TYPE_USER_AUTHENTICATION = 5; // // 用户身份认证
8
-
9
-
10
-
11
- export {
12
- DEFAULT_SECTION_ID,
13
- TARGET_OBJECT_TYPE_BBS_TOPIC,
14
- TARGET_OBJECT_TYPE_BBS_REPLY,
15
- TARGET_OBJECT_TYPE_BBS_GUIDE,
16
- TARGET_OBJECT_TYPE_CONTACT_US,
17
- TARGET_OBJECT_TYPE_USER_AUTHENTICATION
18
- }
19
-
20
-
21
-
22
- export const MED_STATISTIC_DB = "medstatistic";
23
-
24
-
25
- // 状态;0 未读, 1 已读
26
- export enum MsgStatus {
27
- unread = 0, // 减少
28
- read = 1 // 增加
29
- }
30
-
31
- // 状态;0 未读, 1 已读
32
- export enum MsgType {
33
- unknown = 0, //
34
- user_auth_pass = 1, // 用户认证审批通过
35
- bbs_post_be_like = 2, // 帖子被点赞。(forum前端埋点发消息)
36
- bbs_post_be_reply = 3, // 帖子被回复。(forum前端埋点发消息)
37
- bbs_post_be_violation = 4, // 帖子被发现违规(ext前端埋点发消息)
38
- bbs_reply_be_like = 5, // 帖子被点赞。(forum前端埋点发消息)
39
- bbs_reply_be_reply = 6, // 帖子被回复。(forum前端埋点发消息)
40
- bbs_reply_be_violation = 7, // 帖子被发现违规(ext前端埋点发消息)
41
- contact_us_be_reply = 8, // “联系我们”被回复 (ext前端埋点发消息)
42
- bbs_post_be_favorite = 9, // 帖子被收藏
43
- }
44
-
45
- export function isMsgType(value: number): boolean {
46
- if (typeof value === "undefined") {
47
- return false;
48
- }
49
- return Object.values(MsgType).includes(value as MsgType);
50
- }
51
-
52
-
53
- export interface IMedTargetObj {
54
- target_object_id: number,
55
- target_object_type: number
56
- }
57
-
58
-
59
-
60
-
61
- export interface ISendUserReceivedMsg extends IMedTargetObj {
62
- msg_type: MsgType
63
- }
@@ -1,174 +0,0 @@
1
- import { Controller, Inject, Post } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
- import axios from 'axios';
4
- import { BaseApiController } from '../base/BaseApiController';
5
- import { AuthService } from '../../service/AuthService';
6
- import {IConsumerUserInfo, ISessionInfo, SESSION_ID_KEY, sessionCookieCfg} from '../../models/userSession';
7
- import { CommonResult } from '../../libs/utils/common-dto';
8
- import { checkLogin } from '../../middleware/permission.middleware';
9
- import { assertCsrfToken } from "../../libs/utils/fatcms-request";
10
- import {WorkbenchService} from "../../service/WorkbenchService";
11
- import {CommonException} from "../../libs/crud-pro/exceptions";
12
-
13
- /**
14
- * 支持使用明文密码和Hash后密码登录。
15
- * 1. 明文密码登录,所需字段:loginName, plainPwd,
16
- * 2. Hash后密码登录,所需字段:loginName, unsaltedPwd
17
- */
18
- @Controller('/ns/api/auth')
19
- export class AuthController extends BaseApiController {
20
- @Inject()
21
- protected ctx: Context;
22
-
23
- @Inject()
24
- private authService: AuthService;
25
-
26
-
27
- @Inject()
28
- private workbenchService: WorkbenchService;
29
-
30
- /**
31
- * 登录
32
- */
33
- @Post('/login')
34
- async login(): Promise<CommonResult> {
35
- await assertCsrfToken(this.ctx);
36
-
37
- // 先删除之前的SessionId
38
- const sessionId = this.ctx.cookies.get(SESSION_ID_KEY, sessionCookieCfg);
39
- await this.authService.removeUserSession(sessionId);
40
-
41
- // eslint-disable-next-line prefer-const
42
- let { loginName, unsaltedPwd, plainPwd } = this.ctx.request.body as any;
43
- if (!unsaltedPwd && plainPwd) {
44
- unsaltedPwd = this.authService.toUnsaltedPwd(plainPwd, loginName); // 使用明文密码登录时,转换成unsaltedPwd
45
- }
46
-
47
- const checkRes = await this.authService.checkLoginPassword(loginName, unsaltedPwd);
48
- if (!checkRes.success) {
49
- return checkRes;
50
- }
51
-
52
- const workbench = await this.workbenchService.getCurrentHostWorkbenchInfo();
53
- if (!workbench) {
54
- throw new CommonException('WORKBENCH_IS_NOT_FOUND', '站点未找到');
55
- }
56
-
57
-
58
- const userSessionInfo = await this.authService.createUserSession(loginName, workbench.workbench_code);
59
-
60
- this.ctx.cookies.set(SESSION_ID_KEY, userSessionInfo.sessionId, sessionCookieCfg);
61
-
62
- return CommonResult.successMsg('登录成功', userSessionInfo);
63
- }
64
-
65
-
66
- /**
67
- * 使用https://medstatistic.com/账号登录
68
- */
69
- @Post('/loginByMedStatistic')
70
- async loginByMedStatistic(): Promise<CommonResult> {
71
-
72
- const { medStatisticToken } = this.ctx.request.body as any;
73
- if (!medStatisticToken) {
74
- return CommonResult.errorRes("medStatisticToken is null")
75
- }
76
-
77
- const workbench = await this.workbenchService.getCurrentHostWorkbenchInfo();
78
- if (!workbench) {
79
- throw new CommonException('WORKBENCH_IS_NOT_FOUND', '站点未找到');
80
- }
81
-
82
- // 先删除之前的cookie
83
- const sessionId = this.ctx.cookies.get(SESSION_ID_KEY, sessionCookieCfg);
84
- await this.authService.removeUserSession(sessionId);
85
-
86
-
87
- let userInfoRes: any = null;
88
- try {
89
- userInfoRes = await axios.get("https://console.medstatistic.com/api/user/index?lang=zh-cn", {
90
- headers: {
91
- host: "console.medstatistic.com",
92
- origin: "https://console.medstatistic.com",
93
- token: medStatisticToken
94
- },
95
- responseType: 'json'
96
- });
97
-
98
- } catch (e) {
99
- return CommonResult.errorRes(e?.message || '');
100
- }
101
-
102
- const userInfo = userInfoRes?.data?.data;
103
-
104
- if (!userInfo || !userInfo.id) {
105
- return CommonResult.errorRes("USER_NOT_EXIST")
106
- }
107
-
108
- const consumerUserInfo: IConsumerUserInfo = {
109
- workbenchCode: workbench.workbench_code,
110
- accountType: 'medstatistic',
111
- accountId: userInfo.id,
112
- nickName: userInfo.nickname,
113
- loginName: `${userInfo.id}_${userInfo.username}`,
114
- avatar: userInfo.avatar,
115
- };
116
-
117
- const userSessionInfo = await this.authService.createUserSessionForConsumer(consumerUserInfo);
118
-
119
- this.ctx.cookies.set(SESSION_ID_KEY, userSessionInfo.sessionId, sessionCookieCfg);
120
-
121
- return CommonResult.successMsg('登录成功', userSessionInfo);
122
- }
123
-
124
-
125
-
126
- /**
127
- * 退出
128
- */
129
- @Post('/logout')
130
- async logout(): Promise<CommonResult> {
131
- const sessionId = this.ctx.cookies.get(SESSION_ID_KEY, sessionCookieCfg);
132
- await this.authService.removeUserSession(sessionId);
133
- this.ctx.cookies.set(SESSION_ID_KEY, '', sessionCookieCfg);
134
- return CommonResult.successMsg('退出成功');
135
- }
136
-
137
-
138
- /**
139
- * 避免Session过期,前端需要定时调用此接口刷新
140
- */
141
- @Post('/refreshSession', { middleware: [checkLogin()] })
142
- async refreshSession(): Promise<CommonResult> {
143
- const sessionInfo:ISessionInfo = this.ctx.userSession.getSessionInfo();
144
- const newSessionInfo: ISessionInfo = await this.authService.refreshSession(sessionInfo);
145
- this.ctx.cookies.set(SESSION_ID_KEY, newSessionInfo.sessionId, sessionCookieCfg);
146
- return CommonResult.successRes(newSessionInfo);
147
- }
148
-
149
-
150
- /**
151
- * 修改我自己的密码
152
- */
153
- @Post('/changeMyPassword', { middleware: [checkLogin()] })
154
- async changeMyPassword(): Promise<CommonResult> {
155
- const { unsaltedPwd } = this.ctx.request.body as any;
156
- const loginName = this.ctx.userSession.getSessionInfo().loginName;
157
-
158
- if (loginName === 'devopsviewer') {
159
- return CommonResult.errorRes("开放体验账号不支持修改密码")
160
- }
161
-
162
- return this.userAccountService.chgUserPassword(loginName, unsaltedPwd);
163
- }
164
-
165
- /**
166
- * 校验权限接口,给前端用的。用于界面按钮级权限控制
167
- */
168
- @Post('/batchCheckPermission', { middleware: [checkLogin()] })
169
- async batchCheckPermission(): Promise<CommonResult> {
170
- const { permissionCodeList, roleCodeList } = (this.ctx.request.body || {}) as any;
171
- const res = this.ctx.userSession.batchCheckPermission({ permissionCodeList, roleCodeList });
172
- return CommonResult.successRes(res);
173
- }
174
- }
@@ -1,32 +0,0 @@
1
- import * as _ from 'lodash';
2
- import { Controller, Inject, Post } from '@midwayjs/core';
3
- import { Context } from '@midwayjs/koa';
4
- import { BaseApiController } from '../base/BaseApiController';
5
- import { CommonResult } from '../../libs/utils/common-dto';
6
- import { SystemTables } from '../../models/SystemTables';
7
- import { KeysOfSimpleSQL } from '../../libs/crud-pro/models/keys';
8
- import { checkLogin } from '../../middleware/permission.middleware';
9
-
10
- /**
11
- * 用户个人数据查询
12
- */
13
- @Controller('/ns/api/myinfo', { middleware: [checkLogin()] })
14
- export class MyInfoController extends BaseApiController {
15
- @Inject()
16
- protected ctx: Context;
17
-
18
- /**
19
- * 我的角色列表:getMyRoleList
20
- */
21
- @Post('/getMyRoleList')
22
- async getMyRoleList() {
23
- // eslint-disable-next-line prefer-const
24
- const body = this.ctx.request.body as any;
25
- const roleCodes = this.ctx.userSession.getSessionInfo().roleCodes;
26
- if (!roleCodes || !roleCodes.length) {
27
- return CommonResult.successRes([]);
28
- }
29
- _.set(body, 'condition.role_code', { $in: roleCodes });
30
- return this.executeSysSimpleSQL(SystemTables.sys_perm_role, KeysOfSimpleSQL.SIMPLE_QUERY_PAGE);
31
- }
32
- }
@@ -1,76 +0,0 @@
1
- import {Inject, Controller, Get, Param} from '@midwayjs/core';
2
- import {Context} from '@midwayjs/koa';
3
- import {BaseApiController} from '../base/BaseApiController';
4
- import {KeysOfSimpleSQL} from '../../libs/crud-pro/models/keys';
5
- import {SystemDbName, SystemDbType, SystemTables} from '../../models/SystemTables';
6
- import {WorkbenchService} from '../../service/WorkbenchService';
7
- import {createRenderUtils} from "../../libs/utils/render-utils";
8
- import {privateAES} from "../../libs/utils/crypto-utils";
9
-
10
-
11
- /**
12
- * 渲染独立外部应用
13
- */
14
- @Controller('/ns/app')
15
- export class AppRenderController extends BaseApiController {
16
- @Inject()
17
- protected ctx: Context;
18
-
19
- @Inject()
20
- private workbenchService: WorkbenchService;
21
-
22
- @Get('/:appPath+')
23
- async home(@Param('appPath') appPath: string): Promise<string> {
24
- const appPathArr = appPath.split('/');
25
- const appCode = appPathArr[0];
26
-
27
- const res = await this.curdMixService.executeCrudByCfg(
28
- {condition: {app_code: appCode}},
29
- {
30
- sqlTable: SystemTables.sys_app,
31
- sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
32
- sqlDatabase: SystemDbName,
33
- sqlDdType: SystemDbType,
34
- }
35
- );
36
-
37
- const {row: appInfo} = res.getResModel();
38
- if (!appInfo) {
39
- this.ctx.status = 404;
40
- return this.ctx.render('404_app', {appCode, errorMsg: ' 应用不存在'});
41
- }
42
-
43
- if (appInfo.status !== 1) {
44
- this.ctx.status = 404;
45
- return this.ctx.render('404_app', {appCode, errorMsg: ' 应用已下线'});
46
- }
47
-
48
- const isSupportWorkbench = await this.isSupportCurrentWorkbench(appInfo);
49
- if (!isSupportWorkbench) {
50
- this.ctx.status = 404;
51
- return this.ctx.render('404_app', {appCode, errorMsg: ' 应用没有绑定此站点'});
52
- }
53
-
54
- const workbenchInfo = await this.workbenchService.getCurrentHostWorkbenchInfo();
55
-
56
- const html_content = appInfo.html_content || '<b style="color: red">错误:未配置HTML模版,请检查!!</b>';
57
- const userInfo = this.getUserSessionInfo();
58
- const fatcmscsrftoken = await privateAES.time_encrypt_utf8_base64("" + Date.now());
59
-
60
- const utils = createRenderUtils({
61
- ctx: this.ctx,
62
- appInfo, workbenchInfo, userInfo, package_assets: appInfo.package_assets, fatcmscsrftoken
63
- });
64
- return this.ctx.renderString(html_content, {appInfo, workbenchInfo, userInfo, utils}, {viewEngine: 'ejs'});
65
- }
66
-
67
-
68
-
69
-
70
- private async isSupportCurrentWorkbench(appInfo: any): Promise<boolean> {
71
- if (this.isLocalEnv()) {
72
- return true;
73
- }
74
- return this.workbenchService.isSupportCurrentWorkbench(appInfo.workbench_code_array);
75
- }
76
- }
@@ -1,37 +0,0 @@
1
- import {Controller, Get, Inject} from '@midwayjs/core';
2
- import {Context} from '@midwayjs/koa';
3
- import {CurdMixService} from '../service/curd/CurdMixService';
4
- import {BaseApiController} from "./base/BaseApiController";
5
- import {IRequestCfgModel} from "../libs/crud-pro/interfaces";
6
- import {KeysOfSimpleSQL, SqlDbType} from "../libs/crud-pro/models/keys";
7
-
8
-
9
- // http://127.0.0.1:7002/ns/api/test/testPgQuery
10
-
11
- @Controller('/ns/api/test')
12
- export class TestApiController extends BaseApiController{
13
- @Inject()
14
- protected ctx: Context;
15
-
16
- @Inject()
17
- protected curdMixService: CurdMixService;
18
-
19
- @Get('/testPgQuery')
20
- async testPgQuery() {
21
- const cfgModel: IRequestCfgModel = {
22
- sqlTable: "test_table1",
23
- sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY,
24
- sqlDatabase: "postgres_test1",
25
- sqlDdType: SqlDbType.postgres,
26
- updateCfg: {},
27
- };
28
-
29
- return this.curdMixService.executeCrudByCfg({
30
- condition: {
31
- int4: "222"
32
- }
33
- },cfgModel)
34
-
35
- }
36
-
37
- }
@@ -1,13 +0,0 @@
1
- import { Catch } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
-
4
- @Catch()
5
- export class DefaultErrorFilter {
6
- async catch(err: Error, ctx: Context) {
7
- // 所有的未分类错误会到这里
8
- return {
9
- success: false,
10
- message: err.message,
11
- };
12
- }
13
- }
@@ -1,10 +0,0 @@
1
- import { Catch, httpError, MidwayHttpError } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
-
4
- @Catch(httpError.NotFoundError)
5
- export class NotFoundFilter {
6
- async catch(err: MidwayHttpError, ctx: Context) {
7
- // 404 错误会到这里
8
- ctx.redirect('/404.html');
9
- }
10
- }
package/src/index.ts DELETED
@@ -1,71 +0,0 @@
1
- export { ContainerLifeCycle as Configuration } from './configuration';
2
- export * from './controller/base/BaseApiController';
3
- export * from './controller/gateway/AnyApiGatewayController';
4
- export * from './controller/gateway/CrudMtdGatewayController';
5
- export * from './controller/gateway/CrudStdGatewayController';
6
- export * from './controller/gateway/DocGatewayController';
7
- export * from './controller/gateway/FileController';
8
- export * from './controller/gateway/ProxyApiGatewayController';
9
- export * from './controller/gateway/PublicApiController';
10
- export * from './controller/gateway/StaticController';
11
- export * from './controller/helpers.controller';
12
- export * from './controller/home.controller';
13
- export * from './controller/manage/AnyApiMangeApi';
14
- export * from './controller/manage/AppLogMangeApi';
15
- export * from './controller/manage/AppMangeApi';
16
- export * from './controller/manage/AppPageMangeApi';
17
- export * from './controller/manage/AppSchemaHistoryApi';
18
- export * from './controller/manage/CrudMethodsMangeApi';
19
- export * from './controller/manage/CrudStandardDesignApi';
20
- export * from './controller/manage/DataDictManageApi';
21
- export * from './controller/manage/DeployManageApi';
22
- export * from './controller/manage/DocLibManageApi';
23
- export * from './controller/manage/DocManageApi';
24
- export * from './controller/manage/FileManageApi';
25
- export * from './controller/manage/LowCodeTplManageApi';
26
- export * from './controller/manage/MenuManageApi';
27
- export * from './controller/manage/ProxyApiMangeApi';
28
- export * from './controller/manage/SuperAdminManageApi';
29
- export * from './controller/manage/SysConfigMangeApi';
30
- export * from './controller/manage/SystemInfoManageApi';
31
- export * from './controller/manage/UserAccountManageApi';
32
- export * from './controller/manage/WorkbenchMangeApi';
33
- export * from './controller/medstatistic/MedAdminController';
34
- export * from './controller/medstatistic/MedClientController';
35
- export * from './controller/medstatistic/MedMessageService';
36
- export * from './controller/medstatistic/MedScoreService';
37
- export * from './controller/myinfo/AuthController';
38
- export * from './controller/myinfo/MyInfoController';
39
- export * from './controller/render/AppRenderController';
40
- export * from './controller/test.controller';
41
- export * from './filter/default.filter';
42
- export * from './filter/notfound.filter';
43
- export * from './middleware/forbidden.middleware';
44
- export * from './middleware/global.middleware';
45
- export * from './middleware/tx.middleware';
46
- export * from './middleware/permission.middleware';
47
- export * from './service/AuthService';
48
- export * from './service/EnumInfoService';
49
- export * from './service/FileCenterService';
50
- export * from './service/SysConfigService';
51
- export * from './service/UserAccountService';
52
- export * from './service/UserSessionService';
53
- export * from './service/VisitStatService';
54
- export * from './service/WorkbenchService';
55
- export * from './service/anyapi/AnyApiSandboxService';
56
- export * from './service/anyapi/AnyApiService';
57
- export * from './service/base/ApiBaseService';
58
- export * from './service/base/BaseService';
59
- export * from './service/base/RedisCacheService';
60
- export * from './service/crudstd/CrudStdActionService';
61
- export * from './service/crudstd/CrudStdRelationService';
62
- export * from './service/crudstd/CrudStdService';
63
- export * from './service/curd/CurdMixByAccountService';
64
- export * from './service/curd/CurdMixByDictService';
65
- export * from './service/curd/CurdMixByLinkToCustomService';
66
- export * from './service/curd/CurdMixBySysConfigService';
67
- export * from './service/curd/CurdMixByWorkbenchService';
68
- export * from './service/curd/CurdMixService';
69
- export * from './service/curd/CurdProService';
70
- export * from './service/proxyapi/ProxyApiLoadService';
71
- export * from './service/proxyapi/ProxyApiService';
package/src/interface.ts DELETED
@@ -1,31 +0,0 @@
1
- import '@midwayjs/core';
2
- import { Transaction } from './libs/crud-pro/models/Transaction';
3
- import { UserSessionInfo } from './models/userSession';
4
- import { ContextLogger } from './models/contextLogger';
5
- import { IWorkbenchEntity } from './models/SystemEntities';
6
-
7
- declare module '@midwayjs/core' {
8
- interface Context {
9
- transaction: Transaction;
10
- userSession: UserSessionInfo;
11
- workbenchInfo: IWorkbenchEntity;
12
- contextLogger: ContextLogger;
13
- }
14
- }
15
-
16
- export interface ICacheService {
17
- get: (key: string) => Promise<any>;
18
- save: (key: string, value: any) => Promise<any>;
19
- del: (key: string) => Promise<any>;
20
- init: () => Promise<any>;
21
- }
22
-
23
- export interface IGetCacheParams {
24
- namespace: string;
25
- dirname: string;
26
- keepMs?: number;
27
- }
28
-
29
- export interface IScheduleService {
30
- runBySchedule: () => Promise<any>;
31
- }
@@ -1,158 +0,0 @@
1
- import { ICrudProCfg, ILogger, IRequestCfgModel, IRequestModel, ISqlCfgModel, IVisitor } from './interfaces';
2
- import { ExecuteContext } from './models/ExecuteContext';
3
- import { RequestModel } from './models/RequestModel';
4
- import { CurdProServiceHub } from './services/CurdProServiceHub';
5
- import { CommonException, Exceptions } from './exceptions';
6
- import { RequestCfgModel } from './models/RequestCfgModel';
7
- import { MixinUtils } from './utils/MixinUtils';
8
- import { Transaction } from './models/Transaction';
9
- import { IExecuteContextFunc } from './models/ExecuteContextFunc';
10
-
11
- class CrudPro {
12
- private readonly executeContext: ExecuteContext;
13
- private readonly serviceHub: CurdProServiceHub;
14
-
15
- constructor() {
16
- this.executeContext = new ExecuteContext();
17
- this.serviceHub = new CurdProServiceHub(this.executeContext);
18
- }
19
-
20
- // 必填
21
- set transaction(transaction: Transaction) {
22
- this.executeContext.setTransaction(transaction);
23
- }
24
- // 必填
25
- set logger(logger: ILogger) {
26
- this.executeContext.setLogger(logger);
27
- }
28
- // 必填
29
- set visitor(visitor: IVisitor) {
30
- this.executeContext.setVisitor(visitor);
31
- }
32
-
33
- set contextFunc(contextFunc: IExecuteContextFunc) {
34
- contextFunc.setExecuteContext(this.executeContext);
35
- this.executeContext.contextFunc = contextFunc;
36
- }
37
-
38
- set contextCfg(contextCfg: ICrudProCfg) {
39
- this.executeContext.setContextCfg(contextCfg);
40
- }
41
-
42
- /**
43
- * 直接执行一个SQL
44
- * @param sqlCfgModel
45
- */
46
- public async executeSQL(sqlCfgModel: ISqlCfgModel): Promise<any> {
47
- const RES_NAME = 'executeResult';
48
-
49
- const sqlCfgModel2 = {
50
- resName: RES_NAME,
51
- executeSql: '',
52
- executeSqlArgs: [],
53
- sqlDatabase: '',
54
- ...sqlCfgModel,
55
- };
56
- Object.assign(sqlCfgModel2, sqlCfgModel);
57
-
58
- const cfgModel: IRequestCfgModel = {
59
- method: `executeSQL:${sqlCfgModel2.executeSql}`,
60
- sqlTable: '',
61
- sqlSimpleName: null,
62
- sqlDatabase: sqlCfgModel.sqlDatabase,
63
- sqlCfgList: [sqlCfgModel2],
64
- };
65
-
66
- const ss = await this.executeCrudByCfg({}, cfgModel);
67
- return ss.getResModelItem(RES_NAME);
68
- }
69
-
70
- /**
71
- * 从DB中读取配置
72
- * @param reqJson
73
- * @param isEnableCache
74
- */
75
- public async executeCrud(reqJson: IRequestModel, isEnableCache: boolean): Promise<ExecuteContext> {
76
- const cfgJson = await this.getCachedCfgByMethod(reqJson.method, isEnableCache);
77
- if (!cfgJson) {
78
- throw new CommonException(Exceptions.CFG_NOT_FOUND, reqJson.method);
79
- }
80
- return await this.executeCrudByCfg(reqJson, cfgJson);
81
- }
82
-
83
- /**
84
- * 核心执行函数,其他都是这个函数的变种
85
- * @param reqJson
86
- * @param cfgJson
87
- */
88
- public async executeCrudByCfg(reqJson: IRequestModel, cfgJson: IRequestCfgModel): Promise<ExecuteContext> {
89
- const logger = this.executeContext.getLogger();
90
- logger.info('CurdPro executeCrudByCfg', cfgJson);
91
-
92
- const exeCtx = this.executeContext;
93
-
94
- if (!cfgJson.method) {
95
- throw new CommonException(Exceptions.CFG_METHOD_EMPTY, JSON.stringify(cfgJson));
96
- }
97
-
98
- reqJson.method = cfgJson.method;
99
-
100
- const reqModel = new RequestModel(reqJson, this.executeContext.getVisitor());
101
- const cfgModel = new RequestCfgModel(cfgJson);
102
-
103
- exeCtx.setReqModel(reqModel);
104
- exeCtx.setCfgModel(cfgModel);
105
-
106
- // 参数校验
107
- this.serviceHub.validateByAllow(cfgModel, reqModel);
108
- this.serviceHub.validateByReject(cfgModel, reqModel);
109
- this.serviceHub.validateByCfg(cfgModel, reqModel);
110
-
111
- // 权限校验
112
- await this.serviceHub.validateByAuthCfg(cfgModel, reqModel);
113
-
114
- // 默认参数设置
115
- await this.serviceHub.updateByCfg(cfgModel, reqModel);
116
-
117
- // 生成SQL
118
- await this.serviceHub.generateSQLList();
119
- // 执行SQL
120
- await this.executeSQLList();
121
- // 执行SQL执行之后的的处理
122
- await this.afterExecuteSQLList();
123
-
124
- return exeCtx;
125
- }
126
-
127
- public async getCachedCfgByMethod(method: string, isEnableCache: boolean): Promise<IRequestCfgModel> {
128
- return this.serviceHub.getCachedCfgByMethod(method, isEnableCache);
129
- }
130
-
131
- private async executeSQLList() {
132
- try {
133
- await this.serviceHub.executeSqlCfgModels();
134
- } catch (e) {
135
- const message = MixinUtils.getErrorMessage(e);
136
- const logger = this.executeContext.getLogger();
137
- logger.error('RUN_SQL_EXCEPTION', message);
138
- throw this.parseRunSqlException(e || {});
139
- }
140
- }
141
-
142
- private parseRunSqlException(e: any): CommonException {
143
- const sqlMessage = '' + e.sqlMessage;
144
- if (e.code === 'ER_DUP_ENTRY' && sqlMessage.startsWith('Duplicate entry')) {
145
- return new CommonException(Exceptions.RUN_SQL_EXCEPTION_ER_DUP_ENTRY, '此对象实体已存在,不能创建重复对象');
146
- }
147
- if (e.code === 'ER_NO_SUCH_TABLE') {
148
- return new CommonException(Exceptions.RUN_SQL_EXCEPTION_ER_NO_SUCH_TABLE, '查询的表不存在:' + sqlMessage);
149
- }
150
- return e;
151
- }
152
-
153
- private async afterExecuteSQLList() {
154
- return this.executeContext.contextFunc.afterExecuteSQLList();
155
- }
156
- }
157
-
158
- export { CrudPro };
@@ -1,13 +0,0 @@
1
- import { ICrudProCfg } from './interfaces';
2
-
3
- export const defaultCrudProCfg: ICrudProCfg = {
4
- sysDatabaseName: 'fatcms',
5
- sysConfigTableName: 'sys_configs', // 数据表:通用配置
6
- dictItemTableName: 'sys_data_dict_item', // 数据表:数据字典,字典项。
7
- methodsTableName: 'sys_crud_methods',
8
- methodsCacheTime: 1000 * 60,
9
- tableMetaCacheTime: 1000 * 3600 * 24 * 365, // 表格元信息缓存时间。 开发环境可以设置的短一些
10
- };
11
-
12
- export const DEFAULT_MAX_LIMIT = 1000;
13
- export const DEFAULT_LIMIT = 100;