midway-fatcms 0.0.1-beta.2 → 0.0.1-beta.22

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 (265) hide show
  1. package/.eslintrc.json +12 -0
  2. package/.prettierrc.js +4 -0
  3. package/README.md +7 -0
  4. package/dist/config/config.default.js +52 -15
  5. package/dist/configuration.d.ts +1 -0
  6. package/dist/configuration.js +33 -8
  7. package/dist/controller/base/BaseApiController.d.ts +1 -1
  8. package/dist/controller/base/BaseApiController.js +14 -6
  9. package/dist/controller/gateway/AsyncTaskController.d.ts +14 -0
  10. package/dist/controller/gateway/AsyncTaskController.js +108 -0
  11. package/dist/controller/gateway/CrudMtdGatewayController.d.ts +3 -3
  12. package/dist/controller/gateway/CrudMtdGatewayController.js +9 -6
  13. package/dist/controller/gateway/CrudStdGatewayController.d.ts +5 -5
  14. package/dist/controller/gateway/DocGatewayController.js +14 -9
  15. package/dist/controller/gateway/PublicApiController.js +4 -6
  16. package/dist/controller/gateway/StaticController.d.ts +2 -0
  17. package/dist/controller/gateway/StaticController.js +59 -40
  18. package/dist/controller/helpers.controller.d.ts +1 -1
  19. package/dist/controller/home.controller.js +2 -2
  20. package/dist/controller/manage/AnyApiMangeApi.js +2 -2
  21. package/dist/controller/manage/AppLogMangeApi.js +2 -2
  22. package/dist/controller/manage/AppMangeApi.js +2 -2
  23. package/dist/controller/manage/AppPageMangeApi.js +2 -2
  24. package/dist/controller/manage/AppSchemaHistoryApi.js +2 -2
  25. package/dist/controller/manage/CrudMethodsMangeApi.js +2 -2
  26. package/dist/controller/manage/CrudStandardDesignApi.d.ts +1 -1
  27. package/dist/controller/manage/CrudStandardDesignApi.js +78 -75
  28. package/dist/controller/manage/DataDictManageApi.d.ts +1 -1
  29. package/dist/controller/manage/DataDictManageApi.js +1 -1
  30. package/dist/controller/manage/DeployManageApi.d.ts +1 -1
  31. package/dist/controller/manage/DeployManageApi.js +38 -34
  32. package/dist/controller/manage/DocLibManageApi.js +2 -2
  33. package/dist/controller/manage/DocManageApi.js +2 -2
  34. package/dist/controller/manage/FileManageApi.js +1 -1
  35. package/dist/controller/manage/LowCodeTplManageApi.js +2 -2
  36. package/dist/controller/manage/MenuManageApi.js +2 -2
  37. package/dist/controller/manage/ProxyApiMangeApi.js +2 -2
  38. package/dist/controller/manage/SuperAdminManageApi.d.ts +2 -2
  39. package/dist/controller/manage/SuperAdminManageApi.js +12 -8
  40. package/dist/controller/manage/SysConfigMangeApi.d.ts +1 -1
  41. package/dist/controller/manage/SysConfigMangeApi.js +8 -6
  42. package/dist/controller/manage/SystemInfoManageApi.d.ts +1 -1
  43. package/dist/controller/manage/SystemInfoManageApi.js +7 -1
  44. package/dist/controller/manage/UserAccountManageApi.d.ts +2 -2
  45. package/dist/controller/manage/UserAccountManageApi.js +7 -2
  46. package/dist/controller/manage/WorkbenchMangeApi.js +3 -3
  47. package/dist/controller/myinfo/AuthController.d.ts +0 -4
  48. package/dist/controller/myinfo/AuthController.js +1 -54
  49. package/dist/controller/render/AppRenderController.js +10 -4
  50. package/dist/controller/test.controller.d.ts +1 -1
  51. package/dist/controller/test.controller.js +5 -5
  52. package/dist/index.d.ts +34 -4
  53. package/dist/index.js +34 -4
  54. package/dist/libs/crud-pro/CrudPro.d.ts +1 -0
  55. package/dist/libs/crud-pro/CrudPro.js +5 -0
  56. package/dist/libs/crud-pro/defaultConfigs.js +2 -0
  57. package/dist/libs/crud-pro/interfaces.d.ts +7 -1
  58. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +2 -1
  59. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +8 -1
  60. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +8 -0
  61. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +1 -1
  62. package/dist/libs/crud-pro/models/ResModel.d.ts +16 -0
  63. package/dist/libs/crud-pro/models/ResModel.js +2 -0
  64. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +1 -1
  65. package/dist/libs/crud-pro/models/TransactionSqlServer.js +1 -1
  66. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
  67. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +27 -15
  68. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +13 -17
  69. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
  70. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
  71. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
  72. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
  73. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
  74. package/dist/libs/crud-pro/services/CrudProServiceBase.js +3 -2
  75. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
  76. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +32 -7
  77. package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
  78. package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
  79. package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
  80. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
  81. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
  82. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
  83. package/dist/libs/global-config/global-config.d.ts +45 -0
  84. package/dist/libs/global-config/global-config.js +33 -0
  85. package/dist/libs/utils/errorToString.d.ts +2 -0
  86. package/dist/libs/utils/errorToString.js +57 -0
  87. package/dist/libs/utils/fatcms-request.js +2 -2
  88. package/dist/middleware/forbidden.middleware.js +4 -20
  89. package/dist/middleware/global.middleware.js +8 -1
  90. package/dist/models/AsyncTaskModel.d.ts +69 -0
  91. package/dist/models/AsyncTaskModel.js +26 -0
  92. package/dist/models/RedisKeys.d.ts +8 -0
  93. package/dist/models/RedisKeys.js +11 -0
  94. package/dist/models/SystemTables.d.ts +1 -3
  95. package/dist/models/SystemTables.js +2 -4
  96. package/dist/schedule/anonymousContext.d.ts +13 -0
  97. package/dist/schedule/anonymousContext.js +59 -0
  98. package/dist/schedule/index.d.ts +4 -3
  99. package/dist/schedule/index.js +8 -67
  100. package/dist/schedule/runSchedule.d.ts +15 -0
  101. package/dist/schedule/runSchedule.js +68 -0
  102. package/dist/schedule/scheduleNames.d.ts +13 -0
  103. package/dist/schedule/scheduleNames.js +17 -0
  104. package/dist/service/AuthService.js +8 -5
  105. package/dist/service/EnumInfoService.js +7 -4
  106. package/dist/service/FileCenterService.js +13 -9
  107. package/dist/service/SysConfigService.js +4 -2
  108. package/dist/service/UserAccountService.js +10 -6
  109. package/dist/service/UserSessionService.js +2 -1
  110. package/dist/service/VisitStatService.d.ts +1 -1
  111. package/dist/service/VisitStatService.js +20 -27
  112. package/dist/service/WorkbenchService.js +4 -2
  113. package/dist/service/anyapi/AnyApiService.js +4 -2
  114. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +37 -0
  115. package/dist/service/asyncTask/AsyncTaskRunnerService.js +232 -0
  116. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
  117. package/dist/service/asyncTask/AsyncTaskService.js +34 -0
  118. package/dist/service/crudstd/CrudStdService.d.ts +2 -1
  119. package/dist/service/crudstd/CrudStdService.js +48 -3
  120. package/dist/service/curd/CrudProQuick.d.ts +24 -0
  121. package/dist/service/curd/CrudProQuick.js +105 -0
  122. package/dist/service/curd/CurdMixByAccountService.js +12 -6
  123. package/dist/service/curd/CurdMixByDictService.js +4 -2
  124. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +10 -1
  125. package/dist/service/curd/CurdMixByLinkToCustomService.js +72 -24
  126. package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
  127. package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
  128. package/dist/service/curd/CurdMixService.d.ts +1 -1
  129. package/dist/service/curd/CurdMixService.js +2 -2
  130. package/dist/service/curd/CurdMixUtils.d.ts +7 -0
  131. package/dist/service/curd/CurdMixUtils.js +65 -28
  132. package/dist/service/curd/CurdProService.d.ts +2 -10
  133. package/dist/service/curd/CurdProService.js +31 -146
  134. package/dist/service/curd/fixCfgModel.d.ts +3 -0
  135. package/dist/service/curd/fixCfgModel.js +107 -0
  136. package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
  137. package/dist/views/404_app.html +31 -0
  138. package/dist/views/404_workbench.html +34 -0
  139. package/dist/views/static/favicon.ico +0 -0
  140. package/package.json +9 -2
  141. package/src/config/config.default.ts +58 -27
  142. package/src/configuration.ts +42 -9
  143. package/src/controller/base/BaseApiController.ts +26 -19
  144. package/src/controller/gateway/AnyApiGatewayController.ts +1 -1
  145. package/src/controller/gateway/AsyncTaskController.ts +83 -0
  146. package/src/controller/gateway/CrudMtdGatewayController.ts +17 -13
  147. package/src/controller/gateway/CrudStdGatewayController.ts +4 -4
  148. package/src/controller/gateway/DocGatewayController.ts +25 -17
  149. package/src/controller/gateway/FileController.ts +8 -9
  150. package/src/controller/gateway/ProxyApiGatewayController.ts +4 -4
  151. package/src/controller/gateway/PublicApiController.ts +19 -22
  152. package/src/controller/gateway/StaticController.ts +234 -242
  153. package/src/controller/helpers.controller.ts +1 -1
  154. package/src/controller/home.controller.ts +8 -15
  155. package/src/controller/manage/AnyApiMangeApi.ts +11 -11
  156. package/src/controller/manage/AppLogMangeApi.ts +5 -5
  157. package/src/controller/manage/AppMangeApi.ts +7 -7
  158. package/src/controller/manage/AppPageMangeApi.ts +5 -5
  159. package/src/controller/manage/AppSchemaHistoryApi.ts +3 -3
  160. package/src/controller/manage/CrudMethodsMangeApi.ts +5 -5
  161. package/src/controller/manage/CrudStandardDesignApi.ts +106 -113
  162. package/src/controller/manage/DataDictManageApi.ts +5 -5
  163. package/src/controller/manage/DeployManageApi.ts +85 -89
  164. package/src/controller/manage/DocLibManageApi.ts +5 -5
  165. package/src/controller/manage/DocManageApi.ts +10 -10
  166. package/src/controller/manage/FileManageApi.ts +1 -1
  167. package/src/controller/manage/LowCodeTplManageApi.ts +2 -2
  168. package/src/controller/manage/MenuManageApi.ts +10 -15
  169. package/src/controller/manage/ProxyApiMangeApi.ts +2 -2
  170. package/src/controller/manage/SuperAdminManageApi.ts +14 -13
  171. package/src/controller/manage/SysConfigMangeApi.ts +11 -11
  172. package/src/controller/manage/SystemInfoManageApi.ts +11 -6
  173. package/src/controller/manage/UserAccountManageApi.ts +10 -4
  174. package/src/controller/manage/WorkbenchMangeApi.ts +8 -8
  175. package/src/controller/myinfo/AuthController.ts +6 -72
  176. package/src/controller/render/AppRenderController.ts +24 -21
  177. package/src/controller/test.controller.ts +18 -18
  178. package/src/index.ts +38 -4
  179. package/src/libs/crud-pro/CrudPro.ts +7 -0
  180. package/src/libs/crud-pro/defaultConfigs.ts +2 -0
  181. package/src/libs/crud-pro/interfaces.ts +10 -3
  182. package/src/libs/crud-pro/models/ExecuteContext.ts +3 -3
  183. package/src/libs/crud-pro/models/ExecuteContextFunc.ts +11 -1
  184. package/src/libs/crud-pro/models/RequestCfgModel.ts +1 -1
  185. package/src/libs/crud-pro/models/RequestModel.ts +1 -1
  186. package/src/libs/crud-pro/models/ResModel.ts +19 -0
  187. package/src/libs/crud-pro/models/SqlCfgModel.ts +2 -2
  188. package/src/libs/crud-pro/models/Transaction.ts +8 -9
  189. package/src/libs/crud-pro/models/TransactionPostgres.ts +1 -1
  190. package/src/libs/crud-pro/models/TransactionSqlServer.ts +8 -13
  191. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +32 -23
  192. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +38 -54
  193. package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +26 -45
  194. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +23 -40
  195. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +25 -29
  196. package/src/libs/crud-pro/services/CrudProServiceBase.ts +5 -9
  197. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +36 -9
  198. package/src/libs/crud-pro/utils/DatabaseName.ts +35 -15
  199. package/src/libs/crud-pro/utils/DateTimeUtils.ts +2 -2
  200. package/src/libs/crud-pro/utils/MixinUtils.ts +1 -1
  201. package/src/libs/crud-pro/utils/ValidateUtils.ts +1 -3
  202. package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +1 -1
  203. package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +3 -3
  204. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +3 -3
  205. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +2 -2
  206. package/src/libs/crud-pro/utils/sqlConvert/convertMix.ts +26 -0
  207. package/src/libs/global-config/global-config.ts +78 -0
  208. package/src/libs/utils/crypto-utils.ts +2 -4
  209. package/src/libs/utils/errorToString.ts +61 -0
  210. package/src/libs/utils/fatcms-request.ts +9 -21
  211. package/src/libs/utils/ordernum-utils.ts +2 -6
  212. package/src/libs/utils/parseConfig.ts +7 -15
  213. package/src/middleware/forbidden.middleware.ts +6 -25
  214. package/src/middleware/global.middleware.ts +18 -16
  215. package/src/models/AsyncTaskModel.ts +79 -0
  216. package/src/models/RedisKeys.ts +13 -0
  217. package/src/models/SystemTables.ts +1 -4
  218. package/src/models/bizmodels.ts +1 -2
  219. package/src/schedule/anonymousContext.ts +79 -0
  220. package/src/schedule/index.ts +11 -72
  221. package/src/schedule/runSchedule.ts +83 -0
  222. package/src/schedule/scheduleNames.ts +21 -0
  223. package/src/service/AuthService.ts +13 -8
  224. package/src/service/EnumInfoService.ts +8 -3
  225. package/src/service/FileCenterService.ts +12 -6
  226. package/src/service/SysConfigService.ts +10 -6
  227. package/src/service/UserAccountService.ts +14 -4
  228. package/src/service/UserSessionService.ts +5 -4
  229. package/src/service/VisitStatService.ts +57 -70
  230. package/src/service/WorkbenchService.ts +7 -2
  231. package/src/service/anyapi/AnyApiService.ts +11 -8
  232. package/src/service/asyncTask/AsyncTaskRunnerService.ts +255 -0
  233. package/src/service/asyncTask/AsyncTaskService.ts +21 -0
  234. package/src/service/base/BaseService.ts +2 -2
  235. package/src/service/crudstd/CrudStdService.ts +60 -5
  236. package/src/service/curd/CrudProQuick.ts +137 -0
  237. package/src/service/curd/CurdMixByAccountService.ts +14 -6
  238. package/src/service/curd/CurdMixByDictService.ts +8 -2
  239. package/src/service/curd/CurdMixByLinkToCustomService.ts +101 -50
  240. package/src/service/curd/CurdMixBySysConfigService.ts +7 -2
  241. package/src/service/curd/CurdMixByWorkbenchService.ts +6 -2
  242. package/src/service/curd/CurdMixService.ts +3 -3
  243. package/src/service/curd/CurdMixUtils.ts +82 -39
  244. package/src/service/curd/CurdProService.ts +45 -189
  245. package/src/service/curd/fixCfgModel.ts +139 -0
  246. package/src/service/proxyapi/ProxyApiLoadService.ts +12 -3
  247. package/src/views/404_app.html +31 -0
  248. package/src/views/404_workbench.html +34 -0
  249. package/src/views/static/favicon.ico +0 -0
  250. package/tsconfig.json +32 -0
  251. package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
  252. package/dist/controller/medstatistic/MedAdminController.js +0 -205
  253. package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
  254. package/dist/controller/medstatistic/MedClientController.js +0 -188
  255. package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
  256. package/dist/controller/medstatistic/MedMessageService.js +0 -95
  257. package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
  258. package/dist/controller/medstatistic/MedScoreService.js +0 -107
  259. package/dist/controller/medstatistic/constants.d.ts +0 -32
  260. package/dist/controller/medstatistic/constants.js +0 -43
  261. package/src/controller/medstatistic/MedAdminController.ts +0 -221
  262. package/src/controller/medstatistic/MedClientController.ts +0 -188
  263. package/src/controller/medstatistic/MedMessageService.ts +0 -89
  264. package/src/controller/medstatistic/MedScoreService.ts +0 -108
  265. package/src/controller/medstatistic/constants.ts +0 -63
