midway-fatcms 0.0.1-beta.1

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 (445) hide show
  1. package/README.md +1 -0
  2. package/dist/config/config.default.d.ts +3 -0
  3. package/dist/config/config.default.js +148 -0
  4. package/dist/config/seed/aeskey.txt +1 -0
  5. package/dist/config/utils.d.ts +1 -0
  6. package/dist/config/utils.js +23 -0
  7. package/dist/configuration.d.ts +6 -0
  8. package/dist/configuration.js +89 -0
  9. package/dist/controller/base/BaseApiController.d.ts +31 -0
  10. package/dist/controller/base/BaseApiController.js +138 -0
  11. package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -0
  12. package/dist/controller/gateway/AnyApiGatewayController.js +55 -0
  13. package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -0
  14. package/dist/controller/gateway/CrudMtdGatewayController.js +116 -0
  15. package/dist/controller/gateway/CrudStdGatewayController.d.ts +38 -0
  16. package/dist/controller/gateway/CrudStdGatewayController.js +137 -0
  17. package/dist/controller/gateway/DocGatewayController.d.ts +27 -0
  18. package/dist/controller/gateway/DocGatewayController.js +174 -0
  19. package/dist/controller/gateway/FileController.d.ts +25 -0
  20. package/dist/controller/gateway/FileController.js +129 -0
  21. package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -0
  22. package/dist/controller/gateway/ProxyApiGatewayController.js +78 -0
  23. package/dist/controller/gateway/PublicApiController.d.ts +27 -0
  24. package/dist/controller/gateway/PublicApiController.js +167 -0
  25. package/dist/controller/gateway/StaticController.d.ts +21 -0
  26. package/dist/controller/gateway/StaticController.js +265 -0
  27. package/dist/controller/helpers.controller.d.ts +39 -0
  28. package/dist/controller/helpers.controller.js +188 -0
  29. package/dist/controller/home.controller.d.ts +9 -0
  30. package/dist/controller/home.controller.js +71 -0
  31. package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -0
  32. package/dist/controller/manage/AnyApiMangeApi.js +98 -0
  33. package/dist/controller/manage/AppLogMangeApi.d.ts +10 -0
  34. package/dist/controller/manage/AppLogMangeApi.js +88 -0
  35. package/dist/controller/manage/AppMangeApi.d.ts +10 -0
  36. package/dist/controller/manage/AppMangeApi.js +88 -0
  37. package/dist/controller/manage/AppPageMangeApi.d.ts +10 -0
  38. package/dist/controller/manage/AppPageMangeApi.js +87 -0
  39. package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -0
  40. package/dist/controller/manage/AppSchemaHistoryApi.js +83 -0
  41. package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -0
  42. package/dist/controller/manage/CrudMethodsMangeApi.js +84 -0
  43. package/dist/controller/manage/CrudStandardDesignApi.d.ts +38 -0
  44. package/dist/controller/manage/CrudStandardDesignApi.js +339 -0
  45. package/dist/controller/manage/DataDictManageApi.d.ts +15 -0
  46. package/dist/controller/manage/DataDictManageApi.js +133 -0
  47. package/dist/controller/manage/DeployManageApi.d.ts +19 -0
  48. package/dist/controller/manage/DeployManageApi.js +176 -0
  49. package/dist/controller/manage/DocLibManageApi.d.ts +10 -0
  50. package/dist/controller/manage/DocLibManageApi.js +104 -0
  51. package/dist/controller/manage/DocManageApi.d.ts +11 -0
  52. package/dist/controller/manage/DocManageApi.js +130 -0
  53. package/dist/controller/manage/FileManageApi.d.ts +13 -0
  54. package/dist/controller/manage/FileManageApi.js +77 -0
  55. package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -0
  56. package/dist/controller/manage/LowCodeTplManageApi.js +86 -0
  57. package/dist/controller/manage/MenuManageApi.d.ts +10 -0
  58. package/dist/controller/manage/MenuManageApi.js +93 -0
  59. package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -0
  60. package/dist/controller/manage/ProxyApiMangeApi.js +87 -0
  61. package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -0
  62. package/dist/controller/manage/SuperAdminManageApi.js +149 -0
  63. package/dist/controller/manage/SysConfigMangeApi.d.ts +11 -0
  64. package/dist/controller/manage/SysConfigMangeApi.js +124 -0
  65. package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -0
  66. package/dist/controller/manage/SystemInfoManageApi.js +66 -0
  67. package/dist/controller/manage/UserAccountManageApi.d.ts +14 -0
  68. package/dist/controller/manage/UserAccountManageApi.js +124 -0
  69. package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -0
  70. package/dist/controller/manage/WorkbenchMangeApi.js +103 -0
  71. package/dist/controller/medstatistic/MedAdminController.d.ts +35 -0
  72. package/dist/controller/medstatistic/MedAdminController.js +205 -0
  73. package/dist/controller/medstatistic/MedClientController.d.ts +28 -0
  74. package/dist/controller/medstatistic/MedClientController.js +188 -0
  75. package/dist/controller/medstatistic/MedMessageService.d.ts +19 -0
  76. package/dist/controller/medstatistic/MedMessageService.js +95 -0
  77. package/dist/controller/medstatistic/MedScoreService.d.ts +21 -0
  78. package/dist/controller/medstatistic/MedScoreService.js +107 -0
  79. package/dist/controller/medstatistic/constants.d.ts +32 -0
  80. package/dist/controller/medstatistic/constants.js +43 -0
  81. package/dist/controller/myinfo/AuthController.d.ts +37 -0
  82. package/dist/controller/myinfo/AuthController.js +189 -0
  83. package/dist/controller/myinfo/MyInfoController.d.ts +13 -0
  84. package/dist/controller/myinfo/MyInfoController.js +51 -0
  85. package/dist/controller/render/AppRenderController.d.ts +11 -0
  86. package/dist/controller/render/AppRenderController.js +85 -0
  87. package/dist/controller/test.controller.d.ts +8 -0
  88. package/dist/controller/test.controller.js +51 -0
  89. package/dist/filter/default.filter.d.ts +7 -0
  90. package/dist/filter/default.filter.js +23 -0
  91. package/dist/filter/notfound.filter.d.ts +5 -0
  92. package/dist/filter/notfound.filter.js +20 -0
  93. package/dist/index.d.ts +70 -0
  94. package/dist/index.js +88 -0
  95. package/dist/interface.d.ts +27 -0
  96. package/dist/interface.js +3 -0
  97. package/dist/libs/crud-pro/CrudPro.d.ts +36 -0
  98. package/dist/libs/crud-pro/CrudPro.js +131 -0
  99. package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -0
  100. package/dist/libs/crud-pro/defaultConfigs.js +13 -0
  101. package/dist/libs/crud-pro/exceptions.d.ts +104 -0
  102. package/dist/libs/crud-pro/exceptions.js +117 -0
  103. package/dist/libs/crud-pro/interfaces.d.ts +157 -0
  104. package/dist/libs/crud-pro/interfaces.js +12 -0
  105. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +42 -0
  106. package/dist/libs/crud-pro/models/ExecuteContext.js +79 -0
  107. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +31 -0
  108. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +64 -0
  109. package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -0
  110. package/dist/libs/crud-pro/models/FuncContext.js +6 -0
  111. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -0
  112. package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -0
  113. package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -0
  114. package/dist/libs/crud-pro/models/RequestModel.js +113 -0
  115. package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -0
  116. package/dist/libs/crud-pro/models/ServiceHub.js +2 -0
  117. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +22 -0
  118. package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -0
  119. package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -0
  120. package/dist/libs/crud-pro/models/SqlSegArg.js +12 -0
  121. package/dist/libs/crud-pro/models/Transaction.d.ts +29 -0
  122. package/dist/libs/crud-pro/models/Transaction.js +67 -0
  123. package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +28 -0
  124. package/dist/libs/crud-pro/models/TransactionMySQL.js +76 -0
  125. package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +28 -0
  126. package/dist/libs/crud-pro/models/TransactionPostgres.js +85 -0
  127. package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +34 -0
  128. package/dist/libs/crud-pro/models/TransactionSqlServer.js +92 -0
  129. package/dist/libs/crud-pro/models/keys.d.ts +106 -0
  130. package/dist/libs/crud-pro/models/keys.js +149 -0
  131. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +10 -0
  132. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +61 -0
  133. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -0
  134. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +112 -0
  135. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -0
  136. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +227 -0
  137. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -0
  138. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -0
  139. package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -0
  140. package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -0
  141. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -0
  142. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +342 -0
  143. package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -0
  144. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +174 -0
  145. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -0
  146. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +333 -0
  147. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +28 -0
  148. package/dist/libs/crud-pro/services/CrudProServiceBase.js +78 -0
  149. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +8 -0
  150. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +53 -0
  151. package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -0
  152. package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -0
  153. package/dist/libs/crud-pro/sql.txt +120 -0
  154. package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -0
  155. package/dist/libs/crud-pro/utils/CompareUtils.js +25 -0
  156. package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -0
  157. package/dist/libs/crud-pro/utils/DatabaseName.js +29 -0
  158. package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -0
  159. package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -0
  160. package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -0
  161. package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -0
  162. package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -0
  163. package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -0
  164. package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -0
  165. package/dist/libs/crud-pro/utils/MixinUtils.js +255 -0
  166. package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -0
  167. package/dist/libs/crud-pro/utils/ModelUtils.js +49 -0
  168. package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -0
  169. package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -0
  170. package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -0
  171. package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -0
  172. package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -0
  173. package/dist/libs/crud-pro/utils/TypeUtils.js +166 -0
  174. package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -0
  175. package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -0
  176. package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -0
  177. package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -0
  178. package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -0
  179. package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -0
  180. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -0
  181. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -0
  182. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -0
  183. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +21 -0
  184. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -0
  185. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +11 -0
  186. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -0
  187. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +11 -0
  188. package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -0
  189. package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -0
  190. package/dist/libs/utils/common-dto.d.ts +18 -0
  191. package/dist/libs/utils/common-dto.js +40 -0
  192. package/dist/libs/utils/crypto-utils.d.ts +3 -0
  193. package/dist/libs/utils/crypto-utils.js +46 -0
  194. package/dist/libs/utils/fatcms-request.d.ts +30 -0
  195. package/dist/libs/utils/fatcms-request.js +104 -0
  196. package/dist/libs/utils/functions.d.ts +4 -0
  197. package/dist/libs/utils/functions.js +63 -0
  198. package/dist/libs/utils/ordernum-utils.d.ts +2 -0
  199. package/dist/libs/utils/ordernum-utils.js +13 -0
  200. package/dist/libs/utils/parseConfig.d.ts +7 -0
  201. package/dist/libs/utils/parseConfig.js +44 -0
  202. package/dist/libs/utils/parseCreateSql.d.ts +5 -0
  203. package/dist/libs/utils/parseCreateSql.js +86 -0
  204. package/dist/libs/utils/render-utils.d.ts +28 -0
  205. package/dist/libs/utils/render-utils.js +135 -0
  206. package/dist/middleware/forbidden.middleware.d.ts +10 -0
  207. package/dist/middleware/forbidden.middleware.js +70 -0
  208. package/dist/middleware/global.middleware.d.ts +10 -0
  209. package/dist/middleware/global.middleware.js +246 -0
  210. package/dist/middleware/permission.middleware.d.ts +18 -0
  211. package/dist/middleware/permission.middleware.js +74 -0
  212. package/dist/middleware/tx.middleware.d.ts +9 -0
  213. package/dist/middleware/tx.middleware.js +40 -0
  214. package/dist/models/SystemEntities.d.ts +98 -0
  215. package/dist/models/SystemEntities.js +2 -0
  216. package/dist/models/SystemPerm.d.ts +95 -0
  217. package/dist/models/SystemPerm.js +100 -0
  218. package/dist/models/SystemTables.d.ts +27 -0
  219. package/dist/models/SystemTables.js +30 -0
  220. package/dist/models/bizmodels.d.ts +69 -0
  221. package/dist/models/bizmodels.js +34 -0
  222. package/dist/models/contextLogger.d.ts +25 -0
  223. package/dist/models/contextLogger.js +112 -0
  224. package/dist/models/devops.d.ts +12 -0
  225. package/dist/models/devops.js +19 -0
  226. package/dist/models/userSession.d.ts +61 -0
  227. package/dist/models/userSession.js +165 -0
  228. package/dist/schedule/index.d.ts +3 -0
  229. package/dist/schedule/index.js +69 -0
  230. package/dist/service/AuthService.d.ts +70 -0
  231. package/dist/service/AuthService.js +248 -0
  232. package/dist/service/EnumInfoService.d.ts +30 -0
  233. package/dist/service/EnumInfoService.js +123 -0
  234. package/dist/service/FileCenterService.d.ts +43 -0
  235. package/dist/service/FileCenterService.js +347 -0
  236. package/dist/service/SysConfigService.d.ts +7 -0
  237. package/dist/service/SysConfigService.js +45 -0
  238. package/dist/service/UserAccountService.d.ts +23 -0
  239. package/dist/service/UserAccountService.js +103 -0
  240. package/dist/service/UserSessionService.d.ts +16 -0
  241. package/dist/service/UserSessionService.js +85 -0
  242. package/dist/service/VisitStatService.d.ts +14 -0
  243. package/dist/service/VisitStatService.js +165 -0
  244. package/dist/service/WorkbenchService.d.ts +20 -0
  245. package/dist/service/WorkbenchService.js +153 -0
  246. package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -0
  247. package/dist/service/anyapi/AnyApiSandboxService.js +122 -0
  248. package/dist/service/anyapi/AnyApiService.d.ts +27 -0
  249. package/dist/service/anyapi/AnyApiService.js +179 -0
  250. package/dist/service/base/ApiBaseService.d.ts +15 -0
  251. package/dist/service/base/ApiBaseService.js +50 -0
  252. package/dist/service/base/ApiRateLimiter.d.ts +10 -0
  253. package/dist/service/base/ApiRateLimiter.js +51 -0
  254. package/dist/service/base/BaseService.d.ts +29 -0
  255. package/dist/service/base/BaseService.js +79 -0
  256. package/dist/service/base/RedisCacheService.d.ts +13 -0
  257. package/dist/service/base/RedisCacheService.js +50 -0
  258. package/dist/service/crudstd/CrudStdActionService.d.ts +17 -0
  259. package/dist/service/crudstd/CrudStdActionService.js +32 -0
  260. package/dist/service/crudstd/CrudStdConstant.d.ts +58 -0
  261. package/dist/service/crudstd/CrudStdConstant.js +64 -0
  262. package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -0
  263. package/dist/service/crudstd/CrudStdRelationService.js +85 -0
  264. package/dist/service/crudstd/CrudStdService.d.ts +50 -0
  265. package/dist/service/crudstd/CrudStdService.js +182 -0
  266. package/dist/service/curd/CurdMixByAccountService.d.ts +9 -0
  267. package/dist/service/curd/CurdMixByAccountService.js +87 -0
  268. package/dist/service/curd/CurdMixByDictService.d.ts +13 -0
  269. package/dist/service/curd/CurdMixByDictService.js +111 -0
  270. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +22 -0
  271. package/dist/service/curd/CurdMixByLinkToCustomService.js +154 -0
  272. package/dist/service/curd/CurdMixBySysConfigService.d.ts +9 -0
  273. package/dist/service/curd/CurdMixBySysConfigService.js +78 -0
  274. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +10 -0
  275. package/dist/service/curd/CurdMixByWorkbenchService.js +76 -0
  276. package/dist/service/curd/CurdMixService.d.ts +17 -0
  277. package/dist/service/curd/CurdMixService.js +76 -0
  278. package/dist/service/curd/CurdMixUtils.d.ts +28 -0
  279. package/dist/service/curd/CurdMixUtils.js +201 -0
  280. package/dist/service/curd/CurdProService.d.ts +39 -0
  281. package/dist/service/curd/CurdProService.js +322 -0
  282. package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -0
  283. package/dist/service/proxyapi/ProxyApiLoadService.js +164 -0
  284. package/dist/service/proxyapi/ProxyApiService.d.ts +60 -0
  285. package/dist/service/proxyapi/ProxyApiService.js +260 -0
  286. package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -0
  287. package/dist/service/proxyapi/ProxyApiUtils.js +34 -0
  288. package/dist/service/proxyapi/RouteHandler.d.ts +5 -0
  289. package/dist/service/proxyapi/RouteHandler.js +9 -0
  290. package/dist/service/proxyapi/RouteTrie.d.ts +12 -0
  291. package/dist/service/proxyapi/RouteTrie.js +63 -0
  292. package/dist/service/proxyapi/WeightedRandom.d.ts +9 -0
  293. package/dist/service/proxyapi/WeightedRandom.js +31 -0
  294. package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -0
  295. package/dist/service/proxyapi/WeightedRoundRobin.js +32 -0
  296. package/index.d.ts +10 -0
  297. package/package.json +71 -0
  298. package/src/config/config.default.ts +172 -0
  299. package/src/config/seed/aeskey.txt +1 -0
  300. package/src/config/utils.ts +23 -0
  301. package/src/configuration.ts +83 -0
  302. package/src/controller/base/BaseApiController.ts +145 -0
  303. package/src/controller/gateway/AnyApiGatewayController.ts +33 -0
  304. package/src/controller/gateway/CrudMtdGatewayController.ts +107 -0
  305. package/src/controller/gateway/CrudStdGatewayController.ts +101 -0
  306. package/src/controller/gateway/DocGatewayController.ts +165 -0
  307. package/src/controller/gateway/FileController.ts +110 -0
  308. package/src/controller/gateway/ProxyApiGatewayController.ts +47 -0
  309. package/src/controller/gateway/PublicApiController.ts +145 -0
  310. package/src/controller/gateway/StaticController.ts +303 -0
  311. package/src/controller/helpers.controller.ts +161 -0
  312. package/src/controller/home.controller.ts +71 -0
  313. package/src/controller/manage/AnyApiMangeApi.ts +66 -0
  314. package/src/controller/manage/AppLogMangeApi.ts +53 -0
  315. package/src/controller/manage/AppMangeApi.ts +53 -0
  316. package/src/controller/manage/AppPageMangeApi.ts +52 -0
  317. package/src/controller/manage/AppSchemaHistoryApi.ts +49 -0
  318. package/src/controller/manage/CrudMethodsMangeApi.ts +49 -0
  319. package/src/controller/manage/CrudStandardDesignApi.ts +353 -0
  320. package/src/controller/manage/DataDictManageApi.ts +78 -0
  321. package/src/controller/manage/DeployManageApi.ts +179 -0
  322. package/src/controller/manage/DocLibManageApi.ts +69 -0
  323. package/src/controller/manage/DocManageApi.ts +99 -0
  324. package/src/controller/manage/FileManageApi.ts +45 -0
  325. package/src/controller/manage/LowCodeTplManageApi.ts +52 -0
  326. package/src/controller/manage/MenuManageApi.ts +63 -0
  327. package/src/controller/manage/ProxyApiMangeApi.ts +52 -0
  328. package/src/controller/manage/SuperAdminManageApi.ts +138 -0
  329. package/src/controller/manage/SysConfigMangeApi.ts +95 -0
  330. package/src/controller/manage/SystemInfoManageApi.ts +48 -0
  331. package/src/controller/manage/UserAccountManageApi.ts +88 -0
  332. package/src/controller/manage/WorkbenchMangeApi.ts +72 -0
  333. package/src/controller/medstatistic/MedAdminController.ts +221 -0
  334. package/src/controller/medstatistic/MedClientController.ts +188 -0
  335. package/src/controller/medstatistic/MedMessageService.ts +89 -0
  336. package/src/controller/medstatistic/MedScoreService.ts +108 -0
  337. package/src/controller/medstatistic/constants.ts +63 -0
  338. package/src/controller/myinfo/AuthController.ts +174 -0
  339. package/src/controller/myinfo/MyInfoController.ts +32 -0
  340. package/src/controller/render/AppRenderController.ts +76 -0
  341. package/src/controller/test.controller.ts +37 -0
  342. package/src/filter/default.filter.ts +13 -0
  343. package/src/filter/notfound.filter.ts +10 -0
  344. package/src/index.ts +70 -0
  345. package/src/interface.ts +31 -0
  346. package/src/libs/crud-pro/CrudPro.ts +158 -0
  347. package/src/libs/crud-pro/defaultConfigs.ts +13 -0
  348. package/src/libs/crud-pro/exceptions.ts +124 -0
  349. package/src/libs/crud-pro/interfaces.ts +183 -0
  350. package/src/libs/crud-pro/models/ExecuteContext.ts +111 -0
  351. package/src/libs/crud-pro/models/ExecuteContextFunc.ts +86 -0
  352. package/src/libs/crud-pro/models/FuncContext.ts +21 -0
  353. package/src/libs/crud-pro/models/RequestCfgModel.ts +141 -0
  354. package/src/libs/crud-pro/models/RequestModel.ts +141 -0
  355. package/src/libs/crud-pro/models/ServiceHub.ts +32 -0
  356. package/src/libs/crud-pro/models/SqlCfgModel.ts +52 -0
  357. package/src/libs/crud-pro/models/SqlSegArg.ts +13 -0
  358. package/src/libs/crud-pro/models/Transaction.ts +74 -0
  359. package/src/libs/crud-pro/models/TransactionMySQL.ts +79 -0
  360. package/src/libs/crud-pro/models/TransactionPostgres.ts +91 -0
  361. package/src/libs/crud-pro/models/TransactionSqlServer.ts +107 -0
  362. package/src/libs/crud-pro/models/keys.ts +159 -0
  363. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +75 -0
  364. package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +128 -0
  365. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +279 -0
  366. package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +60 -0
  367. package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +180 -0
  368. package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +373 -0
  369. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +202 -0
  370. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +397 -0
  371. package/src/libs/crud-pro/services/CrudProServiceBase.ts +98 -0
  372. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +59 -0
  373. package/src/libs/crud-pro/services/CurdProServiceHub.ts +92 -0
  374. package/src/libs/crud-pro/sql.txt +120 -0
  375. package/src/libs/crud-pro/utils/CompareUtils.ts +23 -0
  376. package/src/libs/crud-pro/utils/DatabaseName.ts +40 -0
  377. package/src/libs/crud-pro/utils/DateTimeUtils.ts +20 -0
  378. package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +64 -0
  379. package/src/libs/crud-pro/utils/MessageParseUtils.ts +33 -0
  380. package/src/libs/crud-pro/utils/MixinUtils.ts +285 -0
  381. package/src/libs/crud-pro/utils/ModelUtils.ts +55 -0
  382. package/src/libs/crud-pro/utils/MultiKeyMap.ts +72 -0
  383. package/src/libs/crud-pro/utils/SqlFuncUtils.ts +29 -0
  384. package/src/libs/crud-pro/utils/TypeUtils.ts +188 -0
  385. package/src/libs/crud-pro/utils/ValidateUtils.ts +167 -0
  386. package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +20 -0
  387. package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +22 -0
  388. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +22 -0
  389. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +26 -0
  390. package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +11 -0
  391. package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +11 -0
  392. package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +129 -0
  393. package/src/libs/utils/common-dto.ts +52 -0
  394. package/src/libs/utils/crypto-utils.ts +52 -0
  395. package/src/libs/utils/fatcms-request.ts +115 -0
  396. package/src/libs/utils/functions.ts +67 -0
  397. package/src/libs/utils/ordernum-utils.ts +18 -0
  398. package/src/libs/utils/parseConfig.ts +62 -0
  399. package/src/libs/utils/parseCreateSql.ts +91 -0
  400. package/src/libs/utils/render-utils.ts +184 -0
  401. package/src/middleware/forbidden.middleware.ts +71 -0
  402. package/src/middleware/global.middleware.ts +278 -0
  403. package/src/middleware/permission.middleware.ts +81 -0
  404. package/src/middleware/tx.middleware.ts +30 -0
  405. package/src/models/SystemEntities.ts +115 -0
  406. package/src/models/SystemPerm.ts +105 -0
  407. package/src/models/SystemTables.ts +30 -0
  408. package/src/models/bizmodels.ts +89 -0
  409. package/src/models/contextLogger.ts +132 -0
  410. package/src/models/devops.ts +17 -0
  411. package/src/models/userSession.ts +216 -0
  412. package/src/schedule/index.ts +73 -0
  413. package/src/service/AuthService.ts +270 -0
  414. package/src/service/EnumInfoService.ts +129 -0
  415. package/src/service/FileCenterService.ts +394 -0
  416. package/src/service/SysConfigService.ts +34 -0
  417. package/src/service/UserAccountService.ts +100 -0
  418. package/src/service/UserSessionService.ts +81 -0
  419. package/src/service/VisitStatService.ts +179 -0
  420. package/src/service/WorkbenchService.ts +160 -0
  421. package/src/service/anyapi/AnyApiSandboxService.ts +121 -0
  422. package/src/service/anyapi/AnyApiService.ts +184 -0
  423. package/src/service/base/ApiBaseService.ts +42 -0
  424. package/src/service/base/ApiRateLimiter.ts +59 -0
  425. package/src/service/base/BaseService.ts +74 -0
  426. package/src/service/base/RedisCacheService.ts +38 -0
  427. package/src/service/crudstd/CrudStdActionService.ts +27 -0
  428. package/src/service/crudstd/CrudStdConstant.ts +62 -0
  429. package/src/service/crudstd/CrudStdRelationService.ts +78 -0
  430. package/src/service/crudstd/CrudStdService.ts +188 -0
  431. package/src/service/curd/CurdMixByAccountService.ts +83 -0
  432. package/src/service/curd/CurdMixByDictService.ts +113 -0
  433. package/src/service/curd/CurdMixByLinkToCustomService.ts +167 -0
  434. package/src/service/curd/CurdMixBySysConfigService.ts +78 -0
  435. package/src/service/curd/CurdMixByWorkbenchService.ts +68 -0
  436. package/src/service/curd/CurdMixService.ts +65 -0
  437. package/src/service/curd/CurdMixUtils.ts +248 -0
  438. package/src/service/curd/CurdProService.ts +379 -0
  439. package/src/service/proxyapi/ProxyApiLoadService.ts +165 -0
  440. package/src/service/proxyapi/ProxyApiService.ts +262 -0
  441. package/src/service/proxyapi/ProxyApiUtils.ts +32 -0
  442. package/src/service/proxyapi/RouteHandler.ts +8 -0
  443. package/src/service/proxyapi/RouteTrie.ts +74 -0
  444. package/src/service/proxyapi/WeightedRandom.ts +37 -0
  445. package/src/service/proxyapi/WeightedRoundRobin.ts +44 -0
