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

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 (246) 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 +9 -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/DocGatewayController.js +14 -9
  14. package/dist/controller/gateway/PublicApiController.js +4 -6
  15. package/dist/controller/gateway/StaticController.d.ts +2 -0
  16. package/dist/controller/gateway/StaticController.js +59 -40
  17. package/dist/controller/helpers.controller.d.ts +1 -1
  18. package/dist/controller/home.controller.js +2 -2
  19. package/dist/controller/manage/CrudStandardDesignApi.d.ts +1 -1
  20. package/dist/controller/manage/CrudStandardDesignApi.js +78 -75
  21. package/dist/controller/manage/DataDictManageApi.d.ts +1 -1
  22. package/dist/controller/manage/DeployManageApi.d.ts +1 -1
  23. package/dist/controller/manage/DeployManageApi.js +38 -34
  24. package/dist/controller/manage/MenuManageApi.js +1 -1
  25. package/dist/controller/manage/SuperAdminManageApi.d.ts +2 -2
  26. package/dist/controller/manage/SuperAdminManageApi.js +12 -8
  27. package/dist/controller/manage/SysConfigMangeApi.d.ts +1 -1
  28. package/dist/controller/manage/SysConfigMangeApi.js +6 -4
  29. package/dist/controller/manage/SystemInfoManageApi.d.ts +1 -1
  30. package/dist/controller/manage/SystemInfoManageApi.js +7 -1
  31. package/dist/controller/manage/UserAccountManageApi.d.ts +2 -2
  32. package/dist/controller/manage/UserAccountManageApi.js +5 -0
  33. package/dist/controller/manage/WorkbenchMangeApi.js +1 -1
  34. package/dist/controller/myinfo/AuthController.d.ts +0 -4
  35. package/dist/controller/myinfo/AuthController.js +1 -54
  36. package/dist/controller/render/AppRenderController.js +10 -4
  37. package/dist/controller/test.controller.d.ts +1 -1
  38. package/dist/controller/test.controller.js +5 -5
  39. package/dist/index.d.ts +34 -4
  40. package/dist/index.js +34 -4
  41. package/dist/libs/crud-pro/CrudPro.d.ts +1 -0
  42. package/dist/libs/crud-pro/CrudPro.js +5 -0
  43. package/dist/libs/crud-pro/defaultConfigs.js +2 -0
  44. package/dist/libs/crud-pro/interfaces.d.ts +7 -1
  45. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +2 -1
  46. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +8 -1
  47. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +8 -0
  48. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +1 -1
  49. package/dist/libs/crud-pro/models/ResModel.d.ts +16 -0
  50. package/dist/libs/crud-pro/models/ResModel.js +2 -0
  51. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +1 -1
  52. package/dist/libs/crud-pro/models/TransactionSqlServer.js +1 -1
  53. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
  54. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +22 -11
  55. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +10 -9
  56. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
  57. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
  58. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
  59. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
  60. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
  61. package/dist/libs/crud-pro/services/CrudProServiceBase.js +3 -2
  62. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
  63. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +31 -7
  64. package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
  65. package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
  66. package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
  67. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
  68. package/dist/libs/global-config/global-config.d.ts +45 -0
  69. package/dist/libs/global-config/global-config.js +33 -0
  70. package/dist/libs/utils/errorToString.d.ts +2 -0
  71. package/dist/libs/utils/errorToString.js +57 -0
  72. package/dist/libs/utils/fatcms-request.js +2 -2
  73. package/dist/middleware/forbidden.middleware.js +4 -20
  74. package/dist/middleware/global.middleware.js +8 -1
  75. package/dist/models/AsyncTaskModel.d.ts +69 -0
  76. package/dist/models/AsyncTaskModel.js +26 -0
  77. package/dist/models/RedisKeys.d.ts +8 -0
  78. package/dist/models/RedisKeys.js +11 -0
  79. package/dist/models/SystemTables.d.ts +1 -3
  80. package/dist/models/SystemTables.js +2 -4
  81. package/dist/schedule/anonymousContext.d.ts +13 -0
  82. package/dist/schedule/anonymousContext.js +59 -0
  83. package/dist/schedule/index.d.ts +4 -3
  84. package/dist/schedule/index.js +8 -67
  85. package/dist/schedule/runSchedule.d.ts +15 -0
  86. package/dist/schedule/runSchedule.js +68 -0
  87. package/dist/schedule/scheduleNames.d.ts +13 -0
  88. package/dist/schedule/scheduleNames.js +17 -0
  89. package/dist/service/AuthService.js +8 -5
  90. package/dist/service/EnumInfoService.js +7 -4
  91. package/dist/service/FileCenterService.js +13 -9
  92. package/dist/service/SysConfigService.js +4 -2
  93. package/dist/service/UserAccountService.js +10 -6
  94. package/dist/service/UserSessionService.js +2 -1
  95. package/dist/service/VisitStatService.d.ts +1 -1
  96. package/dist/service/VisitStatService.js +20 -27
  97. package/dist/service/WorkbenchService.js +4 -2
  98. package/dist/service/anyapi/AnyApiService.js +4 -2
  99. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +37 -0
  100. package/dist/service/asyncTask/AsyncTaskRunnerService.js +226 -0
  101. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
  102. package/dist/service/asyncTask/AsyncTaskService.js +34 -0
  103. package/dist/service/crudstd/CrudStdService.d.ts +1 -0
  104. package/dist/service/crudstd/CrudStdService.js +34 -3
  105. package/dist/service/curd/CrudProQuick.d.ts +24 -0
  106. package/dist/service/curd/CrudProQuick.js +105 -0
  107. package/dist/service/curd/CurdMixByAccountService.js +12 -6
  108. package/dist/service/curd/CurdMixByDictService.js +4 -2
  109. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +10 -1
  110. package/dist/service/curd/CurdMixByLinkToCustomService.js +72 -24
  111. package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
  112. package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
  113. package/dist/service/curd/CurdMixService.d.ts +1 -1
  114. package/dist/service/curd/CurdMixService.js +2 -2
  115. package/dist/service/curd/CurdMixUtils.d.ts +7 -0
  116. package/dist/service/curd/CurdMixUtils.js +65 -28
  117. package/dist/service/curd/CurdProService.d.ts +2 -10
  118. package/dist/service/curd/CurdProService.js +31 -146
  119. package/dist/service/curd/fixCfgModel.d.ts +3 -0
  120. package/dist/service/curd/fixCfgModel.js +107 -0
  121. package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
  122. package/dist/views/404_app.html +31 -0
  123. package/dist/views/404_workbench.html +34 -0
  124. package/dist/views/static/favicon.ico +0 -0
  125. package/package.json +9 -2
  126. package/src/config/config.default.ts +58 -27
  127. package/src/configuration.ts +42 -9
  128. package/src/controller/base/BaseApiController.ts +19 -19
  129. package/src/controller/gateway/AnyApiGatewayController.ts +1 -1
  130. package/src/controller/gateway/AsyncTaskController.ts +83 -0
  131. package/src/controller/gateway/CrudMtdGatewayController.ts +17 -13
  132. package/src/controller/gateway/CrudStdGatewayController.ts +4 -4
  133. package/src/controller/gateway/DocGatewayController.ts +25 -17
  134. package/src/controller/gateway/FileController.ts +8 -9
  135. package/src/controller/gateway/ProxyApiGatewayController.ts +4 -4
  136. package/src/controller/gateway/PublicApiController.ts +19 -22
  137. package/src/controller/gateway/StaticController.ts +234 -242
  138. package/src/controller/helpers.controller.ts +1 -1
  139. package/src/controller/home.controller.ts +8 -15
  140. package/src/controller/manage/AnyApiMangeApi.ts +9 -9
  141. package/src/controller/manage/AppLogMangeApi.ts +3 -3
  142. package/src/controller/manage/AppMangeApi.ts +5 -5
  143. package/src/controller/manage/AppPageMangeApi.ts +3 -3
  144. package/src/controller/manage/AppSchemaHistoryApi.ts +1 -1
  145. package/src/controller/manage/CrudMethodsMangeApi.ts +3 -3
  146. package/src/controller/manage/CrudStandardDesignApi.ts +106 -113
  147. package/src/controller/manage/DataDictManageApi.ts +4 -4
  148. package/src/controller/manage/DeployManageApi.ts +85 -89
  149. package/src/controller/manage/DocLibManageApi.ts +3 -3
  150. package/src/controller/manage/DocManageApi.ts +8 -8
  151. package/src/controller/manage/MenuManageApi.ts +9 -14
  152. package/src/controller/manage/SuperAdminManageApi.ts +14 -13
  153. package/src/controller/manage/SysConfigMangeApi.ts +9 -9
  154. package/src/controller/manage/SystemInfoManageApi.ts +11 -6
  155. package/src/controller/manage/UserAccountManageApi.ts +8 -2
  156. package/src/controller/manage/WorkbenchMangeApi.ts +6 -6
  157. package/src/controller/myinfo/AuthController.ts +6 -72
  158. package/src/controller/render/AppRenderController.ts +24 -21
  159. package/src/controller/test.controller.ts +18 -18
  160. package/src/index.ts +38 -4
  161. package/src/libs/crud-pro/CrudPro.ts +7 -0
  162. package/src/libs/crud-pro/defaultConfigs.ts +2 -0
  163. package/src/libs/crud-pro/interfaces.ts +10 -3
  164. package/src/libs/crud-pro/models/ExecuteContext.ts +3 -3
  165. package/src/libs/crud-pro/models/ExecuteContextFunc.ts +11 -1
  166. package/src/libs/crud-pro/models/RequestCfgModel.ts +1 -1
  167. package/src/libs/crud-pro/models/RequestModel.ts +1 -1
  168. package/src/libs/crud-pro/models/ResModel.ts +19 -0
  169. package/src/libs/crud-pro/models/SqlCfgModel.ts +2 -2
  170. package/src/libs/crud-pro/models/Transaction.ts +8 -9
  171. package/src/libs/crud-pro/models/TransactionPostgres.ts +1 -1
  172. package/src/libs/crud-pro/models/TransactionSqlServer.ts +8 -13
  173. package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +26 -19
  174. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +38 -50
  175. package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +26 -45
  176. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +23 -40
  177. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +25 -29
  178. package/src/libs/crud-pro/services/CrudProServiceBase.ts +5 -9
  179. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +35 -9
  180. package/src/libs/crud-pro/utils/DatabaseName.ts +35 -15
  181. package/src/libs/crud-pro/utils/DateTimeUtils.ts +2 -2
  182. package/src/libs/crud-pro/utils/MixinUtils.ts +1 -1
  183. package/src/libs/crud-pro/utils/ValidateUtils.ts +1 -3
  184. package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +1 -1
  185. package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +3 -3
  186. package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +3 -3
  187. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +2 -2
  188. package/src/libs/global-config/global-config.ts +78 -0
  189. package/src/libs/utils/crypto-utils.ts +2 -4
  190. package/src/libs/utils/errorToString.ts +61 -0
  191. package/src/libs/utils/fatcms-request.ts +9 -21
  192. package/src/libs/utils/ordernum-utils.ts +2 -6
  193. package/src/libs/utils/parseConfig.ts +7 -15
  194. package/src/middleware/forbidden.middleware.ts +6 -25
  195. package/src/middleware/global.middleware.ts +18 -16
  196. package/src/models/AsyncTaskModel.ts +79 -0
  197. package/src/models/RedisKeys.ts +13 -0
  198. package/src/models/SystemTables.ts +1 -4
  199. package/src/models/bizmodels.ts +1 -2
  200. package/src/schedule/anonymousContext.ts +79 -0
  201. package/src/schedule/index.ts +11 -72
  202. package/src/schedule/runSchedule.ts +83 -0
  203. package/src/schedule/scheduleNames.ts +21 -0
  204. package/src/service/AuthService.ts +13 -8
  205. package/src/service/EnumInfoService.ts +8 -3
  206. package/src/service/FileCenterService.ts +12 -6
  207. package/src/service/SysConfigService.ts +10 -6
  208. package/src/service/UserAccountService.ts +14 -4
  209. package/src/service/UserSessionService.ts +5 -4
  210. package/src/service/VisitStatService.ts +57 -70
  211. package/src/service/WorkbenchService.ts +7 -2
  212. package/src/service/anyapi/AnyApiService.ts +11 -8
  213. package/src/service/asyncTask/AsyncTaskRunnerService.ts +249 -0
  214. package/src/service/asyncTask/AsyncTaskService.ts +21 -0
  215. package/src/service/base/BaseService.ts +2 -2
  216. package/src/service/crudstd/CrudStdService.ts +43 -5
  217. package/src/service/curd/CrudProQuick.ts +137 -0
  218. package/src/service/curd/CurdMixByAccountService.ts +14 -6
  219. package/src/service/curd/CurdMixByDictService.ts +8 -2
  220. package/src/service/curd/CurdMixByLinkToCustomService.ts +101 -50
  221. package/src/service/curd/CurdMixBySysConfigService.ts +7 -2
  222. package/src/service/curd/CurdMixByWorkbenchService.ts +6 -2
  223. package/src/service/curd/CurdMixService.ts +3 -3
  224. package/src/service/curd/CurdMixUtils.ts +82 -39
  225. package/src/service/curd/CurdProService.ts +45 -189
  226. package/src/service/curd/fixCfgModel.ts +139 -0
  227. package/src/service/proxyapi/ProxyApiLoadService.ts +12 -3
  228. package/src/views/404_app.html +31 -0
  229. package/src/views/404_workbench.html +34 -0
  230. package/src/views/static/favicon.ico +0 -0
  231. package/tsconfig.json +32 -0
  232. package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
  233. package/dist/controller/medstatistic/MedAdminController.js +0 -205
  234. package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
  235. package/dist/controller/medstatistic/MedClientController.js +0 -188
  236. package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
  237. package/dist/controller/medstatistic/MedMessageService.js +0 -95
  238. package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
  239. package/dist/controller/medstatistic/MedScoreService.js +0 -107
  240. package/dist/controller/medstatistic/constants.d.ts +0 -32
  241. package/dist/controller/medstatistic/constants.js +0 -43
  242. package/src/controller/medstatistic/MedAdminController.ts +0 -221
  243. package/src/controller/medstatistic/MedClientController.ts +0 -188
  244. package/src/controller/medstatistic/MedMessageService.ts +0 -89
  245. package/src/controller/medstatistic/MedScoreService.ts +0 -108
  246. package/src/controller/medstatistic/constants.ts +0 -63