@@ -18,6 +18,7 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
18
18
  const MultiKeyMap_1 = require("../../libs/crud-pro/utils/MultiKeyMap");
19
19
  const _ = require("lodash");
20
20
  const RedisCacheService_1 = require("../base/RedisCacheService");
21
+ const global_config_1 = require("../../libs/global-config/global-config");
21
22
  const TMP_CTX_KEY = _.uniqueId('CurdMixByDictService');
22
23
  const dictMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.dict);
23
24
  let CurdMixByDictService = class CurdMixByDictService {
@@ -38,6 +39,7 @@ let CurdMixByDictService = class CurdMixByDictService {
38
39
  executeContext[TMP_CTX_KEY] = new MultiKeyMap_1.MultiKeyMap(rows, 'dict_code', 'value');
39
40
  }
40
41
  async getDictItemRows(codes) {
42
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
41
43
  const noCacheCodes = [];
42
44
  // 从缓存里面取
43
45
  let cachedRows = [];
@@ -60,8 +62,8 @@ let CurdMixByDictService = class CurdMixByDictService {
60
62
  }, {
61
63
  sqlTable: SystemTables_1.SystemTables.sys_data_dict_item,
62
64
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
63
- sqlDatabase: SystemTables_1.SystemDbName,
64
- sqlDdType: SystemTables_1.SystemDbType,
65
+ sqlDatabase: SystemDbName,
66
+ sqlDbType: SystemDbType,
65
67
  });
66
68
  selectedRows = res1.getResRows();
67
69
  //放到缓存里
@@ -1,7 +1,7 @@
1
1
  import { Context } from '@midwayjs/koa';
2
2
  import { CurdProService } from './CurdProService';
3
3
  import { ExecuteContext, IExecuteContextHandler } from '../../libs/crud-pro/models/ExecuteContext';
4
- import { RedisCacheService } from "../base/RedisCacheService";
4
+ import { RedisCacheService } from '../base/RedisCacheService';
5
5
  export declare class CurdMixByLinkToCustomService implements IExecuteContextHandler {
6
6
  protected ctx: Context;
7
7
  protected curdProService: CurdProService;
@@ -13,10 +13,19 @@ export declare class CurdMixByLinkToCustomService implements IExecuteContextHand
13
13
  * code形如:mysql_________fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
14
14
  * code形如:fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
15
15
  * code形如:fatcms~~~sys_perm_role~~~id,*
16
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
17
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
16
18
  * 【数据库】~~~【表名】~~~【value】,【label】,【style】
17
19
  * @param code
18
20
  * @private
19
21
  */
20
22
  private queryInfoByLinkToCustomImpl;
23
+ /**
24
+ *
25
+ * @param code
26
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
27
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
28
+ */
29
+ private queryInfoByLinkToCustomByCrudMethod;
21
30
  private loadInfoByLinkToCustomMap;
22
31
  }
@@ -19,8 +19,32 @@ const devops_1 = require("../../models/devops");
19
19
  const exceptions_1 = require("../../libs/crud-pro/exceptions");
20
20
  const RedisCacheService_1 = require("../base/RedisCacheService");
21
21
  const DatabaseName_1 = require("../../libs/crud-pro/utils/DatabaseName");
22
+ const global_config_1 = require("../../libs/global-config/global-config");
22
23
  const linkToCustomMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.linkToCustom);
