midway-fatcms 0.0.1-beta.1 → 0.0.1-beta.11
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.
- package/dist/config/config.default.js +52 -15
- package/dist/controller/base/BaseApiController.js +9 -6
- package/dist/controller/gateway/CrudMtdGatewayController.js +4 -1
- package/dist/controller/gateway/DocGatewayController.js +13 -8
- package/dist/controller/gateway/StaticController.d.ts +3 -0
- package/dist/controller/gateway/StaticController.js +41 -21
- package/dist/controller/home.controller.js +2 -2
- package/dist/controller/manage/CrudStandardDesignApi.js +89 -74
- package/dist/controller/manage/DeployManageApi.js +6 -4
- package/dist/controller/manage/SuperAdminManageApi.js +12 -8
- package/dist/controller/manage/SysConfigMangeApi.js +3 -1
- package/dist/controller/manage/UserAccountManageApi.d.ts +1 -1
- package/dist/controller/manage/UserAccountManageApi.js +5 -0
- package/dist/controller/myinfo/AuthController.d.ts +0 -4
- package/dist/controller/myinfo/AuthController.js +0 -53
- package/dist/controller/render/AppRenderController.js +4 -2
- package/dist/controller/test.controller.js +1 -1
- package/dist/index.d.ts +28 -4
- package/dist/index.js +28 -4
- package/dist/libs/crud-pro/interfaces.d.ts +1 -1
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +1 -1
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +1 -1
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +4 -4
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +4 -4
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +8 -8
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
- package/dist/libs/global-config/global-config.d.ts +39 -0
- package/dist/libs/global-config/global-config.js +32 -0
- package/dist/models/SystemTables.d.ts +0 -3
- package/dist/models/SystemTables.js +1 -4
- package/dist/service/AuthService.js +8 -5
- package/dist/service/EnumInfoService.js +7 -4
- package/dist/service/FileCenterService.js +13 -9
- package/dist/service/SysConfigService.js +4 -2
- package/dist/service/UserAccountService.js +10 -6
- package/dist/service/VisitStatService.js +4 -2
- package/dist/service/WorkbenchService.js +4 -2
- package/dist/service/anyapi/AnyApiService.js +4 -2
- package/dist/service/crudstd/CrudStdService.js +7 -3
- package/dist/service/curd/CurdMixByAccountService.js +12 -6
- package/dist/service/curd/CurdMixByDictService.js +4 -2
- package/dist/service/curd/CurdMixByLinkToCustomService.js +1 -1
- package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
- package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
- package/dist/service/curd/CurdMixService.d.ts +1 -1
- package/dist/service/curd/CurdMixService.js +2 -2
- package/dist/service/curd/CurdMixUtils.d.ts +7 -0
- package/dist/service/curd/CurdMixUtils.js +31 -1
- package/dist/service/curd/CurdProService.d.ts +3 -3
- package/dist/service/curd/CurdProService.js +9 -9
- package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
- package/dist/views/404_app.html +31 -0
- package/dist/views/404_workbench.html +34 -0
- package/dist/views/static/favicon.ico +0 -0
- package/package.json +5 -1
- package/src/config/config.default.ts +58 -27
- package/src/controller/base/BaseApiController.ts +14 -14
- package/src/controller/gateway/CrudMtdGatewayController.ts +6 -2
- package/src/controller/gateway/DocGatewayController.ts +13 -5
- package/src/controller/gateway/StaticController.ts +50 -25
- package/src/controller/home.controller.ts +8 -10
- package/src/controller/manage/CrudStandardDesignApi.ts +145 -100
- package/src/controller/manage/DeployManageApi.ts +6 -3
- package/src/controller/manage/SuperAdminManageApi.ts +15 -6
- package/src/controller/manage/SysConfigMangeApi.ts +4 -1
- package/src/controller/manage/UserAccountManageApi.ts +6 -0
- package/src/controller/myinfo/AuthController.ts +4 -66
- package/src/controller/render/AppRenderController.ts +18 -15
- package/src/controller/test.controller.ts +1 -1
- package/src/index.ts +33 -4
- package/src/libs/crud-pro/interfaces.ts +1 -1
- package/src/libs/crud-pro/models/RequestCfgModel.ts +1 -1
- package/src/libs/crud-pro/models/SqlCfgModel.ts +1 -1
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +4 -4
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +4 -4
- package/src/libs/crud-pro/services/CrudProGenSqlService.ts +8 -8
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +2 -2
- package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +2 -2
- package/src/libs/global-config/global-config.ts +72 -0
- package/src/models/SystemTables.ts +0 -4
- package/src/service/AuthService.ts +13 -8
- package/src/service/EnumInfoService.ts +8 -3
- package/src/service/FileCenterService.ts +12 -6
- package/src/service/SysConfigService.ts +10 -6
- package/src/service/UserAccountService.ts +14 -4
- package/src/service/VisitStatService.ts +6 -2
- package/src/service/WorkbenchService.ts +7 -2
- package/src/service/anyapi/AnyApiService.ts +5 -2
- package/src/service/crudstd/CrudStdService.ts +13 -3
- package/src/service/curd/CurdMixByAccountService.ts +14 -6
- package/src/service/curd/CurdMixByDictService.ts +8 -2
- package/src/service/curd/CurdMixByLinkToCustomService.ts +1 -1
- package/src/service/curd/CurdMixBySysConfigService.ts +7 -2
- package/src/service/curd/CurdMixByWorkbenchService.ts +6 -2
- package/src/service/curd/CurdMixService.ts +2 -2
- package/src/service/curd/CurdMixUtils.ts +42 -12
- package/src/service/curd/CurdProService.ts +10 -10
- package/src/service/proxyapi/ProxyApiLoadService.ts +11 -3
- package/src/views/404_app.html +31 -0
- package/src/views/404_workbench.html +34 -0
- package/src/views/static/favicon.ico +0 -0
- package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
- package/dist/controller/medstatistic/MedAdminController.js +0 -205
- package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
- package/dist/controller/medstatistic/MedClientController.js +0 -188
- package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
- package/dist/controller/medstatistic/MedMessageService.js +0 -95
- package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
- package/dist/controller/medstatistic/MedScoreService.js +0 -107
- package/dist/controller/medstatistic/constants.d.ts +0 -32
- package/dist/controller/medstatistic/constants.js +0 -43
- package/src/controller/medstatistic/MedAdminController.ts +0 -221
- package/src/controller/medstatistic/MedClientController.ts +0 -188
- package/src/controller/medstatistic/MedMessageService.ts +0 -89
- package/src/controller/medstatistic/MedScoreService.ts +0 -108
- package/src/controller/medstatistic/constants.ts +0 -63
|
@@ -13,7 +13,13 @@ exports.default = (appInfo) => {
|
|
|
13
13
|
* 内置超级管理员用户
|
|
14
14
|
* 可以使用这个工具生成:http://127.0.0.1:7002/ns/api/helpers/generateDatabasePassword?loginName=xxxx&pw0=xxxx
|
|
15
15
|
*/
|
|
16
|
-
superAdminList: [
|
|
16
|
+
superAdminList: [
|
|
17
|
+
{
|
|
18
|
+
pwd_salt: 'c837f8c6de7261de228ec58b1b3ca9fa1htbvgm88',
|
|
19
|
+
pwd_md5: 'e334410fca1fd49972f63bf91f3be1be',
|
|
20
|
+
login_name: 'superadmin',
|
|
21
|
+
},
|
|
22
|
+
],
|
|
17
23
|
// use for cookie sign key, should change to your own and keep security
|
|
18
24
|
keys: '1715169944707_323',
|
|
19
25
|
koa: {
|
|
@@ -29,7 +35,11 @@ exports.default = (appInfo) => {
|
|
|
29
35
|
jsonLimit: '1mb',
|
|
30
36
|
textLimit: '1mb',
|
|
31
37
|
xmlLimit: '1mb',
|
|
32
|
-
ignore: [
|
|
38
|
+
ignore: [
|
|
39
|
+
'/ns/gw/proxy/*',
|
|
40
|
+
'/ns/gw/file/uploadFile',
|
|
41
|
+
'/ns/api/manage/deploy/uploadAssets',
|
|
42
|
+
], // 忽略代理路径的 body 解析
|
|
33
43
|
},
|
|
34
44
|
mysql2: {
|
|
35
45
|
fatcms: {
|
|
@@ -45,7 +55,7 @@ exports.default = (appInfo) => {
|
|
|
45
55
|
},
|
|
46
56
|
},
|
|
47
57
|
postgres2: {
|
|
48
|
-
|
|
58
|
+
postgres_test_fatcms_inner_demo_config: {
|
|
49
59
|
user: 'postgres',
|
|
50
60
|
host: '127.0.0.1',
|
|
51
61
|
database: 'postgres',
|
|
@@ -54,10 +64,10 @@ exports.default = (appInfo) => {
|
|
|
54
64
|
max: 20,
|
|
55
65
|
idleTimeoutMillis: 30000,
|
|
56
66
|
connectionTimeoutMillis: 2000, // 连接超时时间(毫秒)
|
|
57
|
-
}
|
|
67
|
+
},
|
|
58
68
|
},
|
|
59
69
|
sqlserver2: {
|
|
60
|
-
|
|
70
|
+
sqlserver_master_fatcms_inner_demo_config: {
|
|
61
71
|
user: 'sa',
|
|
62
72
|
password: '123456',
|
|
63
73
|
server: '127.0.0.1',
|
|
@@ -65,19 +75,19 @@ exports.default = (appInfo) => {
|
|
|
65
75
|
database: 'master',
|
|
66
76
|
options: {
|
|
67
77
|
encrypt: false,
|
|
68
|
-
trustServerCertificate: true // 信任自签名证书
|
|
78
|
+
trustServerCertificate: true, // 信任自签名证书
|
|
69
79
|
},
|
|
70
80
|
pool: {
|
|
71
81
|
max: 30,
|
|
72
82
|
min: 1,
|
|
73
|
-
idleTimeoutMillis: 30000 // 连接空闲超时时间(毫秒)
|
|
74
|
-
}
|
|
75
|
-
}
|
|
83
|
+
idleTimeoutMillis: 30000, // 连接空闲超时时间(毫秒)
|
|
84
|
+
},
|
|
85
|
+
},
|
|
76
86
|
},
|
|
77
87
|
redis: {
|
|
78
88
|
client: {
|
|
79
89
|
port: 6379,
|
|
80
|
-
host:
|
|
90
|
+
host: '127.0.0.1', // Redis host
|
|
81
91
|
},
|
|
82
92
|
},
|
|
83
93
|
oss: {
|
|
@@ -105,7 +115,34 @@ exports.default = (appInfo) => {
|
|
|
105
115
|
fileSize: '20mb',
|
|
106
116
|
limit: '20mb',
|
|
107
117
|
// whitelist: string[],文件扩展名白名单
|
|
108
|
-
whitelist: [
|
|
118
|
+
whitelist: [
|
|
119
|
+
'.jpg',
|
|
120
|
+
'.jpeg',
|
|
121
|
+
'.png',
|
|
122
|
+
'.gif',
|
|
123
|
+
'.pdf',
|
|
124
|
+
'.zip',
|
|
125
|
+
'.xlsx',
|
|
126
|
+
'.docx',
|
|
127
|
+
'.pptx',
|
|
128
|
+
'.txt',
|
|
129
|
+
'.md',
|
|
130
|
+
'.json',
|
|
131
|
+
'.js',
|
|
132
|
+
'.cjs',
|
|
133
|
+
'.ejs',
|
|
134
|
+
'.jsx',
|
|
135
|
+
'.css',
|
|
136
|
+
'.java',
|
|
137
|
+
'.ts',
|
|
138
|
+
'.tsx',
|
|
139
|
+
'.less',
|
|
140
|
+
'.scss',
|
|
141
|
+
'.html',
|
|
142
|
+
'.ttf',
|
|
143
|
+
'.map',
|
|
144
|
+
'.svg',
|
|
145
|
+
],
|
|
109
146
|
// tmpdir: string,上传的文件临时存储路径
|
|
110
147
|
tmpdir: (0, path_1.join)((0, os_1.tmpdir)(), 'fatcms-upload-files'),
|
|
111
148
|
// cleanTimeout: number,上传的文件在临时目录中多久之后自动删除,默认为 5 分钟
|
|
@@ -134,13 +171,13 @@ exports.default = (appInfo) => {
|
|
|
134
171
|
// 使用浏览器插件配置header信息:插件名:ModHeader - Modify HTTP headers
|
|
135
172
|
// 默认值:配置key:fatcmsdebug, 配置value: headerSecret的值
|
|
136
173
|
fatcmsDebug: {
|
|
137
|
-
headerKey: '
|
|
138
|
-
headerSecret: '
|
|
174
|
+
headerKey: 'fatcmsDebug',
|
|
175
|
+
headerSecret: '111',
|
|
139
176
|
},
|
|
140
177
|
// 是否开启SA账号。只有账号密码没有用,必须通过ModHeader插件设置如下字段
|
|
141
178
|
fatcmsSAEnable: {
|
|
142
|
-
headerKey: '
|
|
143
|
-
headerSecret: '
|
|
179
|
+
headerKey: 'fatcmsSAEnable',
|
|
180
|
+
headerSecret: '222',
|
|
144
181
|
},
|
|
145
182
|
// 是否启用内置的定时任务
|
|
146
183
|
fatcmsScheduleService: true,
|
|
@@ -13,7 +13,7 @@ exports.BaseApiController = void 0;
|
|
|
13
13
|
const core_1 = require("@midwayjs/core");
|
|
14
14
|
const CurdMixService_1 = require("../../service/curd/CurdMixService");
|
|
15
15
|
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
16
|
-
const
|
|
16
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
17
17
|
const UserAccountService_1 = require("../../service/UserAccountService");
|
|
18
18
|
const CurdMixUtils_1 = require("../../service/curd/CurdMixUtils");
|
|
19
19
|
const BaseService_1 = require("../../service/base/BaseService");
|
|
@@ -25,11 +25,12 @@ let BaseApiController = class BaseApiController extends BaseService_1.BaseServic
|
|
|
25
25
|
return this.ctx.userSession.getSessionInfo();
|
|
26
26
|
}
|
|
27
27
|
async executeSysSQL(executeSql, executeSqlArgs) {
|
|
28
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
28
29
|
return await this.curdMixService.executeSQL({
|
|
29
30
|
executeSql: executeSql,
|
|
30
31
|
executeSqlArgs: executeSqlArgs,
|
|
31
|
-
sqlDatabase:
|
|
32
|
-
|
|
32
|
+
sqlDatabase: SystemDbName,
|
|
33
|
+
sqlDbType: SystemDbType,
|
|
33
34
|
crudType: keys_1.KeyOfCrudTypes.SYS_QUERY,
|
|
34
35
|
});
|
|
35
36
|
}
|
|
@@ -41,14 +42,15 @@ let BaseApiController = class BaseApiController extends BaseService_1.BaseServic
|
|
|
41
42
|
* @protected
|
|
42
43
|
*/
|
|
43
44
|
async executeSysSimpleSQL(sqlTable, sqlSimpleName, params) {
|
|
45
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
44
46
|
const body = this.ctx.request.body;
|
|
45
47
|
const req = this.ctx.req;
|
|
46
48
|
const cfgModel = {
|
|
47
49
|
method: `${req.method}:${req.url}`,
|
|
48
50
|
sqlTable,
|
|
49
51
|
sqlSimpleName,
|
|
50
|
-
sqlDatabase:
|
|
51
|
-
|
|
52
|
+
sqlDatabase: SystemDbName,
|
|
53
|
+
sqlDbType: SystemDbType,
|
|
52
54
|
updateCfg: {},
|
|
53
55
|
};
|
|
54
56
|
if (params && typeof params === 'object') {
|
|
@@ -61,7 +63,8 @@ let BaseApiController = class BaseApiController extends BaseService_1.BaseServic
|
|
|
61
63
|
return await this.curdMixService.executeCrudByCfg(body, cfgModel);
|
|
62
64
|
}
|
|
63
65
|
get sysDBUtil() {
|
|
64
|
-
|
|
66
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
67
|
+
return this.curdMixService.getBbUtil(SystemDbName, SystemDbType);
|
|
65
68
|
}
|
|
66
69
|
addAccountBasicInfoCfgModel(cfgModel) {
|
|
67
70
|
let columnsRelation = cfgModel.columnsRelation;
|
|
@@ -22,6 +22,7 @@ const ApiBaseService_1 = require("../../service/base/ApiBaseService");
|
|
|
22
22
|
const CurdProService_1 = require("../../service/curd/CurdProService");
|
|
23
23
|
const CurdMixService_1 = require("../../service/curd/CurdMixService");
|
|
24
24
|
const DatabaseName_1 = require("../../libs/crud-pro/utils/DatabaseName");
|
|
25
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
25
26
|
const QUERY_AS_LIST = ['condition', 'data'];
|
|
26
27
|
function pickAsQuery(query_as_pick, query) {
|
|
27
28
|
if (query_as_pick && typeof query_as_pick === 'string') {
|
|
@@ -83,7 +84,9 @@ let CrudMtdGatewayController = class CrudMtdGatewayController extends ApiBaseSer
|
|
|
83
84
|
const cfgModel = methodInfo;
|
|
84
85
|
const { dbType, dbName } = (0, DatabaseName_1.parseDatabaseName)(cfgModel.sqlDatabase);
|
|
85
86
|
cfgModel.sqlDatabase = dbName;
|
|
86
|
-
cfgModel.
|
|
87
|
+
cfgModel.sqlDbType = dbType;
|
|
88
|
+
// 业务系统自定义的修改cfgModel
|
|
89
|
+
await global_config_1.GLOBAL_STATIC_CONFIG.getConfig().bizUpdateCfgModelForCrudMtd(reqJson, cfgModel, methodInfo, this.ctx);
|
|
87
90
|
return this.curdMixService.executeCrudByCfg(reqJson, cfgModel);
|
|
88
91
|
}
|
|
89
92
|
};
|
|
@@ -16,6 +16,7 @@ exports.DocGatewayController = void 0;
|
|
|
16
16
|
const core_1 = require("@midwayjs/core");
|
|
17
17
|
const BaseApiController_1 = require("../base/BaseApiController");
|
|
18
18
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
19
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
19
20
|
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
20
21
|
const WorkbenchService_1 = require("../../service/WorkbenchService");
|
|
21
22
|
const common_dto_1 = require("../../libs/utils/common-dto");
|
|
@@ -40,6 +41,7 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
40
41
|
if (nxRes !== 'OK') {
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
44
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
43
45
|
await this.curdMixService.executeCrudByCfg({
|
|
44
46
|
data: {
|
|
45
47
|
pv: pv + 1
|
|
@@ -51,8 +53,8 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
51
53
|
}, {
|
|
52
54
|
sqlTable: SystemTables_1.SystemTables.sys_doc,
|
|
53
55
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE,
|
|
54
|
-
sqlDatabase:
|
|
55
|
-
|
|
56
|
+
sqlDatabase: SystemDbName,
|
|
57
|
+
sqlDbType: SystemDbType,
|
|
56
58
|
});
|
|
57
59
|
}
|
|
58
60
|
/**
|
|
@@ -66,6 +68,7 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
66
68
|
if (!docLibInfoRes.success) {
|
|
67
69
|
return docLibInfoRes;
|
|
68
70
|
}
|
|
71
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
69
72
|
const res = await this.curdMixService.executeCrudByCfg({
|
|
70
73
|
condition: {
|
|
71
74
|
id: parseInt(docId),
|
|
@@ -74,8 +77,8 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
74
77
|
}, {
|
|
75
78
|
sqlTable: SystemTables_1.SystemTables.sys_doc,
|
|
76
79
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
77
|
-
sqlDatabase:
|
|
78
|
-
|
|
80
|
+
sqlDatabase: SystemDbName,
|
|
81
|
+
sqlDbType: SystemDbType,
|
|
79
82
|
});
|
|
80
83
|
// 更新PV数据
|
|
81
84
|
const docObj = res.getOneObj();
|
|
@@ -94,6 +97,7 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
94
97
|
if (!docLibInfoRes.success) {
|
|
95
98
|
return docLibInfoRes;
|
|
96
99
|
}
|
|
100
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
97
101
|
return this.curdMixService.executeCrudByCfg({
|
|
98
102
|
columns: 'id,title,doc_category_code,sort_index',
|
|
99
103
|
orderBy: 'sort_index+,id-',
|
|
@@ -106,8 +110,8 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
106
110
|
}, {
|
|
107
111
|
sqlTable: SystemTables_1.SystemTables.sys_doc,
|
|
108
112
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
109
|
-
sqlDatabase:
|
|
110
|
-
|
|
113
|
+
sqlDatabase: SystemDbName,
|
|
114
|
+
sqlDbType: SystemDbType,
|
|
111
115
|
});
|
|
112
116
|
}
|
|
113
117
|
/**
|
|
@@ -116,6 +120,7 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
116
120
|
*/
|
|
117
121
|
async getDocLibInfo(docLibId) {
|
|
118
122
|
checkIsNumber(docLibId, 'docLibId');
|
|
123
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
119
124
|
const s = await this.curdMixService.executeCrudByCfg({
|
|
120
125
|
condition: {
|
|
121
126
|
id: parseInt(docLibId),
|
|
@@ -123,8 +128,8 @@ let DocGatewayController = class DocGatewayController extends BaseApiController_
|
|
|
123
128
|
}, {
|
|
124
129
|
sqlTable: SystemTables_1.SystemTables.sys_doc_lib,
|
|
125
130
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
126
|
-
sqlDatabase:
|
|
127
|
-
|
|
131
|
+
sqlDatabase: SystemDbName,
|
|
132
|
+
sqlDbType: SystemDbType,
|
|
128
133
|
});
|
|
129
134
|
const docLibInfo = s.getOneObj();
|
|
130
135
|
if (!docLibInfo) {
|
|
@@ -11,6 +11,9 @@ interface HttpGetRes {
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class StaticController extends BaseApiController {
|
|
13
13
|
protected ctx: Context;
|
|
14
|
+
constructor();
|
|
15
|
+
private getLocalPaths;
|
|
16
|
+
private initNotFoundList;
|
|
14
17
|
private responseLocalFile;
|
|
15
18
|
proxyStaticFile(ossName: string, relativePath: string): Promise<string>;
|
|
16
19
|
saveNotFoundList(): Promise<void>;
|
|
@@ -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
25
|
"cdnjsx": 'https://cdnjsx.oss-cn-shanghai.aliyuncs.com',
|
|
28
26
|
"i.alicdn.com": "https://i.alicdn.com",
|
|
29
27
|
"img.alicdn.com": "https://img.alicdn.com",
|
|
28
|
+
"at.alicdn.com": "https://at.alicdn.com",
|
|
30
29
|
};
|
|
31
|
-
|
|
30
|
+
let remoteBaseUrl = remoteBaseUrlMap[ossName];
|
|
32
31
|
if (!remoteBaseUrl) {
|
|
33
|
-
|
|
32
|
+
console.error(`getPathConfig ossName: ${ossName} 未配置`);
|
|
33
|
+
remoteBaseUrl = `https://${ossName}`;
|
|
34
34
|
}
|
|
35
35
|
return {
|
|
36
36
|
remoteBaseUrl,
|
|
@@ -38,26 +38,43 @@ function getPathConfig(ossName) {
|
|
|
38
38
|
}
|
|
39
39
|
// 404列表缓存
|
|
40
40
|
let notFoundList = new Set();
|
|
41
|
-
|
|
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
|
+
constructor() {
|
|
47
|
+
super();
|
|
48
|
+
this.initNotFoundList();
|
|
49
|
+
}
|
|
50
|
+
getLocalPaths() {
|
|
51
|
+
const appDir = this.app.getAppDir();
|
|
52
|
+
const localDir = path.join(appDir, './public/static'); // 本地文件存储目录
|
|
53
|
+
const notFoundListFile = path.join(localDir, '__404__list.json'); // 404列表文件
|
|
54
|
+
return {
|
|
55
|
+
localDir,
|
|
56
|
+
notFoundListFile
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async initNotFoundList() {
|
|
60
|
+
if (notFoundListIsInit) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
notFoundListIsInit = true;
|
|
64
|
+
const { localDir, notFoundListFile } = this.getLocalPaths();
|
|
65
|
+
try {
|
|
66
|
+
// 确保本地存储目录存在
|
|
67
|
+
await fs.mkdir(localDir, { recursive: true });
|
|
68
|
+
const data = await fs.readFile(notFoundListFile, 'utf8');
|
|
69
|
+
notFoundList = new Set(JSON.parse(data));
|
|
70
|
+
console.log(`已加载${notFoundList.size}个404记录`);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error.code !== 'ENOENT') {
|
|
74
|
+
console.error('读取404列表失败:', error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
61
78
|
async responseLocalFile(localFilePath, localHeaderPath, relativePath) {
|
|
62
79
|
const headers = {
|
|
63
80
|
"Cache-Control": 'public, max-age=31536000',
|
|
@@ -107,6 +124,7 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
|
|
|
107
124
|
return false;
|
|
108
125
|
}
|
|
109
126
|
async proxyStaticFile(ossName, relativePath) {
|
|
127
|
+
const { localDir } = this.getLocalPaths();
|
|
110
128
|
const PATH_CONFIG = getPathConfig(ossName);
|
|
111
129
|
// 构建本地路径和远程路径
|
|
112
130
|
const localFilePath = path.join(localDir, ossName, "files", relativePath);
|
|
@@ -161,6 +179,7 @@ let StaticController = class StaticController extends BaseApiController_1.BaseAp
|
|
|
161
179
|
}
|
|
162
180
|
// 保存404列表
|
|
163
181
|
async saveNotFoundList() {
|
|
182
|
+
const { notFoundListFile } = this.getLocalPaths();
|
|
164
183
|
try {
|
|
165
184
|
// 确保存储404列表的目录存在
|
|
166
185
|
const dir = path.dirname(notFoundListFile);
|
|
@@ -260,6 +279,7 @@ __decorate([
|
|
|
260
279
|
__metadata("design:returntype", Promise)
|
|
261
280
|
], StaticController.prototype, "proxyStaticFile", null);
|
|
262
281
|
StaticController = __decorate([
|
|
263
|
-
(0, core_1.Controller)('/ns/static')
|
|
282
|
+
(0, core_1.Controller)('/ns/static'),
|
|
283
|
+
__metadata("design:paramtypes", [])
|
|
264
284
|
], StaticController);
|
|
265
285
|
exports.StaticController = StaticController;
|
|
@@ -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(
|
|
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
|
}
|