@@ -20,17 +20,17 @@ const fs2 = require("fs");
20
20
  const path = require("path");
21
21
  const https = require("https");
22
22
  const functions_1 = require("../../libs/utils/functions");
23
- const localDir = path.join(__dirname, '../../../public/static'); // 本地文件存储目录
24
- const notFoundListFile = path.join(localDir, '__404__list.json'); // 404列表文件
25
23
  function getPathConfig(ossName) {
26
24
  const remoteBaseUrlMap = {
27
- "cdnjsx": 'https://cdnjsx.oss-cn-shanghai.aliyuncs.com',
28
- "i.alicdn.com": "https://i.alicdn.com",
29
- "img.alicdn.com": "https://img.alicdn.com",
25
+ cdnjsx: 'https://cdnjsx.oss-cn-shanghai.aliyuncs.com',
26
+ 'i.alicdn.com': 'https://i.alicdn.com',
27
+ 'img.alicdn.com': 'https://img.alicdn.com',
28
+ 'at.alicdn.com': 'https://at.alicdn.com',
30
29
  };
31
- const remoteBaseUrl = remoteBaseUrlMap[ossName];
30
+ let remoteBaseUrl = remoteBaseUrlMap[ossName];
32
31
  if (!remoteBaseUrl) {
33
- throw new Error(`ossName: ${ossName} 未配置`);
32
+ console.error(`getPathConfig ossName: ${ossName} 未配置`);
33
+ remoteBaseUrl = `https://${ossName}`;
34
34
  }
35
35
  return {
36
36
  remoteBaseUrl,
@@ -38,30 +38,43 @@ function getPathConfig(ossName) {
38
38
  }
39
39
  // 404列表缓存
40
40
  let notFoundList = new Set();
41
- // 初始化:加载404列表
42
- async function init() {
43
- try {
44
- // 确保本地存储目录存在
45
- await fs.mkdir(localDir, { recursive: true });
46
- const data = await fs.readFile(notFoundListFile, 'utf8');
47
- notFoundList = new Set(JSON.parse(data));
48
- console.log(`已加载${notFoundList.size}个404记录`);
49
- }
50
- catch (error) {
51
- if (error.code !== 'ENOENT') {
52
- console.error('读取404列表失败:', error);
53
- }
54
- }
55
- }
56
- init();
41
+ let notFoundListIsInit = false;
57
42
  /**
58
43
  * 静态文件代理功能
59
44
  */
60
45
  let StaticController = class StaticController extends BaseApiController_1.BaseApiController {
46
+ getLocalPaths() {
47
+ const appDir = this.app.getAppDir();
48
+ const localDir = path.join(appDir, './public/static'); // 本地文件存储目录
49
+ const notFoundListFile = path.join(localDir, '__404__list.json'); // 404列表文件
50
+ return {
51
+ localDir,
52
+ notFoundListFile,
53
+ };
54
+ }
55
+ async initNotFoundList() {
56
+ if (notFoundListIsInit) {
57
+ return;
58
+ }
59
+ notFoundListIsInit = true;
60
+ const { localDir, notFoundListFile } = this.getLocalPaths();
61
+ try {
62
+ // 确保本地存储目录存在
63
+ await fs.mkdir(localDir, { recursive: true });
64
+ const data = await fs.readFile(notFoundListFile, 'utf8');
65
+ notFoundList = new Set(JSON.parse(data));
66
+ console.log(`已加载${notFoundList.size}个404记录`);
67
+ }
68
+ catch (error) {
69
+ if (error.code !== 'ENOENT') {
70
+ console.error('读取404列表失败:', error);
71
+ }
72
+ }
73
+ }
61
74
  async responseLocalFile(localFilePath, localHeaderPath, relativePath) {
62
75
  const headers = {
63
- "Cache-Control": 'public, max-age=31536000',
64
- "Expires": new Date(Date.now() + 31536000000).toUTCString()
76
+ 'Cache-Control': 'public, max-age=31536000',
77
+ Expires: new Date(Date.now() + 31536000000).toUTCString(),
65
78
  };
66
79
  try {
67
80
  // 检查本地文件是否存在.头文件
@@ -70,16 +83,17 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
70
83
  const headerDataStr = await fs.readFile(localHeaderPath, 'utf8');
71
84
  const headerData = (0, functions_1.parseJsonObject)(headerDataStr);
72
85
  if (headerData) {
73
- headers["content-type"] = headerData["content-type"];
74
- headers["content-length"] = headerData["content-length"];
75
- headers["last-modified"] = headerData["last-modified"];
76
- headers["etag"] = headerData["etag"];
77
- headers["cache-control"] = headerData["cache-control"];
78
- headers["accept-ranges"] = headerData["accept-ranges"];
86
+ headers['content-type'] = headerData['content-type'];
87
+ headers['content-length'] = headerData['content-length'];
88
+ headers['last-modified'] = headerData['last-modified'];
89
+ headers['etag'] = headerData['etag'];
90
+ headers['cache-control'] = headerData['cache-control'];
91
+ headers['accept-ranges'] = headerData['accept-ranges'];
79
92
  }
80
93
  }
81
94
  }
82
95
  catch (error) {
96
+ console.debug('[StaticController]responseLocalFile', error);
83
97
  }
84
98
  try {
85
99
  // 检查本地文件是否存在
@@ -107,10 +121,12 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
107
121
  return false;
108
122
  }
109
123
  async proxyStaticFile(ossName, relativePath) {
124
+ this.initNotFoundList();
125
+ const { localDir } = this.getLocalPaths();
110
126
  const PATH_CONFIG = getPathConfig(ossName);
111
127
  // 构建本地路径和远程路径
112
- const localFilePath = path.join(localDir, ossName, "files", relativePath);
113
- const localHeaderPath = path.join(localDir, ossName, "headers", relativePath);
128
+ const localFilePath = path.join(localDir, 'files', ossName, relativePath);
129
+ const localHeaderPath = path.join(localDir, 'headers', ossName, relativePath);
114
130
  const remoteUrl = `${PATH_CONFIG.remoteBaseUrl}/${relativePath}`;
115
131
  // 检查是否在404列表中
116
132
  if (notFoundList.has(relativePath)) {
@@ -157,10 +173,11 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
157
173
  return this.ctx.render('500', { errorMsg: msg });
158
174
  }
159
175
  this.ctx.status = 500;
160
- return this.ctx.render('500', { errorMsg: "未知异常" });
176
+ return this.ctx.render('500', { errorMsg: '未知异常' });
161
177
  }
162
178
  // 保存404列表
163
179
  async saveNotFoundList() {
180
+ const { notFoundListFile } = this.getLocalPaths();
164
181
  try {
165
182
  // 确保存储404列表的目录存在
166
183
  const dir = path.dirname(notFoundListFile);
@@ -174,13 +191,15 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
174
191
  // 封装https请求为异步函数
175
192
  async httpsGet(url) {
176
193
  return new Promise((resolve, reject) => {
177
- https.get(url, (res) => {
194
+ https
195
+ .get(url, res => {
178
196
  resolve({
179
197
  statusCode: res.statusCode || 500,
180
198
  headers: res.headers,
181
- body: res
199
+ body: res,
182
200
  });
183
- }).on('error', (err) => {
201
+ })
202
+ .on('error', err => {
184
203
  reject(err);
185
204
  });
186
205
  });
@@ -203,11 +222,11 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
203
222
  // 使用管道将响应流写入文件
204
223
  await new Promise((resolve, reject) => {
205
224
  body.pipe(fileStream);
206
- body.on('error', (err) => {
225
+ body.on('error', err => {
207
226
  reject(new Error(`读取响应流失败: ${err.message}`));
208
227
  });
209
228
  fileStream.on('finish', resolve);
210
- fileStream.on('error', (err) => {
229
+ fileStream.on('error', err => {
211
230
  reject(new Error(`写入文件失败: ${err.message}`));
212
231
  });
213
232
  });
@@ -242,7 +261,7 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
242
261
  '.txt': 'text/plain',
243
262
  '.pdf': 'application/pdf',
244
263
  '.mp4': 'video/mp4',
245
- '.ico': 'image/x-icon'
264
+ '.ico': 'image/x-icon',
246
265
  };
247
266
  return mimeTypes[extname] || 'application/octet-stream';
248
267
  }
@@ -3,7 +3,7 @@ import { Context } from '@midwayjs/koa';
3
3
  import { CurdMixService } from '../service/curd/CurdMixService';
4
4
  import { CommonResult } from '../libs/utils/common-dto';
5
5
  export declare class HelpersApi {
6
- ctx: Context;
6
+ protected ctx: Context;
7
7
  private midwayWebRouterService;
8
8
  protected curdMixService: CurdMixService;
9
9
  getApiEnv(): Promise<{
@@ -31,13 +31,13 @@ let HomeController = class HomeController extends BaseApiController_1.BaseApiCon
31
31
  }
32
32
  const html_content = workbenchInfo.html_content || '未配置HTML模版';
33
33
  const userInfo = this.getUserSessionInfo();
34
- const fatcmscsrftoken = await crypto_utils_1.privateAES.time_encrypt_utf8_base64("" + Date.now());
34
+ const fatcmscsrftoken = await crypto_utils_1.privateAES.time_encrypt_utf8_base64('' + Date.now());
35
35
  const utils = (0, render_utils_1.createRenderUtils)({
36
36
  ctx: this.ctx,
37
37
  userInfo,
38
38
  workbenchInfo,
39
39
  package_assets: workbenchInfo.package_assets,
40
- fatcmscsrftoken
40
+ fatcmscsrftoken,
41
41
  });
42
42
  return this.ctx.renderString(html_content, { workbenchInfo, userInfo, utils }, { viewEngine: 'ejs' });
43
43
  }
@@ -1,6 +1,6 @@
1
1
  import { BaseApiController } from '../base/BaseApiController';
2
2
  import { SqlDbType } from '../../libs/crud-pro/models/keys';
3
- import { CommonResult } from "../../libs/utils/common-dto";
3
+ import { CommonResult } from '../../libs/utils/common-dto';
4
4
  export declare class CrudStandardDesignApi extends BaseApiController {
5
5
  private mysql2Config;
6
6
  private postgres2Config;
@@ -26,8 +26,7 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
26
26
  const postgresList = Object.keys(this.postgres2Config || {});
27
27
  const sqlServerList = Object.keys(this.sqlserver2Config || {});
28
28
  const toSelectList = (dbCfgNameList, dbType) => {
29
- return dbCfgNameList.map(item => {
30
- const dbName = item;
29
+ return dbCfgNameList.map(dbName => {
31
30
  const value = (0, DatabaseName_1.toDatabaseNameStr)(dbType, dbName);
32
31
  return { value, label: value, dbName, dbType };
33
32
  });
@@ -35,7 +34,10 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
35
34
  const mysqlObjList = toSelectList(mysqlList, keys_1.SqlDbType.mysql);
36
35
  const postgresObjList = toSelectList(postgresList, keys_1.SqlDbType.postgres);
37
36
  const sqlserverObjList = toSelectList(sqlServerList, keys_1.SqlDbType.sqlserver);
38
- const databaseList = [...mysqlObjList, ...postgresObjList, ...sqlserverObjList];
37
+ const databaseList = [...mysqlObjList, ...postgresObjList, ...sqlserverObjList].filter((obj) => {
38
+ const value = '' + obj.value;
39
+ return !value.endsWith('_fatcms_inner_demo_config');
40
+ });
39
41
  return {
40
42
  success: true,
41
43
  data: databaseList,
@@ -53,7 +55,7 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
53
55
  const res = await this.curdMixService.executeSQL({
54
56
  executeSql: 'SHOW TABLES',
55
57
  sqlDatabase: dbName,
56
- sqlDdType: keys_1.SqlDbType.mysql,
58
+ sqlDbType: keys_1.SqlDbType.mysql,
57
59
  crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
58
60
  });
59
61
  const arr = JSON.parse(JSON.stringify(res));
@@ -65,7 +67,7 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
65
67
  label: tableName,
66
68
  dbName,
67
69
  dbType,
68
- tableName
70
+ tableName,
69
71
  };
70
72
  });
71
73
  return common_dto_1.CommonResult.successRes(tableNames);
@@ -82,13 +84,13 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
82
84
  const tableDescribe = await this.curdMixService.executeSQL({
83
85
  executeSql: 'describe ' + tableName,
84
86
  sqlDatabase: dbName,
85
- sqlDdType: keys_1.SqlDbType.mysql,
87
+ sqlDbType: keys_1.SqlDbType.mysql,
86
88
  crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
87
89
  });
88
90
  const tableCreate = await this.curdMixService.executeSQL({
89
91
  executeSql: 'show create table ' + tableName,
90
92
  sqlDatabase: dbName,
91
- sqlDdType: keys_1.SqlDbType.mysql,
93
+ sqlDbType: keys_1.SqlDbType.mysql,
92
94
  crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
93
95
  });
94
96
  const tableCreateStr = tableCreate[0]['Create Table'];
@@ -131,17 +133,14 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
131
133
  async getTableListOfSqlserver(dbName) {
132
134
  const dbConfig = this.sqlserver2Config[dbName];
133
135
  if (!dbConfig) {
134
- throw new exceptions_1.CommonException("DB_NOT_FOUND", "数据库配置没有找到:" + dbName);
136
+ throw new exceptions_1.CommonException('DB_NOT_FOUND', '数据库配置没有找到:' + dbName);
135
137
  }
136
138
  const dbType = keys_1.SqlDbType.sqlserver;
137
- const sql = "" +
138
- "SELECT name as tablename \n" +
139
- "FROM sys.tables" +
140
- "";
139
+ const sql = 'SELECT name as tablename FROM sys.tables';
141
140
  const arr = await this.curdMixService.executeSQL({
142
141
  executeSql: sql,
143
142
  sqlDatabase: dbName,
144
- sqlDdType: dbType,
143
+ sqlDbType: dbType,
145
144
  crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
146
145
  executeSqlArgs: [],
147
146
  });
@@ -150,8 +149,9 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
150
149
  return {
151
150
  value: tableName,
152
151
  label: tableName,
153
- dbName, dbType,
154
- tableName
152
+ dbName,
153
+ dbType,
154
+ tableName,
155
155
  };
156
156
  });
157
157
  return common_dto_1.CommonResult.successRes(tableNames);
@@ -159,70 +159,73 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
159
159
  async getTableListOfPostgreSQL(dbName) {
160
160
  const dbConfig = this.postgres2Config[dbName];
161
161
  if (!dbConfig) {
162
- throw new exceptions_1.CommonException("DB_NOT_FOUND", "数据库配置没有找到:" + dbName);
162
+ throw new exceptions_1.CommonException('DB_NOT_FOUND', '数据库配置没有找到:' + dbName);
163
163
  }
164
- const schemaname = "public";
165
- const sql = "" +
166
- "SELECT tablename\n" +
167
- "FROM pg_tables\n" +
168
- `WHERE schemaname = '${schemaname}' \n` +
169
- "ORDER BY tablename;";
170
164
  const dbType = keys_1.SqlDbType.postgres;
171
- const arr = await this.curdMixService.executeSQL({
172
- executeSql: sql,
173
- sqlDatabase: dbName,
174
- sqlDdType: dbType,
175
- crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
176
- executeSqlArgs: [],
177
- });
178
- const tableNames = arr.map(v => {
179
- const tableName = v.tablename;
180
- return {
181
- value: tableName,
182
- label: tableName,
183
- dbName, dbType,
184
- tableName
185
- };
186
- });
187
- return common_dto_1.CommonResult.successRes(tableNames);
165
+ const schemaname = 'public';
166
+ const tableListSql = '' + 'SELECT tablename\n' + 'FROM pg_tables\n' + `WHERE schemaname = '${schemaname}' \n` + 'ORDER BY tablename;';
167
+ const viewListSql = '' + 'SELECT viewname as tablename\n' + 'FROM pg_views\n' + `WHERE schemaname = '${schemaname}' \n` + 'ORDER BY viewname;';
168
+ const toSelectOptions = async (executeSql, tableType) => {
169
+ const arr = await this.curdMixService.executeSQL({
170
+ executeSql: executeSql,
171
+ sqlDatabase: dbName,
172
+ sqlDbType: dbType,
173
+ crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
174
+ executeSqlArgs: [],
175
+ });
176
+ return arr.map(v => {
177
+ const tableName = v.tablename;
178
+ return {
179
+ value: tableName,
180
+ label: tableName,
181
+ dbName,
182
+ dbType,
183
+ tableName,
184
+ tableType,
185
+ };
186
+ });
187
+ };
188
+ const tableNames = await toSelectOptions(tableListSql, 'table');
189
+ const viewNames = await toSelectOptions(viewListSql, 'view');
190
+ const tableNameMerge = [...tableNames, ...viewNames];
191
+ return common_dto_1.CommonResult.successRes(tableNameMerge);
188
192
  }
189
193
  async getTableFieldsOfSqlServer(dbName, tableName) {
190
194
  const dbConfig = this.sqlserver2Config[dbName];
191
195
  if (!dbConfig) {
192
- throw new exceptions_1.CommonException("DB_NOT_FOUND", "数据库配置没有找到:" + dbName);
196
+ throw new exceptions_1.CommonException('DB_NOT_FOUND', '数据库配置没有找到:' + dbName);
193
197
  }
194
- const columnArraySql = "" +
195
- "\n" +
196
- "SELECT\n" +
197
- " c.name AS column_name,\n" +
198
- " t.name AS data_type,\n" +
199
- " c.max_length AS max_length,\n" +
200
- " c.precision,\n" +
201
- " c.scale,\n" +
202
- " c.is_nullable,\n" +
203
- " c.is_identity,\n" +
204
- " dc.definition AS column_default, \n" +
205
- " ep.value AS column_description \n" +
206
- "FROM\n" +
207
- " sys.columns c\n" +
208
- " JOIN\n" +
209
- " sys.types t ON c.user_type_id = t.user_type_id\n" +
210
- " LEFT JOIN\n" +
211
- " sys.default_constraints dc\n" +
212
- " ON c.default_object_id = dc.object_id \n" +
213
- " LEFT JOIN\n" +
214
- " sys.extended_properties ep\n" +
215
- " ON c.object_id = ep.major_id\n" +
216
- " AND c.column_id = ep.minor_id\n" +
217
- "WHERE\n" +
198
+ const columnArraySql = '' +
199
+ 'SELECT\n' +
200
+ ' c.name AS column_name,\n' +
201
+ ' t.name AS data_type,\n' +
202
+ ' c.max_length AS max_length,\n' +
203
+ ' c.precision,\n' +
204
+ ' c.scale,\n' +
205
+ ' c.is_nullable,\n' +
206
+ ' c.is_identity,\n' +
207
+ ' dc.definition AS column_default, \n' +
208
+ ' ep.value AS column_description \n' +
209
+ 'FROM\n' +
210
+ ' sys.columns c\n' +
211
+ ' JOIN\n' +
212
+ ' sys.types t ON c.user_type_id = t.user_type_id\n' +
213
+ ' LEFT JOIN\n' +
214
+ ' sys.default_constraints dc\n' +
215
+ ' ON c.default_object_id = dc.object_id \n' +
216
+ ' LEFT JOIN\n' +
217
+ ' sys.extended_properties ep\n' +
218
+ ' ON c.object_id = ep.major_id\n' +
219
+ ' AND c.column_id = ep.minor_id\n' +
220
+ 'WHERE\n' +
218
221
  ` c.object_id = OBJECT_ID('${tableName}') \n` +
219
- " ORDER BY\n" +
220
- " c.column_id;";
222
+ ' ORDER BY\n' +
223
+ ' c.column_id;';
221
224
  const dbType = keys_1.SqlDbType.sqlserver;
222
225
  const columnArray = await this.curdMixService.executeSQL({
223
226
  executeSql: columnArraySql,
224
227
  sqlDatabase: dbName,
225
- sqlDdType: dbType,
228
+ sqlDbType: dbType,
226
229
  crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
227
230
  executeSqlArgs: [],
228
231
  });
@@ -232,11 +235,11 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
232
235
  fieldIndex: column_name || '',
233
236
  fieldTitle: column_description || column_name || '',
234
237
  isNullable: is_nullable,
235
- defaultValue: column_default || "",
238
+ defaultValue: column_default || '',
236
239
  extra: others,
237
240
  // key: column_name, // 索引
238
241
  type: data_type,
239
- is_identity: is_identity
242
+ is_identity: is_identity,
240
243
  };
241
244
  });
242
245
  return common_dto_1.CommonResult.successRes({
@@ -248,9 +251,9 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
248
251
  async getTableFieldsOfPostgreSQL(dbName, tableName) {
249
252
  const dbConfig = this.postgres2Config[dbName];
250
253
  if (!dbConfig) {
251
- throw new exceptions_1.CommonException("DB_NOT_FOUND", "数据库配置没有找到:" + dbName);
254
+ throw new exceptions_1.CommonException('DB_NOT_FOUND', '数据库配置没有找到:' + dbName);
252
255
  }
253
- const schemaname = "public";
256
+ const schemaname = 'public';
254
257
  const columnArraySql = `
255
258
 
256
259
  SELECT
@@ -259,12 +262,12 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
259
262
  WHERE table_schema = $1 and table_name = $2
260
263
  ORDER BY ordinal_position;
261
264
 
262
- `.trim();
265
+ `.trim();
263
266
  const dbType = keys_1.SqlDbType.postgres;
264
267
  const columnArray = await this.curdMixService.executeSQL({
265
268
  executeSql: columnArraySql,
266
269
  sqlDatabase: dbName,
267
- sqlDdType: dbType,
270
+ sqlDbType: dbType,
268
271
  crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
269
272
  executeSqlArgs: [schemaname, tableName],
270
273
  });
@@ -274,11 +277,11 @@ let CrudStandardDesignApi = class CrudStandardDesignApi extends BaseApiControlle
274
277
  fieldIndex: column_name || '',
275
278
  fieldTitle: column_name || '',
276
279
  isNullable: is_nullable,
277
- defaultValue: column_default || "",
280
+ defaultValue: column_default || '',
278
281
  extra: others,
279
282
  // key: column_name, // 索引
280
283
  type: data_type,
281
- is_identity: is_identity
284
+ is_identity: is_identity,
282
285
  };
283
286
  });
284
287
  return {
@@ -1,7 +1,7 @@
1
1
  import { Context } from '@midwayjs/koa';
2
2
  import { BaseApiController } from '../base/BaseApiController';
3
3
  export declare class DataDictManageApi extends BaseApiController {
4
- ctx: Context;
4
+ protected ctx: Context;
5
5
  getDataDictList(): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
6
6
  getDataDictOne(): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
7
7
  createDataDict(): Promise<import("../../libs/crud-pro/models/ExecuteContext").ExecuteContext>;
@@ -1,6 +1,6 @@
1
1
  import { Context } from '@midwayjs/koa';
2
2
  import { BaseApiController } from '../base/BaseApiController';
3
- import { CommonResult } from "../../libs/utils/common-dto";
3
+ import { CommonResult } from '../../libs/utils/common-dto';
4
4
  export declare class DeployManageApi extends BaseApiController {
5
5
  protected ctx: Context;
6
6
  private fileCenterService;
@@ -24,47 +24,50 @@ const FileCenterService_1 = require("../../service/FileCenterService");
24
24
  const SystemTables_1 = require("../../models/SystemTables");
25
25
  const keys_1 = require("../../libs/crud-pro/models/keys");
26
26
  const WorkbenchService_1 = require("../../service/WorkbenchService");
27
+ const global_config_1 = require("../../libs/global-config/global-config");
27
28
  function toAssetsSchema(fileList) {
28
29
  for (let i = 0; i < fileList.length; i++) {
29
30
  const fileListElement = fileList[i];
30
- fileListElement.settingKey = "assets" + i;
31
+ fileListElement.settingKey = 'assets' + i;
31
32
  }
32
33
  return {
33
- "schema": [{
34
- "title": "资源配置",
35
- "name": "fileList",
36
- "type": "array",
37
- "properties": {
38
- "fileUrl": { "label": "文件URL", "component": "Input", "xProps": { "hasClear": true }, "width": 500 },
39
- "fileType": {
40
- "label": "文件类型",
41
- "component": "Select",
34
+ schema: [
35
+ {
36
+ title: '资源配置',
37
+ name: 'fileList',
38
+ type: 'array',
39
+ properties: {
40
+ fileUrl: { label: '文件URL', component: 'Input', xProps: { hasClear: true }, width: 500 },
41
+ fileType: {
42
+ label: '文件类型',
43
+ component: 'Select',
42
44
  enums: [
43
45
  { label: 'js', value: 'js' },
44
46
  { label: 'css', value: 'css' },
45
47
  ],
46
- "xProps": {
47
- "hasClear": true
48
+ xProps: {
49
+ hasClear: true,
48
50
  },
49
- width: 500
51
+ width: 500,
50
52
  },
51
- "isModule": {
52
- "label": "isModule",
53
- "component": "Select",
53
+ isModule: {
54
+ label: 'isModule',
55
+ component: 'Select',
54
56
  enums: [
55
57
  { label: 'true', value: true },
56
58
  { label: 'false', value: false },
57
59
  ],
58
- "xProps": {
59
- "hasClear": true
60
+ xProps: {
61
+ hasClear: true,
60
62
  },
61
- width: 500
63
+ width: 500,
62
64
  },
63
- }
64
- }],
65
- "data": {
66
- "fileList": fileList
67
- }
65
+ },
66
+ },
67
+ ],
68
+ data: {
69
+ fileList: fileList,
70
+ },
68
71
  };
69
72
  }
70
73
  let DeployManageApi = class DeployManageApi extends BaseApiController_1.BaseApiController {
@@ -109,31 +112,32 @@ let DeployManageApi = class DeployManageApi extends BaseApiController_1.BaseApiC
109
112
  if (!Array.isArray(cdnResources) || cdnResources.length === 0) {
110
113
  throw new devops_1.BizException('cdnResources参数不存在');
111
114
  }
115
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
112
116
  const workbench = await this.curdMixService.executeCrudByCfg({
113
117
  data: {
114
118
  package_assets: JSON.stringify(toAssetsSchema(cdnResources)),
115
119
  },
116
120
  condition: {
117
- package_name: params.packageName
118
- }
121
+ package_name: params.packageName,
122
+ },
119
123
  }, {
120
124
  sqlTable: SystemTables_1.SystemTables.sys_workbench,
121
- sqlDatabase: SystemTables_1.SystemDbName,
122
- sqlDdType: SystemTables_1.SystemDbType,
123
- sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE
125
+ sqlDatabase: SystemDbName,
126
+ sqlDbType: SystemDbType,
127
+ sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE,
124
128
  });
125
129
  const app = await this.curdMixService.executeCrudByCfg({
126
130
  data: {
127
131
  package_assets: JSON.stringify(toAssetsSchema(cdnResources)),
128
132
  },
129
133
  condition: {
130
- package_name: params.packageName
131
- }
134
+ package_name: params.packageName,
135
+ },
132
136
  }, {
133
137
  sqlTable: SystemTables_1.SystemTables.sys_app,
134
- sqlDatabase: SystemTables_1.SystemDbName,
135
- sqlDdType: SystemTables_1.SystemDbType,
136
- sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE
138
+ sqlDatabase: SystemDbName,
139
+ sqlDbType: SystemDbType,
140
+ sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE,
137
141
  });
138
142
  this.workbenchService.clearCache();
139
143
  const workbenchAffected = workbench.getResModelItem('affected') || {};
@@ -39,7 +39,7 @@ let MenuManageApi = class MenuManageApi extends BaseApiController_1.BaseApiContr
39
39
  async updateMenu() {
40
40
  return this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_menus, keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE, {
41
41
  validateCfg: {
42
- 'condition.id': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.INTEGER]
42
+ 'condition.id': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.INTEGER],
43
43
  },
44
44
  updateCfg: {},
45
45
  });
@@ -1,7 +1,7 @@
1
1
  import { Context } from '@midwayjs/koa';
2
- import { VisitStatService } from "../../service/VisitStatService";
2
+ import { VisitStatService } from '../../service/VisitStatService';
3
3
  import { BaseApiController } from '../base/BaseApiController';
4
- import { CommonResult } from "../../libs/utils/common-dto";
4
+ import { CommonResult } from '../../libs/utils/common-dto';
5
5
  export declare class SuperAdminManageApi extends BaseApiController {
6
6
  protected ctx: Context;
7
7
  protected visitStatService: VisitStatService;