23
24
  const TMP_CTX_KEY = _.uniqueId('CurdMixByLinkToCustomService');
25
+ function toMapObject(rows, fieldsArr) {
26
+ const valueKey = fieldsArr[0];
27
+ const labelKey = fieldsArr[1];
28
+ const isObjectMode = fieldsArr.length > 2 || labelKey === '*';
29
+ const map = new Map();
30
+ for (let i = 0; i < rows.length; i++) {
31
+ const rowObj = rows[i];
32
+ const value = rowObj[valueKey];
33
+ if (typeof value !== 'undefined') {
34
+ const valueStr = '' + value;
35
+ if (isObjectMode) {
36
+ map.set(valueStr, rowObj);
37
+ }
38
+ else {
39
+ const label = rowObj[labelKey];
40
+ if (label) {
41
+ map.set(valueStr, label);
42
+ }
43
+ }
44
+ }
45
+ }
46
+ return map;
47
+ }
24
48
  let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
25
49
  async handleExecuteContextPrepare(executeContext) {
26
50
  const relations = linkToCustomMixUtils.pickColumnRelations(executeContext);
@@ -43,8 +67,8 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
43
67
  if (!Array.isArray(targetColumns) || targetColumns.length === 0) {
44
68
  columnRelation.targetColumns = [
45
69
  {
46
- "from": "*",
47
- "to": `${sourceColumn}_info[$ARRAY_INDEX]`
70
+ from: '*',
71
+ to: `${sourceColumn}_info[$ARRAY_INDEX]`,
48
72
  },
49
73
  ];
50
74
  }
@@ -54,7 +78,7 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
54
78
  });