@@ -0,0 +1,120 @@
1
+ drop table sys_configs;
2
+ create table sys_configs
3
+ (
4
+ id bigint unsigned auto_increment primary key,
5
+ config_name varchar(256) not null comment '配置项的中文名',
6
+ config_code varchar(128) not null comment '配置项的唯一编码',
7
+ config_type varchar(64) not null comment '配置类型: json/xml/sheet/text',
8
+ config_content longtext not null comment '配置内容',
9
+
10
+ created_by varchar(128) null comment '创建人',
11
+ modified_by varchar(128) null comment '修改人',
12
+ created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
13
+ modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
14
+ status int default 0 not null comment '状态: 0 未启用, 1 已启用',
15
+
16
+ constraint code_idx unique (config_code)
17
+ )
18
+ charset=utf8;
19
+
20
+
21
+
22
+
23
+
24
+ drop table sys_crud_methods;
25
+ create table sys_crud_methods
26
+ (
27
+ id bigint unsigned auto_increment comment '自增ID'
28
+ primary key,
29
+ method varchar(256) not null comment '方法名,全局唯一',
30
+ columns varchar(256) null comment '返回哪些列,为空就是返回所有列',
31
+ max_limit bigint default 20 null comment '最大一次性返回的数量',
32
+ sql_simple_name varchar(256) null comment '简单查询模式;SQL缩写名称',
33
+ sql_cfg_list text null comment '自定义查询模式查询模式;大JSON; ISqlCfgModel数组',
34
+ sql_table varchar(256) null comment '操作哪个表;可以为空, originSql中不包含@@table时可以为空',
35
+ sql_schema varchar(256) null comment '操作哪个数据库Schema;可以为空,',
36
+ sql_database varchar(256) null comment '操作哪个数据库;可以为空,用于运行时选择数据库链接',
37
+ transaction_enable bigint default 0 null comment '是否开启事务,默认不开启,每条语句都是autocommit',
38
+ transaction_isolation bigint default 1 null comment '事务隔离级别; 实际只能是(0,1,2,4,8)',
39
+ more_config longtext null comment '更多自定义配置;大JSON',
40
+
41
+ created_by varchar(128) null comment '创建人',
42
+ modified_by varchar(128) null comment '修改人',
43
+ created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
44
+ modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
45
+ status int default 0 not null comment '状态: 0 未启用, 1 已启用',
46
+
47
+ constraint method_idx unique (method)
48
+ )
49
+ comment 'CrudPro方法配置' charset=utf8;
50
+
51
+
52
+
53
+
54
+
55
+ drop table sys_data_dict;
56
+ create table sys_data_dict
57
+ (
58
+ id bigint unsigned auto_increment
59
+ primary key,
60
+ dict_code varchar(128) not null comment '唯一编码,字母数字下划线点号',
61
+ dict_name varchar(256) not null comment '中文名称',
62
+ dict_desc varchar(512) null comment '中文描述',
63
+ dict_type bigint default 1 not null comment '1普通,2树状',
64
+ ext_info_desc longtext null comment '扩展字段描述信息',
65
+
66
+ created_by varchar(128) null comment '创建人',
67
+ modified_by varchar(128) null comment '修改人',
68
+ created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
69
+ modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
70
+ status int default 0 not null comment '状态: 0 未启用, 1 已启用',
71
+
72
+ constraint code_idx unique (dict_code)
73
+ )
74
+ comment '数据字典' charset=utf8;
75
+
76
+
77
+
78
+ drop table sys_data_dict_item;
79
+ create table sys_data_dict_item
80
+ (
81
+ id bigint unsigned auto_increment comment '条目ID'
82
+ primary key,
83
+ parent_id bigint default 0 null comment '条目父ID',
84
+ dict_code varchar(128) default '0' not null comment '字典编码',
85
+
86
+ label varchar(256) not null comment '条目显示名称;如SexEnum 男,女',
87
+ value varchar(128) not null comment '条目值;如SexEnum 0,1',
88
+ code varchar(128) not null comment '条目代码;如SexEnum BOY,GIRL; 如果不需要,请将code的值设置成与value一样。',
89
+ icon varchar(256) null comment '条目图标: 图标URL',
90
+ style varchar(64) null comment '条目样式;样式枚举值:red,yellow,...',
91
+ sort bigint default 1 null comment '排序码',
92
+
93
+ ext1 varchar(128) null comment '扩展字段1',
94
+ ext2 varchar(128) null comment '扩展字段2',
95
+ ext3 varchar(128) null comment '扩展字段3',
96
+ ext4 varchar(128) null comment '扩展字段4',
97
+ ext5 varchar(128) null comment '扩展字段5',
98
+ ext6 varchar(128) null comment '扩展字段6',
99
+ ext7 varchar(128) null comment '扩展字段7',
100
+ ext8 varchar(128) null comment '扩展字段8',
101
+ ext9 varchar(128) null comment '扩展字段9',
102
+ ext10 varchar(128) null comment '扩展字段10',
103
+ ext_more longtext null comment '扩展字段大JSON',
104
+
105
+ created_by varchar(128) null comment '创建人',
106
+ modified_by varchar(128) null comment '修改人',
107
+ created_at datetime default CURRENT_TIMESTAMP not null comment '创建时间',
108
+ modified_at datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
109
+ status int default 0 not null comment '状态: 0 未启用, 1 已启用',
110
+
111
+ constraint code_dict_code_uindex
112
+ unique (code, dict_code),
113
+ constraint code_dict_value_uindex
114
+ unique (value, dict_code)
115
+ )
116
+ comment '数据字典每一项; 如常见枚举类定义:class SexEnum { BOY(''男'', 1),GIRL(''女'', 0)}' charset=utf8;
117
+
118
+ create index code_idx
119
+ on sys_data_dict_item (dict_code);
120
+
@@ -0,0 +1,23 @@
1
+ const CompareUtils = {
2
+ eq: (a: any, b: any) => {
3
+ // eslint-disable-next-line eqeqeq
4
+ return a == b; // 就是两个等号,兼容性比较。
5
+ },
6
+ ne: (a: any, b: any) => {
7
+ return !CompareUtils.eq(a, b);
8
+ },
9
+ gt: (a: any, b: any) => {
10
+ return a > b;
11
+ },
12
+ gte: (a: any, b: any) => {
13
+ return a >= b;
14
+ },
15
+ lt: (a: any, b: any) => {
16
+ return a < b;
17
+ },
18
+ lte: (a: any, b: any) => {
19
+ return a <= b;
20
+ },
21
+ };
22
+
23
+ export { CompareUtils };
@@ -0,0 +1,40 @@
1
+ import { SqlDbType } from '../models/keys'
2
+
3
+ interface IDbTypeAndName {
4
+ dbType: SqlDbType,
5
+ dbName: string;
6
+ }
7
+
8
+ const SPLIT_CONST = "_________"
9
+
10
+ function parseDatabaseName(databaseName: string): IDbTypeAndName {
11
+ const dbNameArr = databaseName.split(SPLIT_CONST);
12
+ if (dbNameArr.length === 1) {
13
+ return {
14
+ dbType: SqlDbType.mysql, // 默认
15
+ dbName: dbNameArr[0]
16
+ }
17
+ }
18
+
19
+ if (dbNameArr.length > 1) {
20
+ const [dbType0, dbName] = dbNameArr;
21
+ const dbType = dbType0 as any;
22
+ return {
23
+ dbType,
24
+ dbName
25
+ }
26
+ }
27
+ return null;
28
+ }
29
+
30
+
31
+ function toDatabaseNameStr(dbType: SqlDbType, dbName: string): string {
32
+ return [dbType, dbName].join(SPLIT_CONST)
33
+ }
34
+
35
+
36
+ export {
37
+ SPLIT_CONST,
38
+ parseDatabaseName,
39
+ toDatabaseNameStr
40
+ }
@@ -0,0 +1,20 @@
1
+ import * as moment from 'moment';
2
+
3
+ const DateTimeUtils = {
4
+ // 以毫秒为单位的时间戳
5
+ getCurrentTimeStampMs(): number {
6
+ return Date.now();
7
+ },
8
+ // 以秒为单位的时间戳
9
+ getCurrentTimeStampSecond(): number {
10
+ return Math.floor(Date.now() / 1000);
11
+ },
12
+ getCurrentDateFormat(format:string): string {
13
+ return moment(Date.now()).format(format);
14
+ },
15
+ getYesterdayDateFormat(format:string): string {
16
+ return moment(Date.now()).add(-1, 'day').format(format);
17
+ },
18
+ };
19
+
20
+ export { DateTimeUtils };
@@ -0,0 +1,64 @@
1
+ import { MixinUtils } from './MixinUtils';
2
+
3
+ interface MemoryCacheProps {
4
+ keepTime?: number;
5
+ requestFn: () => Promise<any[]>;
6
+ getKeyFn: (obj: any) => string;
7
+ }
8
+
9
+ const DEFAULT_KEEP_TIME = 1000 * 60; // 内存缓存时间默认 1分钟
10
+
11
+ export default class MemoryRefreshCache {
12
+ private props: MemoryCacheProps;
13
+
14
+ private expireTime: number;
15
+ private loadingPromise: any;
16
+ private itemsMap: Record<string, any> = {};
17
+ private itemsList: any[] = [];
18
+
19
+ constructor(props?: MemoryCacheProps) {
20
+ this.props = props;
21
+ this.expireTime = 0;
22
+ }
23
+
24
+ setProps(props: MemoryCacheProps) {
25
+ this.props = props;
26
+ }
27
+
28
+ public async getItem(key: string): Promise<any> {
29
+ await this.makeSureCacheAvailable();
30
+ return this.itemsMap[key];
31
+ }
32
+
33
+ public async getList(): Promise<any> {
34
+ await this.makeSureCacheAvailable();
35
+ return this.itemsList;
36
+ }
37
+
38
+ private async makeSureCacheAvailable() {
39
+ if (this.expireTime < Date.now()) {
40
+ await this.refreshMemoryCache();
41
+ }
42
+ }
43
+
44
+ private async refreshMemoryCache() {
45
+ const keepTime = this.props.keepTime || DEFAULT_KEEP_TIME;
46
+ const getKeyFn = this.props.getKeyFn;
47
+ const requestFn = this.props.requestFn;
48
+
49
+ if (!this.loadingPromise) {
50
+ this.loadingPromise = new Promise(resolve => {
51
+ (async () => {
52
+ const itemsList = await requestFn();
53
+ this.itemsList = itemsList || [];
54
+ this.itemsMap = MixinUtils.toMap(itemsList, getKeyFn);
55
+
56
+ this.expireTime = Date.now() + keepTime;
57
+ this.loadingPromise = null;
58
+ resolve(true);
59
+ })();
60
+ });
61
+ }
62
+ return this.loadingPromise;
63
+ }
64
+ }
@@ -0,0 +1,33 @@
1
+ import { ExecuteContext } from '../models/ExecuteContext';
2
+ import { KeysOfSimpleSQL } from '../models/keys';
3
+ import * as _ from 'lodash';
4
+
5
+ const messageParseUtils = {
6
+ getResMessage(ExecuteContext: ExecuteContext): string {
7
+ const cfgModel = ExecuteContext.getCfgModel();
8
+ const resModel = ExecuteContext.getResModel();
9
+ if (cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY) {
10
+ const rows = _.get(resModel, 'rows') || [];
11
+ return `成功查询到${rows.length}条数据`;
12
+ }
13
+ if (cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_QUERY_PAGE) {
14
+ const total_count = _.get(resModel, 'total_count') || 0;
15
+ return `成功查询到${total_count}条数据`;
16
+ }
17
+ if (cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_INSERT) {
18
+ const affectedRows = _.get(resModel, 'affected.affectedRows');
19
+ return `成功保存${affectedRows}条数据`;
20
+ }
21
+ if (cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_UPDATE) {
22
+ const affectedRows = _.get(resModel, 'affected.affectedRows');
23
+ return `成功修改${affectedRows}条数据`;
24
+ }
25
+ if (cfgModel.sqlSimpleName === KeysOfSimpleSQL.SIMPLE_DELETE) {
26
+ const affectedRows = _.get(resModel, 'affected.affectedRows');
27
+ return `成功删除${affectedRows}条数据`;
28
+ }
29
+ return null;
30
+ },
31
+ };
32
+
33
+ export { messageParseUtils };
@@ -0,0 +1,285 @@
1
+ import { CommonException, Exceptions } from '../exceptions';
2
+
3
+ const FIELD_NAME_REG_EXP = /^[a-zA-Z][0-9a-zA-Z_]+$/;
4
+
5
+ const MixinUtils = {
6
+ isNil(obj: any): boolean {
7
+ return typeof obj === 'undefined' || obj === null;
8
+ },
9
+ isNotNil(obj: any): boolean {
10
+ return !MixinUtils.isNil(obj);
11
+ },
12
+ isEmpty(obj: any): boolean {
13
+ if (typeof obj === 'number') {
14
+ return false;
15
+ }
16
+
17
+ if (obj) {
18
+ if (typeof obj === 'string') {
19
+ const str = obj as string;
20
+ return str.length === 0;
21
+ }
22
+
23
+ if (Array.isArray(obj)) {
24
+ return obj.length === 0;
25
+ }
26
+
27
+ if (typeof obj === 'object') {
28
+ return Object.keys(obj).length === 0;
29
+ }
30
+ }
31
+
32
+ return !obj;
33
+ },
34
+
35
+ isNotEmpty(obj: any): boolean {
36
+ return !MixinUtils.isEmpty(obj);
37
+ },
38
+
39
+ equals(obj1: any, obj2: any): boolean {
40
+ return obj1 === obj2;
41
+ },
42
+
43
+ equalsIgnoreCase(str1: string, str2: string): boolean {
44
+ if (str1 && str2) {
45
+ const str1Upper = str1.toUpperCase();
46
+ const str2Upper = str2.toUpperCase();
47
+ return str1Upper === str2Upper;
48
+ }
49
+ return !str1 && !str2;
50
+ },
51
+
52
+ startsWith(str1: string, str2: string): boolean {
53
+ if (typeof str1 === "string" && typeof str2 === "string") {
54
+ return str1.startsWith(str2);
55
+ }
56
+ return false;
57
+ },
58
+
59
+ isValidFieldName(s: string): boolean {
60
+ if (MixinUtils.isEmpty(s)) {
61
+ return false;
62
+ }
63
+ return FIELD_NAME_REG_EXP.test(s);
64
+ },
65
+
66
+ isElementAllMatch(array: any, match: (e: any) => boolean): boolean {
67
+ for (let i = 0; i < array.length; i++) {
68
+ const e = array[i];
69
+ if (!match(e)) {
70
+ return false;
71
+ }
72
+ }
73
+ return true;
74
+ },
75
+
76
+ parseColumns(columns: string | string[]) {
77
+ return MixinUtils.parseStringArray(columns);
78
+ },
79
+
80
+ parseStringArray(columns: string | string[]): any[] {
81
+ if (!columns || columns === '*') {
82
+ return [];
83
+ }
84
+
85
+ if (typeof columns === 'string') {
86
+ const columnsTrim = columns.trim();
87
+ // JSON形式
88
+ if (columnsTrim.startsWith('[') && columnsTrim.endsWith(']')) {
89
+ return MixinUtils.parseJsonObject(columnsTrim);
90
+ }
91
+ //逗号形式
92
+ return columnsTrim.split(',').filter(s => {
93
+ return s.length > 0;
94
+ });
95
+ }
96
+
97
+ if (!Array.isArray(columns)) {
98
+ throw new CommonException(Exceptions.CFG_PARSE_ERROR, 'params must be an array or string');
99
+ }
100
+
101
+ return columns.filter(s => {
102
+ return !MixinUtils.isEmpty(s);
103
+ });
104
+ },
105
+
106
+ removeStringPrefix(str: string, prefix: string): string {
107
+ if (!str) {
108
+ return '';
109
+ }
110
+ if (str === prefix) {
111
+ return '';
112
+ }
113
+ if (str.startsWith(prefix)) {
114
+ return str.substring(prefix.length);
115
+ }
116
+ return str;
117
+ },
118
+ getErrorMessage(e: any) {
119
+ if (!e) {
120
+ return '';
121
+ }
122
+ const obj = {};
123
+ let fieldCount = 0;
124
+ const keys = ['code', 'message', 'errno', 'sql', 'sqlState', 'sqlMessage', 'stack'];
125
+ for (let i = 0; i < keys.length; i++) {
126
+ const key = keys[i];
127
+ const value = e[key];
128
+ if (value) {
129
+ obj[key] = value;
130
+ fieldCount++;
131
+ }
132
+ }
133
+
134
+ if (fieldCount > 0) {
135
+ return JSON.stringify(obj);
136
+ }
137
+
138
+ return '' + e;
139
+ },
140
+
141
+ parseJsonObject(str: any): any {
142
+ if (!str) {
143
+ return null;
144
+ }
145
+
146
+ if (typeof str === 'object' || Array.isArray(str)) {
147
+ return str;
148
+ }
149
+
150
+ if (typeof str === 'string') {
151
+ str = str.trim();
152
+ if (str.startsWith('{') || str.startsWith('[')) {
153
+ try {
154
+ return JSON.parse(str);
155
+ } catch (e) {
156
+ return null;
157
+ }
158
+ }
159
+ }
160
+
161
+ return null;
162
+ },
163
+
164
+ /**
165
+ * 将数组转换成Map方便查询
166
+ * @param list
167
+ * @param getKey
168
+ */
169
+ toMap<T>(list: T[], getKey: (e: T) => string): Record<string, T> {
170
+ const map = {};
171
+ if (list && list.length) {
172
+ for (let i = 0; i < list.length; i++) {
173
+ const e = list[i];
174
+ const key = getKey(e);
175
+ map[key] = e;
176
+ }
177
+ }
178
+ return map;
179
+ },
180
+
181
+ /**
182
+ * 将数组转换成Map方便查询
183
+ * @param list
184
+ * @param getKey
185
+ */
186
+ toNewMap<T>(list: T[], getKey: (e: T) => string): Map<string, T> {
187
+ const map = new Map();
188
+ if (list && list.length) {
189
+ for (let i = 0; i < list.length; i++) {
190
+ const e = list[i];
191
+ const key = getKey(e);
192
+ map.set(key, e);
193
+ }
194
+ }
195
+ return map;
196
+ },
197
+
198
+ deepTravelObject(obj: any, objTravelCallback: (value, key, index, keyPath) => void, keyPath: string) {
199
+ if (!obj || !objTravelCallback) {
200
+ return;
201
+ }
202
+
203
+ if (typeof obj === 'object') {
204
+ const keys = Object.keys(obj);
205
+
206
+ for (let i = 0; i < keys.length; i++) {
207
+ const objKey = keys[i];
208
+ const keyStr = objKey;
209
+ const value = obj[objKey];
210
+ const curKeyPath = keyPath + '.' + keyStr;
211
+ objTravelCallback(value, keyStr, null, curKeyPath);
212
+ MixinUtils.deepTravelObject(value, objTravelCallback, curKeyPath);
213
+ }
214
+ }
215
+
216
+ if (Array.isArray(obj)) {
217
+ const collection = obj;
218
+ for (let i = 0; i < collection.length; i++) {
219
+ const value = collection[i];
220
+ const curKeyPath = keyPath + '[' + i + ']';
221
+ objTravelCallback(value, null, i, curKeyPath);
222
+ MixinUtils.deepTravelObject(value, objTravelCallback, curKeyPath);
223
+ }
224
+ }
225
+ },
226
+ removeEmptyAttrs(obj: any): any {
227
+ const result = {};
228
+ const keys = Object.keys(obj);
229
+ for (let i = 0; i < keys.length; i++) {
230
+ const key = keys[i];
231
+ const value = obj[key];
232
+ if (MixinUtils.isNotNil(value)) {
233
+ result[key] = value;
234
+ }
235
+ }
236
+ return result;
237
+ },
238
+
239
+ /**
240
+ * 判断集合A中,是否包含任意一个集合B中的元素
241
+ * @param a
242
+ * @param b
243
+ */
244
+ hasAny(a: string[], b: string[]): boolean {
245
+ const aSet = new Set(a);
246
+ for (let i = 0; i < b.length; i++) {
247
+ const bElement = b[i];
248
+ if (aSet.has(bElement)) {
249
+ return true;
250
+ }
251
+ }
252
+ return false;
253
+ },
254
+
255
+ selectNotEmpty(a: any, b: any): any {
256
+ if (MixinUtils.isNotEmpty(a)) {
257
+ return a;
258
+ }
259
+ return b;
260
+ },
261
+
262
+ parseValueByType(value: any, targetType: string): any {
263
+ if (value === undefined || value === null) {
264
+ return value;
265
+ }
266
+ if (targetType === 'string') {
267
+ return '' + value;
268
+ }
269
+ if (targetType === 'number') {
270
+ return Number(value);
271
+ }
272
+ if (targetType === 'boolean') {
273
+ return value === 1 || value === true || value === 'true';
274
+ }
275
+ if (targetType === 'array') {
276
+ return MixinUtils.parseStringArray(value);
277
+ }
278
+ if (targetType === 'JSONObject') {
279
+ return MixinUtils.parseJsonObject(value);
280
+ }
281
+ return value;
282
+ },
283
+ };
284
+
285
+ export { MixinUtils };
@@ -0,0 +1,55 @@
1
+ import { SqlCfgModel } from '../models/SqlCfgModel';
2
+ import { RequestCfgModel } from '../models/RequestCfgModel';
3
+ import { MixinUtils } from './MixinUtils';
4
+ import { IFuncCfgModel } from '../interfaces';
5
+ import { DEFAULT_MAX_LIMIT } from '../defaultConfigs';
6
+
7
+ const ModelUtils = {
8
+ getColumnList(sqlCfg: SqlCfgModel, reqCfg: RequestCfgModel): string[] {
9
+ const sqlCfgColumnList = sqlCfg.columns;
10
+ if (MixinUtils.isNotEmpty(sqlCfgColumnList)) {
11
+ return sqlCfgColumnList;
12
+ }
13
+ return reqCfg.columns;
14
+ },
15
+
16
+ getSqlTable(sqlCfg: SqlCfgModel, reqCfg: RequestCfgModel): string {
17
+ const s = sqlCfg.sqlTable;
18
+ if (MixinUtils.isNotEmpty(s)) {
19
+ return s;
20
+ }
21
+ return reqCfg.sqlTable;
22
+ },
23
+
24
+ getSqlSchema(sqlCfg: SqlCfgModel, reqCfg: RequestCfgModel): string {
25
+ const s = sqlCfg.sqlSchema;
26
+ if (MixinUtils.isNotEmpty(s)) {
27
+ return s;
28
+ }
29
+ return reqCfg.sqlSchema;
30
+ },
31
+
32
+ getMaxLimit(sqlCfg: SqlCfgModel, requestCfg: RequestCfgModel): number {
33
+ let s = sqlCfg.maxLimit;
34
+ if (typeof s === 'number' && s > 0) {
35
+ return s;
36
+ }
37
+ s = requestCfg.maxLimit;
38
+
39
+ if (typeof s === 'number' && s > 0) return s;
40
+
41
+ return DEFAULT_MAX_LIMIT;
42
+ },
43
+ checkFuncCfgValid(cfgModel: IFuncCfgModel): boolean {
44
+ const arr = [cfgModel.functionName, cfgModel.const, cfgModel.constString, cfgModel.constNumber, cfgModel.constBool, cfgModel.context, cfgModel.contextAsString, cfgModel.contextAsNumber, cfgModel.contextAsBool];
45
+ for (let i = 0; i < arr.length; i++) {
46
+ const arrElement = arr[i];
47
+ if (typeof arrElement !== 'undefined') {
48
+ return true;
49
+ }
50
+ }
51
+ return false;
52
+ },
53
+ };
54
+
55
+ export { ModelUtils };