55
79
  }
56
80
  async queryInfoByLinkToCustom(code) {
57
- const cacheKey = "linkToCustom@@" + code;
81
+ const cacheKey = 'linkToCustom@@' + code;
58
82
  let values;
59
83
  const expireSecond = 2 * 60; // 2分钟
60
84
  const enumMap = await this.redisCacheService.getJsonObject(cacheKey);
@@ -68,11 +92,16 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
68
92
  * code形如:mysql_________fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
69
93
  * code形如:fatcms~~~sys_perm_role~~~role_code,role_name,xxx_name
70
94
  * code形如:fatcms~~~sys_perm_role~~~id,*
95
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
96
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
71
97
  * 【数据库】~~~【表名】~~~【value】,【label】,【style】
72
98
  * @param code
73
99
  * @private
74
100
  */
75
101
  async queryInfoByLinkToCustomImpl(code) {
102
+ if (code.startsWith('GET_BY_CRUD_METHOD')) {
103
+ return this.queryInfoByLinkToCustomByCrudMethod(code);
104
+ }
76
105
  const arr = code
77
106
  .split('~~~')
78
107
  .map(s => s.trim())
@@ -89,46 +118,65 @@ let CurdMixByLinkToCustomService = class CurdMixByLinkToCustomService {
89
118
  if (fieldsArr.length < 2) {
90
119
  throw new devops_1.BizException('linkToCustom枚举值查询字符串,fields字段必须符合固定格式', exceptions_1.Exceptions.CFG_ERROR);
91
120
  }
92
- const valueKey = fieldsArr[0];
93
121
  const labelKey = fieldsArr[1];
94
- const isObjectMode = fieldsArr.length > 2 || labelKey === "*";
95
122
  const res1 = await this.curdProService.executeCrudByCfg({
96
123
  condition: {},
97
- columns: labelKey === "*" ? null : fields,
124
+ columns: labelKey === '*' ? null : fields,
98
125
  limit: 4000,
99
126
  offset: 0,
100
127
  }, {
101
128
  sqlTable,
102
129
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
103
130
  sqlDatabase: dbName,
104
- sqlDdType: dbType,
131
+ sqlDbType: dbType,
105
132
  maxLimit: 4000,
106
133
  });
107
134
  const rows = res1.getResRows();
108
- const map = new Map();
109
- for (let i = 0; i < rows.length; i++) {
110
- const rowObj = rows[i];
111
- const value = rowObj[valueKey];
112
- if (typeof value !== 'undefined') {
113
- const valueStr = "" + value;
114
- if (isObjectMode) {
115
- map.set(valueStr, rowObj);
116
- }
117
- else {
118
- const label = rowObj[labelKey];
119
- if (label) {
120
- map.set(valueStr, label);
121
- }
122
- }
123
- }
135
+ const map = toMapObject(rows, fieldsArr);
136
+ return map;
137
+ }
138
+ /**
139
+ *
140
+ * @param code
141
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,*
142
+ * code形如:GET_BY_CRUD_METHOD~~~GetActiveLineEnum~~~id,name
143
+ */
144
+ async queryInfoByLinkToCustomByCrudMethod(code) {
145
+ const arr = code
146
+ .split('~~~')
147
+ .map(s => s.trim())
148
+ .filter(Boolean);
149
+ if (arr.length !== 3) {
150
+ throw new devops_1.BizException('linkToCustom枚举值查询字符串,必须符合固定格式。', exceptions_1.Exceptions.CFG_ERROR);
151
+ }
152
+ const [prefix, methodCode, fields] = arr;
153
+ const fieldsArr = fields
154
+ .split(',')
155
+ .map(s => s.trim())
156
+ .filter(Boolean);
157
+ if (fieldsArr.length < 2) {
158
+ throw new devops_1.BizException(`linkToCustom枚举值查询字符串,fields字段必须符合固定格式。${prefix}`, exceptions_1.Exceptions.CFG_ERROR);
159
+ }
160
+ const methodInfo = (await this.curdProService.getCachedCfgByMethod(methodCode));
161
+ if (!methodInfo || methodInfo.status !== 1) {
162
+ throw new Error('接口不存在或已下线: ' + methodCode);
124
163
  }
164
+ const cfgModel = methodInfo;
165
+ const { dbType, dbName } = (0, DatabaseName_1.parseDatabaseName)(cfgModel.sqlDatabase);
166
+ cfgModel.sqlDatabase = dbName;
167
+ cfgModel.sqlDbType = dbType;
168
+ const reqJson = {};
169
+ await global_config_1.GLOBAL_STATIC_CONFIG.getConfig().bizUpdateCfgModelForCrudMtd(reqJson, cfgModel, methodInfo, this.ctx);
170
+ const exeCtx = await this.curdProService.executeCrudByCfg(reqJson, cfgModel);
171
+ const rows = exeCtx.getResRows();
172
+ const map = toMapObject(rows, fieldsArr);
125
173
  return map;
126
174
  }
127
175
  async loadInfoByLinkToCustomMap(relations) {
128
176
  const bigMap = new Map();
129
177
  for (let i = 0; i < relations.length; i++) {
130
178
  const relation = relations[i];
131
- const code = relation.relatedCode || "";
179
+ const code = relation.relatedCode || '';
132
180
  const codeTrim = code.trim();
133
181
  const map = await this.queryInfoByLinkToCustom(codeTrim);
134
182
  bigMap.set(codeTrim, map);
@@ -18,10 +18,12 @@ const SystemTables_1 = require("../../models/SystemTables");
18
18
  const keys_1 = require("../../libs/crud-pro/models/keys");
19
19
  const MultiKeyMap_1 = require("../../libs/crud-pro/utils/MultiKeyMap");
20
20
  const parseConfig_1 = require("../../libs/utils/parseConfig");
21
+ const global_config_1 = require("../../libs/global-config/global-config");
21
22
  const dictMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.RelatedType.sysCfgEnum);
22
23
  const TMP_CTX_KEY = _.uniqueId('CurdMixBySysConfigService');
23
24
  let CurdMixBySysConfigService = class CurdMixBySysConfigService {
24
25
  async handleExecuteContextPrepare(executeContext) {
26
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
25
27
  const codes = dictMixUtils.pickColumnRelationCodes(executeContext);
26
28
  if (!codes || codes.length === 0) {
27
29
  return;
@@ -31,8 +33,8 @@ let CurdMixBySysConfigService = class CurdMixBySysConfigService {
31
33
  }, {
32
34
  sqlTable: SystemTables_1.SystemTables.sys_configs,
33
35
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
34
- sqlDatabase: SystemTables_1.SystemDbName,
35
- sqlDdType: SystemTables_1.SystemDbType,
36
+ sqlDatabase: SystemDbName,
37
+ sqlDbType: SystemDbType,
36
38
  });
37
39
  const rows = res1.getResRows();
38
40
  const multiKeyMap = new MultiKeyMap_1.MultiKeyMap();
@@ -18,6 +18,7 @@ const CurdMixUtils_1 = require("./CurdMixUtils");
18
18
  const SystemTables_1 = require("../../models/SystemTables");
19
19
  const keys_1 = require("../../libs/crud-pro/models/keys");
20
20
  const MixinUtils_1 = require("../../libs/crud-pro/utils/MixinUtils");
21
+ const global_config_1 = require("../../libs/global-config/global-config");
21
22
  const lruCache = new lru_cache_1.LRUCache({
22
23
  max: 500,
23
24
  ttl: 1000 * 60 * 5,
@@ -27,6 +28,7 @@ const workbenchMixUtils = new CurdMixUtils_1.CrudMixUtils(CurdMixUtils_1.Related
27
28
  const TMP_CTX_KEY = _.uniqueId('CurdMixByWorkbenchService');
28
29
  let CurdMixByWorkbenchService = class CurdMixByWorkbenchService {
29
30
  async loadWorkbenchListMap() {
31
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
30
32
  let workbenchListMap = lruCache.get('workbenchListMap');
31
33
  if (!workbenchListMap) {
32
34
  const reqJson = {
@@ -36,8 +38,8 @@ let CurdMixByWorkbenchService = class CurdMixByWorkbenchService {
36
38
  const res = await this.curdProService.executeCrudByCfg(reqJson, {
37
39
  sqlTable: SystemTables_1.SystemTables.sys_workbench,
38
40
  sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
39
- sqlDatabase: SystemTables_1.SystemDbName,
40
- sqlDdType: SystemTables_1.SystemDbType,
41
+ sqlDatabase: SystemDbName,
42
+ sqlDbType: SystemDbType,
41
43
  });
42
44
  const workbenchList = res.getResRows();
43
45
  workbenchListMap = MixinUtils_1.MixinUtils.toNewMap(workbenchList, (obj) => obj.workbench_code);
@@ -10,7 +10,7 @@ export declare class CurdMixService {
10
10
  private curdMixByLinkToCustomService;
11
11
  private prepare;
12
12
  executeCrudByCfg(reqJson: IRequestModel, cfgModel: IRequestCfgModel2): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
13
- getBbUtil(database: string, sqlDdType: SqlDbType): import("./CurdProService").DBUtils;
13
+ getBbUtil(sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string): import("./CrudProQuick").CrudProQuick;
14
14
  executeSQL(sqlCfgModel: ISqlCfgModel): Promise<any>;
15
15
  executeCrud(reqJson: IRequestModel): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
16
16
  getCachedCfgByMethod(method: string): Promise<IRequestCfgModel>;
@@ -30,9 +30,9 @@ let CurdMixService = class CurdMixService {
30
30
  this.prepare();
31
31
  return this.curdProService.executeCrudByCfg(reqJson, cfgModel);
32
32
  }
33
- getBbUtil(database, sqlDdType) {
33
+ getBbUtil(sqlDatabase, sqlDbType, sqlTable) {
34
34
  this.prepare();
35
- return this.curdProService.getBbUtil(database, sqlDdType);
35
+ return this.curdProService.getBbUtil(sqlDatabase, sqlDbType, sqlTable);
36
36
  }
37
37
  async executeSQL(sqlCfgModel) {
38
38
  this.prepare();
@@ -24,5 +24,12 @@ declare class CrudMixUtils {
24
24
  * @param columnRelation
25
25
  */
26
26
  copyColumnRelationToRowNoRelatedCode(row: any, map: Map<string, any>, columnRelation: ColumnRelation): void;
27
+ /**
28
+ * 专门COPY用户信息到row上面。无relatedCode模式
29
+ * @param row
30
+ * @param map
31
+ * @param columnRelation
32
+ */
33
+ copyUserInfoToRowNoRelatedCode(row: any, map: Map<string, any>, columnRelation: ColumnRelation): void;
27
34
  }
28
35
  export { CrudMixUtils, RelatedType, FuncRowColumnRelation };
@@ -46,40 +46,47 @@ function copyBySingleSourceValue(row, sourceValue, targetColumns, getValue) {
46
46
  }
47
47
  }
48
48
  }
49
- function copyByArraySourceValue(row, sourceValue, targetColumns, getValue) {
50
- let isSetArray = false;
51
- // 支持关联JSON数组
52
- if (typeof sourceValue === 'string' && sourceValue.startsWith('[') && sourceValue.endsWith(']')) {
53
- const codes = (0, functions_1.parseJsonObject)(sourceValue);
54
- if (Array.isArray(codes)) {
55
- for (let codeIndex = 0; codeIndex < codes.length; codeIndex++) {
56
- const code = codes[codeIndex];
57
- // const codeObject = map.get(code);
58
- const codeObject = getValue(code);
59
- if (codeObject) {
60
- if (Array.isArray(targetColumns)) {
61
- for (let i = 0; i < targetColumns.length; i++) {
62
- const targetColumn = targetColumns[i];
63
- if (targetColumn.from === '*') {
64
- const toStr = targetColumn.to.replace('$ARRAY_INDEX', `${codeIndex}`);
65
- _.set(row, toStr, codeObject);
66
- isSetArray = true;
67
- }
68
- else {
69
- const dictAttrValue = _.get(codeObject, targetColumn.from);
70
- if (typeof dictAttrValue !== "undefined" && dictAttrValue !== null) {
71
- const toStr = targetColumn.to.replace('$ARRAY_INDEX', `${codeIndex}`);
72
- _.set(row, toStr, dictAttrValue);
73
- isSetArray = true;
74
- }
75
- }
49
+ function copyByArraySourceValueInner(row, codes, targetColumns, getValue, resultObj) {
50
+ for (let codeIndex = 0; codeIndex < codes.length; codeIndex++) {
51
+ const code = codes[codeIndex];
52
+ // const codeObject = map.get(code);
53
+ const codeObject = getValue(code);
54
+ if (codeObject) {
55
+ if (Array.isArray(targetColumns)) {
56
+ for (let i = 0; i < targetColumns.length; i++) {
57
+ const targetColumn = targetColumns[i];
58
+ if (targetColumn.from === '*') {
59
+ const toStr = targetColumn.to.replace('$ARRAY_INDEX', `${codeIndex}`);
60
+ _.set(row, toStr, codeObject);
61
+ resultObj.isSetArray = true;
62
+ }
63
+ else {
64
+ const dictAttrValue = _.get(codeObject, targetColumn.from);
65
+ if (typeof dictAttrValue !== 'undefined' && dictAttrValue !== null) {
66
+ const toStr = targetColumn.to.replace('$ARRAY_INDEX', `${codeIndex}`);
67
+ _.set(row, toStr, dictAttrValue);
68
+ resultObj.isSetArray = true;
76
69
  }
77
70
  }
78
71
  }
79
72
  }
80
73
  }
81
74
  }
82
- return isSetArray;
75
+ }
76
+ function copyByArraySourceValue(row, sourceValue, targetColumns, getValue) {
77
+ const resultObj = { isSetArray: false };
78
+ // 支持关联JSON数组。使用 字符串存储的类型
79
+ if (typeof sourceValue === 'string' && sourceValue.startsWith('[') && sourceValue.endsWith(']')) {
80
+ const codes = (0, functions_1.parseJsonObject)(sourceValue);
81
+ if (Array.isArray(codes)) {
82
+ copyByArraySourceValueInner(row, codes, targetColumns, getValue, resultObj);
83
+ }
84
+ }
85
+ else if (Array.isArray(sourceValue)) {
86
+ // 直接使用JSON或者postgres的数组存储的类型
87
+ copyByArraySourceValueInner(row, sourceValue, targetColumns, getValue, resultObj);
88
+ }
89
+ return resultObj.isSetArray;
83
90
  }
84
91
  class CrudMixUtils {
85
92
  constructor(relatedType) {
@@ -197,5 +204,35 @@ class CrudMixUtils {
197
204
  copyBySingleSourceValue(row, sourceValue, targetColumns, getValue);
198
205
  }
199
206
  }
207
+ /**
208
+ * 专门COPY用户信息到row上面。无relatedCode模式
209
+ * @param row
210
+ * @param map
211
+ * @param columnRelation
212
+ */
213
+ copyUserInfoToRowNoRelatedCode(row, map, columnRelation) {
214
+ const { targetColumns } = columnRelation;
215
+ if (!targetColumns) {
216
+ return;
217
+ }
218
+ const tmpSourceColumn = '__fatcmsUserAccountId__';
219
+ const sourceValue = _.get(row, tmpSourceColumn);
220
+ if (!sourceValue) {
221
+ return;
222
+ }
223
+ const getValue = (code) => {
224
+ if (!map) {
225
+ return null;
226
+ }
227
+ if (typeof map.get === 'function') {
228
+ return map.get(`${code}`);
229
+ }
230
+ return map[code];
231
+ };
232
+ const isSetArray = copyByArraySourceValue(row, sourceValue, targetColumns, getValue);
233
+ if (!isSetArray) {
234
+ copyBySingleSourceValue(row, sourceValue, targetColumns, getValue);
235
+ }
236
+ }
200
237
  }
201
238
  exports.CrudMixUtils = CrudMixUtils;
@@ -5,14 +5,7 @@ import { ExecuteContext, IExecuteContextHandler } from '../../libs/crud-pro/mode
5
5
  import { RelatedType } from './CurdMixUtils';
6
6
  import { BaseService } from '../base/BaseService';
7
7
  import { IRequestCfgModel2 } from '../../models/bizmodels';
8
- export declare class DBUtils {
9
- private readonly sqlDatabase;
10
- private readonly sqlDdType;
11
- private readonly curdProService;
12
- constructor(sqlDatabase: string, sqlDdType: SqlDbType, curdProService: CurdProService);
13
- getOne(reqJson: IRequestModel, sqlTable: string): Promise<any>;
14
- getList(reqJson: IRequestModel, sqlTable: string): Promise<any[]>;
15
- }
8
+ import { CrudProQuick } from "../../service/curd/CrudProQuick";
16
9
  export declare class CurdProService extends BaseService {
17
10
  protected ctx: Context;
18
11
  private mysql2Config;
@@ -33,7 +26,6 @@ export declare class CurdProService extends BaseService {
33
26
  executeCrud(reqJson: IRequestModel): Promise<ExecuteContext>;
34
27
  executeSQL(sqlCfgModel: ISqlCfgModel): Promise<any>;
35
28
  executeCrudByCfg(reqJson: IRequestModel, cfgModel: IRequestCfgModel2): Promise<ExecuteContext>;
36
- private applyStandardUpdateCfg;
37
- getBbUtil(database: string, sqlDdType: SqlDbType): DBUtils;
29
+ getBbUtil(sqlDatabase: string, sqlDbType: SqlDbType, sqlTable?: string): CrudProQuick;
38
30
  getCachedCfgByMethod(method: string): Promise<IRequestCfgModel>;
39
31
  }