midway-fatcms 0.0.1-beta.4 → 0.0.1-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +14 -0
- package/.prettierrc.js +4 -0
- package/README.md +7 -0
- package/dist/config/config.default.js +58 -15
- package/dist/config/seed/aeskey.txt +1 -1
- package/dist/configuration.d.ts +1 -0
- package/dist/configuration.js +33 -9
- package/dist/controller/base/BaseApiController.d.ts +7 -1
- package/dist/controller/base/BaseApiController.js +32 -6
- package/dist/controller/gateway/AsyncTaskController.d.ts +20 -0
- package/dist/controller/gateway/AsyncTaskController.js +181 -0
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +3 -3
- package/dist/controller/gateway/CrudMtdGatewayController.js +9 -6
- package/dist/controller/gateway/DocGatewayController.js +14 -9
- package/dist/controller/gateway/FileController.d.ts +3 -2
- package/dist/controller/gateway/PublicApiController.js +4 -6
- package/dist/controller/gateway/StaticController.d.ts +0 -1
- package/dist/controller/gateway/StaticController.js +40 -39
- package/dist/controller/helpers.controller.d.ts +1 -1
- package/dist/controller/home.controller.js +4 -3
- package/dist/controller/manage/AnyApiMangeApi.js +2 -2
- package/dist/controller/manage/AppLogMangeApi.js +2 -2
- package/dist/controller/manage/AppMangeApi.js +2 -2
- package/dist/controller/manage/AppPageMangeApi.js +2 -2
- package/dist/controller/manage/AppSchemaHistoryApi.js +2 -2
- package/dist/controller/manage/CrudMethodsMangeApi.js +2 -2
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +1 -1
- package/dist/controller/manage/CrudStandardDesignApi.js +86 -83
- package/dist/controller/manage/DataDictManageApi.d.ts +1 -1
- package/dist/controller/manage/DataDictManageApi.js +1 -1
- package/dist/controller/manage/DeployManageApi.d.ts +1 -1
- package/dist/controller/manage/DeployManageApi.js +38 -34
- package/dist/controller/manage/DocLibManageApi.js +2 -2
- package/dist/controller/manage/DocManageApi.js +2 -2
- package/dist/controller/manage/FileManageApi.js +1 -1
- package/dist/controller/manage/LowCodeTplManageApi.js +2 -2
- package/dist/controller/manage/MenuManageApi.js +2 -2
- package/dist/controller/manage/ProxyApiMangeApi.js +2 -2
- package/dist/controller/manage/SuperAdminManageApi.d.ts +2 -2
- package/dist/controller/manage/SuperAdminManageApi.js +12 -8
- package/dist/controller/manage/SysConfigMangeApi.d.ts +1 -1
- package/dist/controller/manage/SysConfigMangeApi.js +8 -6
- package/dist/controller/manage/SystemInfoManageApi.d.ts +1 -1
- package/dist/controller/manage/SystemInfoManageApi.js +7 -1
- package/dist/controller/manage/UserAccountManageApi.d.ts +2 -2
- package/dist/controller/manage/UserAccountManageApi.js +7 -2
- package/dist/controller/manage/WorkbenchMangeApi.js +3 -3
- package/dist/controller/myinfo/AuthController.d.ts +0 -4
- package/dist/controller/myinfo/AuthController.js +1 -54
- package/dist/controller/render/AppRenderController.js +12 -5
- package/dist/controller/test.controller.d.ts +1 -1
- package/dist/controller/test.controller.js +5 -5
- package/dist/index.d.ts +35 -4
- package/dist/index.js +35 -4
- package/dist/libs/crud-pro/CrudPro.d.ts +1 -0
- package/dist/libs/crud-pro/CrudPro.js +5 -0
- package/dist/libs/crud-pro/defaultConfigs.js +2 -0
- package/dist/libs/crud-pro/interfaces.d.ts +7 -1
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +12 -5
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +8 -1
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +8 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +1 -1
- package/dist/libs/crud-pro/models/ResModel.d.ts +16 -0
- package/dist/libs/crud-pro/models/ResModel.js +2 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +1 -1
- package/dist/libs/crud-pro/models/Transaction.d.ts +1 -0
- package/dist/libs/crud-pro/models/Transaction.js +7 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +1 -1
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +1 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +27 -15
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +17 -19
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +1 -1
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +10 -12
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +14 -23
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +7 -6
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +2 -6
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +15 -3
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +1 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +32 -7
- package/dist/libs/crud-pro/sql.txt +120 -120
- package/dist/libs/crud-pro/utils/DatabaseName.js +24 -3
- package/dist/libs/crud-pro/utils/MixinUtils.js +1 -1
- package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -0
- package/dist/libs/global-config/global-config.d.ts +45 -0
- package/dist/libs/global-config/global-config.js +33 -0
- package/dist/libs/utils/base64.d.ts +9 -0
- package/dist/libs/utils/base64.js +42 -0
- package/dist/libs/utils/errorToString.d.ts +2 -0
- package/dist/libs/utils/errorToString.js +57 -0
- package/dist/libs/utils/fatcms-request.js +2 -2
- package/dist/libs/utils/functions.d.ts +2 -1
- package/dist/libs/utils/functions.js +6 -1
- package/dist/middleware/forbidden.middleware.js +4 -20
- package/dist/middleware/global.middleware.js +30 -10
- package/dist/middleware/permission.middleware.js +1 -1
- package/dist/models/AsyncTaskModel.d.ts +74 -0
- package/dist/models/AsyncTaskModel.js +31 -0
- package/dist/models/RedisKeys.d.ts +14 -0
- package/dist/models/RedisKeys.js +17 -0
- package/dist/models/SystemEntities.d.ts +8 -1
- package/dist/models/SystemEntities.js +7 -0
- package/dist/models/SystemTables.d.ts +1 -3
- package/dist/models/SystemTables.js +2 -4
- package/dist/models/bizmodels.d.ts +28 -0
- package/dist/models/bizmodels.js +6 -1
- package/dist/schedule/anonymousContext.d.ts +14 -0
- package/dist/schedule/anonymousContext.js +59 -0
- package/dist/schedule/index.d.ts +4 -3
- package/dist/schedule/index.js +8 -67
- package/dist/schedule/runSchedule.d.ts +12 -0
- package/dist/schedule/runSchedule.js +68 -0
- package/dist/schedule/scheduleNames.d.ts +13 -0
- package/dist/schedule/scheduleNames.js +17 -0
- package/dist/service/AuthService.js +8 -5
- package/dist/service/EnumInfoService.js +9 -5
- package/dist/service/FileCenterService.js +13 -9
- package/dist/service/SysConfigService.d.ts +1 -1
- package/dist/service/SysConfigService.js +4 -2
- package/dist/service/UserAccountService.js +10 -6
- package/dist/service/UserSessionService.d.ts +21 -0
- package/dist/service/UserSessionService.js +73 -2
- package/dist/service/VisitStatService.d.ts +1 -1
- package/dist/service/VisitStatService.js +20 -27
- package/dist/service/WorkbenchService.d.ts +33 -0
- package/dist/service/WorkbenchService.js +70 -12
- package/dist/service/anyapi/AnyApiSandboxService.js +12 -12
- package/dist/service/anyapi/AnyApiService.js +4 -2
- package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -0
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -0
- package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -0
- package/dist/service/asyncTask/AsyncTaskService.js +34 -0
- package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -0
- package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -0
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -0
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -0
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -0
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +139 -0
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -0
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +121 -0
- package/dist/service/base/BaseService.d.ts +12 -0
- package/dist/service/base/BaseService.js +22 -0
- package/dist/service/base/RedisCacheService.d.ts +7 -0
- package/dist/service/base/RedisCacheService.js +7 -0
- package/dist/service/crudstd/CrudStdService.d.ts +8 -1
- package/dist/service/crudstd/CrudStdService.js +63 -6
- package/dist/service/curd/CrudProQuick.d.ts +44 -0
- package/dist/service/curd/CrudProQuick.js +147 -0
- package/dist/service/curd/CurdMixByAccountService.d.ts +4 -4
- package/dist/service/curd/CurdMixByAccountService.js +12 -6
- package/dist/service/curd/CurdMixByDictService.d.ts +4 -4
- package/dist/service/curd/CurdMixByDictService.js +10 -7
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +13 -4
- package/dist/service/curd/CurdMixByLinkToCustomService.js +73 -24
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +3 -3
- package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +3 -3
- package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
- package/dist/service/curd/CurdMixService.d.ts +13 -3
- package/dist/service/curd/CurdMixService.js +26 -2
- package/dist/service/curd/CurdMixUtils.d.ts +27 -4
- package/dist/service/curd/CurdMixUtils.js +115 -41
- package/dist/service/curd/CurdProService.d.ts +3 -10
- package/dist/service/curd/CurdProService.js +36 -148
- package/dist/service/curd/fixCfgModel.d.ts +3 -0
- package/dist/service/curd/fixCfgModel.js +107 -0
- package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
- package/dist/service/proxyapi/ProxyApiService.d.ts +1 -0
- package/dist/service/proxyapi/ProxyApiService.js +43 -9
- package/dist/views/404_app.html +31 -31
- package/dist/views/404_workbench.html +34 -34
- package/package.json +28 -24
- package/tsconfig.json +32 -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/config/config.default.ts +0 -172
- package/src/config/seed/aeskey.txt +0 -1
- package/src/config/utils.ts +0 -23
- package/src/configuration.ts +0 -83
- package/src/controller/base/BaseApiController.ts +0 -145
- package/src/controller/gateway/AnyApiGatewayController.ts +0 -33
- package/src/controller/gateway/CrudMtdGatewayController.ts +0 -107
- package/src/controller/gateway/CrudStdGatewayController.ts +0 -101
- package/src/controller/gateway/DocGatewayController.ts +0 -165
- package/src/controller/gateway/FileController.ts +0 -110
- package/src/controller/gateway/ProxyApiGatewayController.ts +0 -47
- package/src/controller/gateway/PublicApiController.ts +0 -145
- package/src/controller/gateway/StaticController.ts +0 -328
- package/src/controller/helpers.controller.ts +0 -161
- package/src/controller/home.controller.ts +0 -71
- package/src/controller/manage/AnyApiMangeApi.ts +0 -66
- package/src/controller/manage/AppLogMangeApi.ts +0 -53
- package/src/controller/manage/AppMangeApi.ts +0 -53
- package/src/controller/manage/AppPageMangeApi.ts +0 -52
- package/src/controller/manage/AppSchemaHistoryApi.ts +0 -49
- package/src/controller/manage/CrudMethodsMangeApi.ts +0 -49
- package/src/controller/manage/CrudStandardDesignApi.ts +0 -353
- package/src/controller/manage/DataDictManageApi.ts +0 -78
- package/src/controller/manage/DeployManageApi.ts +0 -179
- package/src/controller/manage/DocLibManageApi.ts +0 -69
- package/src/controller/manage/DocManageApi.ts +0 -99
- package/src/controller/manage/FileManageApi.ts +0 -45
- package/src/controller/manage/LowCodeTplManageApi.ts +0 -52
- package/src/controller/manage/MenuManageApi.ts +0 -63
- package/src/controller/manage/ProxyApiMangeApi.ts +0 -52
- package/src/controller/manage/SuperAdminManageApi.ts +0 -138
- package/src/controller/manage/SysConfigMangeApi.ts +0 -95
- package/src/controller/manage/SystemInfoManageApi.ts +0 -48
- package/src/controller/manage/UserAccountManageApi.ts +0 -88
- package/src/controller/manage/WorkbenchMangeApi.ts +0 -72
- 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
- package/src/controller/myinfo/AuthController.ts +0 -174
- package/src/controller/myinfo/MyInfoController.ts +0 -32
- package/src/controller/render/AppRenderController.ts +0 -76
- package/src/controller/test.controller.ts +0 -37
- package/src/filter/default.filter.ts +0 -13
- package/src/filter/notfound.filter.ts +0 -10
- package/src/index.ts +0 -71
- package/src/interface.ts +0 -31
- package/src/libs/crud-pro/CrudPro.ts +0 -158
- package/src/libs/crud-pro/defaultConfigs.ts +0 -13
- package/src/libs/crud-pro/exceptions.ts +0 -124
- package/src/libs/crud-pro/interfaces.ts +0 -183
- package/src/libs/crud-pro/models/ExecuteContext.ts +0 -111
- package/src/libs/crud-pro/models/ExecuteContextFunc.ts +0 -86
- package/src/libs/crud-pro/models/FuncContext.ts +0 -21
- package/src/libs/crud-pro/models/RequestCfgModel.ts +0 -141
- package/src/libs/crud-pro/models/RequestModel.ts +0 -141
- package/src/libs/crud-pro/models/ServiceHub.ts +0 -32
- package/src/libs/crud-pro/models/SqlCfgModel.ts +0 -52
- package/src/libs/crud-pro/models/SqlSegArg.ts +0 -13
- package/src/libs/crud-pro/models/Transaction.ts +0 -74
- package/src/libs/crud-pro/models/TransactionMySQL.ts +0 -79
- package/src/libs/crud-pro/models/TransactionPostgres.ts +0 -91
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +0 -107
- package/src/libs/crud-pro/models/keys.ts +0 -159
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +0 -75
- package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +0 -128
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +0 -279
- package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +0 -60
- package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +0 -180
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +0 -373
- package/src/libs/crud-pro/services/CrudProGenSqlService.ts +0 -202
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +0 -397
- package/src/libs/crud-pro/services/CrudProServiceBase.ts +0 -98
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +0 -59
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +0 -92
- package/src/libs/crud-pro/sql.txt +0 -120
- package/src/libs/crud-pro/utils/CompareUtils.ts +0 -23
- package/src/libs/crud-pro/utils/DatabaseName.ts +0 -40
- package/src/libs/crud-pro/utils/DateTimeUtils.ts +0 -20
- package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +0 -64
- package/src/libs/crud-pro/utils/MessageParseUtils.ts +0 -33
- package/src/libs/crud-pro/utils/MixinUtils.ts +0 -285
- package/src/libs/crud-pro/utils/ModelUtils.ts +0 -55
- package/src/libs/crud-pro/utils/MultiKeyMap.ts +0 -72
- package/src/libs/crud-pro/utils/SqlFuncUtils.ts +0 -29
- package/src/libs/crud-pro/utils/TypeUtils.ts +0 -188
- package/src/libs/crud-pro/utils/ValidateUtils.ts +0 -167
- package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +0 -20
- package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +0 -22
- package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +0 -22
- package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +0 -26
- package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +0 -11
- package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +0 -11
- package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +0 -129
- package/src/libs/utils/common-dto.ts +0 -52
- package/src/libs/utils/crypto-utils.ts +0 -52
- package/src/libs/utils/fatcms-request.ts +0 -115
- package/src/libs/utils/functions.ts +0 -67
- package/src/libs/utils/ordernum-utils.ts +0 -18
- package/src/libs/utils/parseConfig.ts +0 -62
- package/src/libs/utils/parseCreateSql.ts +0 -91
- package/src/libs/utils/render-utils.ts +0 -184
- package/src/middleware/forbidden.middleware.ts +0 -71
- package/src/middleware/global.middleware.ts +0 -278
- package/src/middleware/permission.middleware.ts +0 -81
- package/src/middleware/tx.middleware.ts +0 -30
- package/src/models/SystemEntities.ts +0 -115
- package/src/models/SystemPerm.ts +0 -105
- package/src/models/SystemTables.ts +0 -30
- package/src/models/bizmodels.ts +0 -89
- package/src/models/contextLogger.ts +0 -132
- package/src/models/devops.ts +0 -17
- package/src/models/userSession.ts +0 -216
- package/src/schedule/index.ts +0 -73
- package/src/service/AuthService.ts +0 -270
- package/src/service/EnumInfoService.ts +0 -129
- package/src/service/FileCenterService.ts +0 -394
- package/src/service/SysConfigService.ts +0 -34
- package/src/service/UserAccountService.ts +0 -100
- package/src/service/UserSessionService.ts +0 -81
- package/src/service/VisitStatService.ts +0 -179
- package/src/service/WorkbenchService.ts +0 -160
- package/src/service/anyapi/AnyApiSandboxService.ts +0 -121
- package/src/service/anyapi/AnyApiService.ts +0 -184
- package/src/service/base/ApiBaseService.ts +0 -42
- package/src/service/base/ApiRateLimiter.ts +0 -59
- package/src/service/base/BaseService.ts +0 -74
- package/src/service/base/RedisCacheService.ts +0 -38
- package/src/service/crudstd/CrudStdActionService.ts +0 -27
- package/src/service/crudstd/CrudStdConstant.ts +0 -62
- package/src/service/crudstd/CrudStdRelationService.ts +0 -78
- package/src/service/crudstd/CrudStdService.ts +0 -188
- package/src/service/curd/CurdMixByAccountService.ts +0 -83
- package/src/service/curd/CurdMixByDictService.ts +0 -113
- package/src/service/curd/CurdMixByLinkToCustomService.ts +0 -167
- package/src/service/curd/CurdMixBySysConfigService.ts +0 -78
- package/src/service/curd/CurdMixByWorkbenchService.ts +0 -68
- package/src/service/curd/CurdMixService.ts +0 -65
- package/src/service/curd/CurdMixUtils.ts +0 -248
- package/src/service/curd/CurdProService.ts +0 -379
- package/src/service/proxyapi/ProxyApiLoadService.ts +0 -165
- package/src/service/proxyapi/ProxyApiService.ts +0 -262
- package/src/service/proxyapi/ProxyApiUtils.ts +0 -32
- package/src/service/proxyapi/RouteHandler.ts +0 -8
- package/src/service/proxyapi/RouteTrie.ts +0 -74
- package/src/service/proxyapi/WeightedRandom.ts +0 -37
- package/src/service/proxyapi/WeightedRoundRobin.ts +0 -44
- package/src/views/404_app.html +0 -31
- package/src/views/404_workbench.html +0 -34
- package/src/views/static/favicon.ico +0 -0
|
@@ -22,6 +22,7 @@ const UserSessionService_1 = require("./UserSessionService");
|
|
|
22
22
|
const common_dto_1 = require("../libs/utils/common-dto");
|
|
23
23
|
const fatcms_request_1 = require("../libs/utils/fatcms-request");
|
|
24
24
|
const exceptions_1 = require("../libs/crud-pro/exceptions");
|
|
25
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
25
26
|
let AuthService = class AuthService {
|
|
26
27
|
/**
|
|
27
28
|
* 明文密码转unsaltedPwd密码
|
|
@@ -116,7 +117,7 @@ let AuthService = class AuthService {
|
|
|
116
117
|
sessionId,
|
|
117
118
|
accountId,
|
|
118
119
|
workbenchCode,
|
|
119
|
-
accountType: userSession_1.SYS_ACCOUNT_TYPE
|
|
120
|
+
accountType: userSession_1.SYS_ACCOUNT_TYPE,
|
|
120
121
|
};
|
|
121
122
|
await this.userSessionService.saveUserSession(sessionInfo);
|
|
122
123
|
return {
|
|
@@ -171,14 +172,15 @@ let AuthService = class AuthService {
|
|
|
171
172
|
* @private
|
|
172
173
|
*/
|
|
173
174
|
async queryUserRoleCodeList(accountId) {
|
|
175
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
174
176
|
const res = await this.curdMixService.executeCrudByCfg({
|
|
175
177
|
condition: { account_id: accountId },
|
|
176
178
|
limit: 10000,
|
|
177
179
|
}, {
|
|
178
180
|
sqlTable: SystemTables_1.SystemTables.sys_perm_user_role,
|
|
179
181
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
180
|
-
sqlDatabase:
|
|
181
|
-
|
|
182
|
+
sqlDatabase: SystemDbName,
|
|
183
|
+
sqlDbType: SystemDbType,
|
|
182
184
|
});
|
|
183
185
|
const rows = res.getResModel().rows || [];
|
|
184
186
|
const roleCodes = rows.map(({ role_code }) => {
|
|
@@ -195,14 +197,15 @@ let AuthService = class AuthService {
|
|
|
195
197
|
if (!roleCodeList || roleCodeList.length === 0) {
|
|
196
198
|
return [];
|
|
197
199
|
}
|
|
200
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
198
201
|
const res = await this.curdMixService.executeCrudByCfg({
|
|
199
202
|
condition: { role_code: { $in: roleCodeList } },
|
|
200
203
|
limit: 10000,
|
|
201
204
|
}, {
|
|
202
205
|
sqlTable: SystemTables_1.SystemTables.sys_perm_role_func,
|
|
203
206
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
204
|
-
sqlDatabase:
|
|
205
|
-
|
|
207
|
+
sqlDatabase: SystemDbName,
|
|
208
|
+
sqlDbType: SystemDbType,
|
|
206
209
|
});
|
|
207
210
|
const rows = res.getResModel().rows || [];
|
|
208
211
|
const funcCodes = rows.map(({ func_code }) => {
|
|
@@ -18,6 +18,8 @@ const SystemTables_1 = require("../models/SystemTables");
|
|
|
18
18
|
const parseConfig_1 = require("../libs/utils/parseConfig");
|
|
19
19
|
const RedisCacheService_1 = require("./base/RedisCacheService");
|
|
20
20
|
const CurdMixByLinkToCustomService_1 = require("./curd/CurdMixByLinkToCustomService");
|
|
21
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
22
|
+
const RedisKeys_1 = require("../models/RedisKeys");
|
|
21
23
|
function filterEmpty(e) {
|
|
22
24
|
return e.label && typeof e.value !== 'undefined';
|
|
23
25
|
}
|
|
@@ -27,7 +29,7 @@ let EnumInfoService = class EnumInfoService {
|
|
|
27
29
|
const result = [];
|
|
28
30
|
for (let i = 0; i < codeList.length; i++) {
|
|
29
31
|
const { code, type } = codeList[i];
|
|
30
|
-
const cacheKey =
|
|
32
|
+
const cacheKey = `${RedisKeys_1.RedisKeys.QUERY_ENUM_INFO_PREFIX}${type}@@${code}`;
|
|
31
33
|
const emums = refreshCache ? null : await this.redisCacheService.getJsonObject(cacheKey);
|
|
32
34
|
if (!Array.isArray(emums) || emums.length === 0) {
|
|
33
35
|
let values;
|
|
@@ -70,13 +72,14 @@ let EnumInfoService = class EnumInfoService {
|
|
|
70
72
|
});
|
|
71
73
|
}
|
|
72
74
|
async queryEnumInfoBySysCfgEnum(code) {
|
|
75
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
73
76
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
74
77
|
condition: { config_code: code },
|
|
75
78
|
}, {
|
|
76
79
|
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
77
80
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
78
|
-
sqlDatabase:
|
|
79
|
-
|
|
81
|
+
sqlDatabase: SystemDbName,
|
|
82
|
+
sqlDbType: SystemDbType,
|
|
80
83
|
});
|
|
81
84
|
const obj = res1.getOneObj();
|
|
82
85
|
if (!obj) {
|
|
@@ -86,13 +89,14 @@ let EnumInfoService = class EnumInfoService {
|
|
|
86
89
|
return rows.map(e => ({ label: e.label, value: e.value, children: e.children })).filter(filterEmpty);
|
|
87
90
|
}
|
|
88
91
|
async queryEnumInfoItemByDict(code) {
|
|
92
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
89
93
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
90
94
|
condition: { dict_code: code },
|
|
91
95
|
}, {
|
|
92
96
|
sqlTable: SystemTables_1.SystemTables.sys_data_dict_item,
|
|
93
97
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
94
|
-
sqlDatabase:
|
|
95
|
-
|
|
98
|
+
sqlDatabase: SystemDbName,
|
|
99
|
+
sqlDbType: SystemDbType,
|
|
96
100
|
});
|
|
97
101
|
const obj = res1.getResRows();
|
|
98
102
|
if (!obj) {
|
|
@@ -20,7 +20,7 @@ const CurdMixService_1 = require("./curd/CurdMixService");
|
|
|
20
20
|
const keys_1 = require("../libs/crud-pro/models/keys");
|
|
21
21
|
const bizmodels_1 = require("../models/bizmodels");
|
|
22
22
|
const BaseService_1 = require("./base/BaseService");
|
|
23
|
-
const
|
|
23
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
24
24
|
function getSuffix(s) {
|
|
25
25
|
if (s) {
|
|
26
26
|
const indexOf = s.lastIndexOf('.');
|
|
@@ -93,12 +93,13 @@ class FileDB {
|
|
|
93
93
|
this.curdMixService = curdMixService;
|
|
94
94
|
}
|
|
95
95
|
async getFileInfo(fileKey) {
|
|
96
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
96
97
|
const condition = { file_key: fileKey };
|
|
97
98
|
const cfgModel = {
|
|
98
99
|
sqlTable: 'sys_file',
|
|
99
100
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
100
|
-
sqlDatabase:
|
|
101
|
-
|
|
101
|
+
sqlDatabase: SystemDbName,
|
|
102
|
+
sqlDbType: SystemDbType,
|
|
102
103
|
validateCfg: {
|
|
103
104
|
'condition.file_key': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.STRING],
|
|
104
105
|
},
|
|
@@ -107,11 +108,12 @@ class FileDB {
|
|
|
107
108
|
return res.getOneObj();
|
|
108
109
|
}
|
|
109
110
|
async saveFileInfo(fileInfo) {
|
|
111
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
110
112
|
const cfgModel = {
|
|
111
113
|
sqlTable: 'sys_file',
|
|
112
114
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
113
|
-
sqlDatabase:
|
|
114
|
-
|
|
115
|
+
sqlDatabase: SystemDbName,
|
|
116
|
+
sqlDbType: SystemDbType,
|
|
115
117
|
};
|
|
116
118
|
return await this.curdMixService.executeCrudByCfg({
|
|
117
119
|
data: fileInfo,
|
|
@@ -121,20 +123,22 @@ class FileDB {
|
|
|
121
123
|
}, cfgModel);
|
|
122
124
|
}
|
|
123
125
|
async saveAssetsLog(fileInfo) {
|
|
126
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
124
127
|
const cfgModel = {
|
|
125
128
|
sqlTable: 'sys_assets_log',
|
|
126
129
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
127
|
-
sqlDatabase:
|
|
128
|
-
|
|
130
|
+
sqlDatabase: SystemDbName,
|
|
131
|
+
sqlDbType: SystemDbType,
|
|
129
132
|
};
|
|
130
133
|
return await this.curdMixService.executeCrudByCfg({ data: fileInfo }, cfgModel);
|
|
131
134
|
}
|
|
132
135
|
async deleteFileInfo(id) {
|
|
136
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
133
137
|
const cfgModel = {
|
|
134
138
|
sqlTable: 'sys_file',
|
|
135
139
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_DELETE,
|
|
136
|
-
sqlDatabase:
|
|
137
|
-
|
|
140
|
+
sqlDatabase: SystemDbName,
|
|
141
|
+
sqlDbType: SystemDbType,
|
|
138
142
|
validateCfg: {
|
|
139
143
|
'condition.id': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.NUMBER],
|
|
140
144
|
},
|
|
@@ -15,18 +15,20 @@ const keys_1 = require("../libs/crud-pro/models/keys");
|
|
|
15
15
|
const SystemTables_1 = require("../models/SystemTables");
|
|
16
16
|
const BaseService_1 = require("./base/BaseService");
|
|
17
17
|
const CurdProService_1 = require("./curd/CurdProService");
|
|
18
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
18
19
|
let SysConfigService = class SysConfigService extends BaseService_1.BaseService {
|
|
19
20
|
async getSysConfigOne(config_code) {
|
|
20
21
|
if (!config_code) {
|
|
21
22
|
throw new Error('[getSysConfigOne] config_code required');
|
|
22
23
|
}
|
|
24
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
23
25
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
24
26
|
condition: { config_code },
|
|
25
27
|
}, {
|
|
26
28
|
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
27
29
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
28
|
-
sqlDatabase:
|
|
29
|
-
|
|
30
|
+
sqlDatabase: SystemDbName,
|
|
31
|
+
sqlDbType: SystemDbType,
|
|
30
32
|
});
|
|
31
33
|
return res1.getOneObj();
|
|
32
34
|
}
|
|
@@ -18,20 +18,22 @@ const functions_1 = require("../libs/utils/functions");
|
|
|
18
18
|
const exceptions_1 = require("../libs/crud-pro/exceptions");
|
|
19
19
|
const SystemTables_1 = require("../models/SystemTables");
|
|
20
20
|
const common_dto_1 = require("../libs/utils/common-dto");
|
|
21
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
21
22
|
let UserAccountService = class UserAccountService {
|
|
22
23
|
/**
|
|
23
24
|
* 查询用户: 根据loginName查询
|
|
24
25
|
* @param loginName
|
|
25
26
|
*/
|
|
26
27
|
async queryUserAccountByLoginName(loginName) {
|
|
28
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
27
29
|
const query = await this.curdMixService.executeCrudByCfg({
|
|
28
30
|
condition: { login_name: loginName },
|
|
29
31
|
}, {
|
|
30
32
|
method: 'UserAccountService.queryUserAccountByLoginName',
|
|
31
33
|
sqlTable: SystemTables_1.SystemTables.sys_user_account,
|
|
32
34
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
33
|
-
sqlDatabase:
|
|
34
|
-
|
|
35
|
+
sqlDatabase: SystemDbName,
|
|
36
|
+
sqlDbType: SystemDbType,
|
|
35
37
|
});
|
|
36
38
|
const { row } = query.getResModel();
|
|
37
39
|
return row;
|
|
@@ -45,6 +47,7 @@ let UserAccountService = class UserAccountService {
|
|
|
45
47
|
if (!accountIdList || accountIdList.length === 0) {
|
|
46
48
|
return [];
|
|
47
49
|
}
|
|
50
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
48
51
|
const accountIds = accountIdList.map(userId => {
|
|
49
52
|
return `${userId}`;
|
|
50
53
|
});
|
|
@@ -52,8 +55,8 @@ let UserAccountService = class UserAccountService {
|
|
|
52
55
|
method: 'UserAccountService.queryAccountBasicInfoByIds',
|
|
53
56
|
sqlTable: SystemTables_1.SystemTables.sys_user_account,
|
|
54
57
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
55
|
-
sqlDatabase:
|
|
56
|
-
|
|
58
|
+
sqlDatabase: SystemDbName,
|
|
59
|
+
sqlDbType: SystemDbType,
|
|
57
60
|
};
|
|
58
61
|
const reqJson = {
|
|
59
62
|
columns: columns,
|
|
@@ -75,6 +78,7 @@ let UserAccountService = class UserAccountService {
|
|
|
75
78
|
if (!loginName) {
|
|
76
79
|
throw new exceptions_1.CommonException(exceptions_1.Exceptions.OTHER_EXCEPTION, 'loginName不存在');
|
|
77
80
|
}
|
|
81
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
78
82
|
const pwd_salt = (0, functions_1.createUniqueId)();
|
|
79
83
|
const pwd_md5 = md5(unsaltedPwd + pwd_salt);
|
|
80
84
|
const res1 = await this.curdMixService.executeCrudByCfg({
|
|
@@ -83,8 +87,8 @@ let UserAccountService = class UserAccountService {
|
|
|
83
87
|
}, {
|
|
84
88
|
sqlTable: SystemTables_1.SystemTables.sys_user_account,
|
|
85
89
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE,
|
|
86
|
-
sqlDatabase:
|
|
87
|
-
|
|
90
|
+
sqlDatabase: SystemDbName,
|
|
91
|
+
sqlDbType: SystemDbType,
|
|
88
92
|
});
|
|
89
93
|
return common_dto_1.CommonResult.successRes(res1.getResModel());
|
|
90
94
|
}
|
|
@@ -2,13 +2,34 @@ import { ISessionInfo } from '../models/userSession';
|
|
|
2
2
|
export declare class UserSessionService {
|
|
3
3
|
private ctx;
|
|
4
4
|
private redisCacheService;
|
|
5
|
+
private curdProService;
|
|
6
|
+
private fatcmsUserSessionKeepTimeSecond;
|
|
7
|
+
/**
|
|
8
|
+
* 获取用户会话保持时间: 单位秒
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
private getSessionKeepTimeSecond;
|
|
12
|
+
/**
|
|
13
|
+
* 保存用户会话信息
|
|
14
|
+
* @param sessionInfo
|
|
15
|
+
*/
|
|
5
16
|
saveUserSession(sessionInfo: ISessionInfo): Promise<void>;
|
|
6
17
|
/**
|
|
7
18
|
* 移除Session
|
|
8
19
|
* @param sessionId
|
|
9
20
|
*/
|
|
10
21
|
removeUserSession(sessionId: string): Promise<any>;
|
|
22
|
+
/**
|
|
23
|
+
* 获取用户会话信息
|
|
24
|
+
* @param sessionId
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
11
27
|
private getCurrentUserSessionForMiddleware1;
|
|
28
|
+
/**
|
|
29
|
+
* 从异步任务队列中获取当时用户的Session信息
|
|
30
|
+
* @param asyncTaskId
|
|
31
|
+
*/
|
|
32
|
+
private getCurrentUserSessionByAsyncTaskId;
|
|
12
33
|
/**
|
|
13
34
|
* 专门给中间件点调用的
|
|
14
35
|
*/
|
|
@@ -14,6 +14,12 @@ const core_1 = require("@midwayjs/core");
|
|
|
14
14
|
const functions_1 = require("../libs/utils/functions");
|
|
15
15
|
const userSession_1 = require("../models/userSession");
|
|
16
16
|
const RedisCacheService_1 = require("./base/RedisCacheService");
|
|
17
|
+
const RedisKeys_1 = require("../models/RedisKeys");
|
|
18
|
+
const AsyncTaskModel_1 = require("../models/AsyncTaskModel");
|
|
19
|
+
const CurdProService_1 = require("./curd/CurdProService");
|
|
20
|
+
const keys_1 = require("../libs/crud-pro/models/keys");
|
|
21
|
+
const SystemTables_1 = require("../models/SystemTables");
|
|
22
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
17
23
|
function pickUserAvatar(avatar) {
|
|
18
24
|
if (!avatar) {
|
|
19
25
|
return null;
|
|
@@ -41,13 +47,28 @@ function pickUserAvatar(avatar) {
|
|
|
41
47
|
}
|
|
42
48
|
const SESSION_KEEP_TIME_SECOND = 3600 * 24 * 30;
|
|
43
49
|
const toCacheKey = (sessionId) => {
|
|
44
|
-
return
|
|
50
|
+
return `${RedisKeys_1.RedisKeys.USER_SESSION_PREFIX}${sessionId}`;
|
|
45
51
|
};
|
|
46
52
|
let UserSessionService = class UserSessionService {
|
|
53
|
+
/**
|
|
54
|
+
* 获取用户会话保持时间: 单位秒
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
getSessionKeepTimeSecond() {
|
|
58
|
+
if (typeof this.fatcmsUserSessionKeepTimeSecond === 'number' && this.fatcmsUserSessionKeepTimeSecond > 0) {
|
|
59
|
+
return this.fatcmsUserSessionKeepTimeSecond;
|
|
60
|
+
}
|
|
61
|
+
return SESSION_KEEP_TIME_SECOND;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 保存用户会话信息
|
|
65
|
+
* @param sessionInfo
|
|
66
|
+
*/
|
|
47
67
|
async saveUserSession(sessionInfo) {
|
|
48
68
|
sessionInfo.avatar = pickUserAvatar(sessionInfo.avatar);
|
|
49
69
|
const sessionId = sessionInfo.sessionId;
|
|
50
|
-
|
|
70
|
+
const keepTime = this.getSessionKeepTimeSecond();
|
|
71
|
+
await this.redisCacheService.setJsonObject(toCacheKey(sessionId), sessionInfo, keepTime);
|
|
51
72
|
}
|
|
52
73
|
/**
|
|
53
74
|
* 移除Session
|
|
@@ -56,16 +77,58 @@ let UserSessionService = class UserSessionService {
|
|
|
56
77
|
async removeUserSession(sessionId) {
|
|
57
78
|
return await this.redisCacheService.removeItem(toCacheKey(sessionId));
|
|
58
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* 获取用户会话信息
|
|
82
|
+
* @param sessionId
|
|
83
|
+
* @returns
|
|
84
|
+
*/
|
|
59
85
|
async getCurrentUserSessionForMiddleware1(sessionId) {
|
|
60
86
|
if (!sessionId) {
|
|
61
87
|
return null;
|
|
62
88
|
}
|
|
63
89
|
return await this.redisCacheService.getJsonObject(toCacheKey(sessionId));
|
|
64
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* 从异步任务队列中获取当时用户的Session信息
|
|
93
|
+
* @param asyncTaskId
|
|
94
|
+
*/
|
|
95
|
+
async getCurrentUserSessionByAsyncTaskId(asyncTaskId) {
|
|
96
|
+
const taskSessionCacheKey = `${RedisKeys_1.RedisKeys.USER_SESSION_ASYNC_TASK_ID_PREFIX}${asyncTaskId}`;
|
|
97
|
+
const loadSessionInfo = async () => {
|
|
98
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
99
|
+
const asyncTaskRes = await this.curdProService.executeCrudByCfg({
|
|
100
|
+
columns: ['id', 'created_user_session'],
|
|
101
|
+
condition: {
|
|
102
|
+
id: asyncTaskId,
|
|
103
|
+
}
|
|
104
|
+
}, {
|
|
105
|
+
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
106
|
+
sqlTable: SystemTables_1.SystemTables.sys_async_tasks,
|
|
107
|
+
sqlDatabase: SystemDbName,
|
|
108
|
+
sqlDbType: SystemDbType,
|
|
109
|
+
});
|
|
110
|
+
const asyncTaskObj = asyncTaskRes.getOneObj();
|
|
111
|
+
if (!asyncTaskObj) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
return (0, functions_1.parseJsonObject)(asyncTaskObj.created_user_session);
|
|
115
|
+
};
|
|
116
|
+
let sessionInfo1 = await this.redisCacheService.getJsonObject(taskSessionCacheKey);
|
|
117
|
+
if (!sessionInfo1) {
|
|
118
|
+
sessionInfo1 = await loadSessionInfo();
|
|
119
|
+
await this.redisCacheService.setJsonObject(taskSessionCacheKey, sessionInfo1, 3600); // 只缓存一小时即可
|
|
120
|
+
}
|
|
121
|
+
return sessionInfo1;
|
|
122
|
+
}
|
|
65
123
|
/**
|
|
66
124
|
* 专门给中间件点调用的
|
|
67
125
|
*/
|
|
68
126
|
async getCurrentUserSessionForMiddleware() {
|
|
127
|
+
// 先从Header中获取:异步任务队列的任务ID
|
|
128
|
+
const asyncTaskId = this.ctx.headers[AsyncTaskModel_1.HEADER_KEY_RUN_BY_ASYNC_TASK_ID];
|
|
129
|
+
if (asyncTaskId && typeof asyncTaskId === 'string') {
|
|
130
|
+
return this.getCurrentUserSessionByAsyncTaskId(asyncTaskId);
|
|
131
|
+
}
|
|
69
132
|
const cookies = this.ctx.cookies;
|
|
70
133
|
const sessionId = cookies.get(userSession_1.SESSION_ID_KEY, userSession_1.sessionCookieCfg);
|
|
71
134
|
return this.getCurrentUserSessionForMiddleware1(sessionId);
|
|
@@ -79,6 +142,14 @@ __decorate([
|
|
|
79
142
|
(0, core_1.Inject)(),
|
|
80
143
|
__metadata("design:type", RedisCacheService_1.RedisCacheService)
|
|
81
144
|
], UserSessionService.prototype, "redisCacheService", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
(0, core_1.Inject)(),
|
|
147
|
+
__metadata("design:type", CurdProService_1.CurdProService)
|
|
148
|
+
], UserSessionService.prototype, "curdProService", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
(0, core_1.Config)('fatcmsUserSessionKeepTimeSecond'),
|
|
151
|
+
__metadata("design:type", Number)
|
|
152
|
+
], UserSessionService.prototype, "fatcmsUserSessionKeepTimeSecond", void 0);
|
|
82
153
|
UserSessionService = __decorate([
|
|
83
154
|
(0, core_1.Provide)()
|
|
84
155
|
], UserSessionService);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Context } from '@midwayjs/koa';
|
|
2
2
|
import { IScheduleService } from '../interface';
|
|
3
|
-
import { BaseService } from
|
|
3
|
+
import { BaseService } from './base/BaseService';
|
|
4
4
|
export declare class VisitStatService extends BaseService implements IScheduleService {
|
|
5
5
|
protected ctx: Context;
|
|
6
6
|
private curdProService;
|
|
@@ -17,6 +17,8 @@ const SystemTables_1 = require("../models/SystemTables");
|
|
|
17
17
|
const keys_1 = require("../libs/crud-pro/models/keys");
|
|
18
18
|
const bizmodels_1 = require("../models/bizmodels");
|
|
19
19
|
const common_dto_1 = require("../libs/utils/common-dto");
|
|
20
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
21
|
+
const RedisKeys_1 = require("../models/RedisKeys");
|
|
20
22
|
// 3天 的秒数
|
|
21
23
|
const EXPIRE_TIME = 3 * 24 * 60 * 60;
|
|
22
24
|
const STAT_TYPES = {
|
|
@@ -27,25 +29,26 @@ const STAT_TYPES = {
|
|
|
27
29
|
let VisitStatService = class VisitStatService extends BaseService_1.BaseService {
|
|
28
30
|
async runBySchedule() {
|
|
29
31
|
const hours = new Date().getHours();
|
|
30
|
-
this.logInfo(
|
|
32
|
+
this.logInfo('[VisitStatService] runBySchedule called, hours = ' + hours);
|
|
31
33
|
return this.flushVisitStatToDB();
|
|
32
34
|
}
|
|
33
35
|
async flushVisitStatToDB() {
|
|
36
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
34
37
|
// 统计昨天的数据。
|
|
35
38
|
const stat_date = new Date(Date.now() - 24 * 3600 * 1000).toISOString().split('T')[0];
|
|
36
|
-
const lockKey =
|
|
39
|
+
const lockKey = `${RedisKeys_1.RedisKeys.VISIT_STAT_LOCK_PREFIX}${stat_date}`;
|
|
37
40
|
// 每天只能执行一次
|
|
38
41
|
const client = this.redisService;
|
|
39
42
|
const nxRes = await client.set(lockKey, 1, 'EX', EXPIRE_TIME, 'NX');
|
|
40
43
|
if (nxRes !== 'OK') {
|
|
41
|
-
this.logInfo(
|
|
42
|
-
return common_dto_1.CommonResult.errorRes(
|
|
44
|
+
this.logInfo('[VisitStatService] flushVisitStatToDB 每天只能执行一次 ');
|
|
45
|
+
return common_dto_1.CommonResult.errorRes('每天只能执行一次');
|
|
43
46
|
}
|
|
44
|
-
this.logInfo(
|
|
47
|
+
this.logInfo('[VisitStatService] flushVisitStatToDB start ');
|
|
45
48
|
let totalCount = 0;
|
|
46
49
|
let successCount = 0;
|
|
47
50
|
try {
|
|
48
|
-
const keys = await client.keys(
|
|
51
|
+
const keys = await client.keys(`${RedisKeys_1.RedisKeys.VISIT_STAT_DATE_PREFIX}${stat_date}::*`);
|
|
49
52
|
// `vs_${date}::${req_host}::${resource_type}::${stat_type}::${resource}`;
|
|
50
53
|
totalCount = keys.length;
|
|
51
54
|
for (const key of keys) {
|
|
@@ -57,7 +60,7 @@ let VisitStatService = class VisitStatService extends BaseService_1.BaseService
|
|
|
57
60
|
const stat_type = parts[3];
|
|
58
61
|
const stat_resource = parts[4];
|
|
59
62
|
let stat_count;
|
|
60
|
-
if (stat_type === STAT_TYPES.uv_ip || stat_type
|
|
63
|
+
if (stat_type === STAT_TYPES.uv_ip || stat_type === STAT_TYPES.uv_uid) {
|
|
61
64
|
stat_count = await client.scard(key);
|
|
62
65
|
}
|
|
63
66
|
else {
|
|
@@ -70,12 +73,12 @@ let VisitStatService = class VisitStatService extends BaseService_1.BaseService
|
|
|
70
73
|
stat_type,
|
|
71
74
|
resource_type,
|
|
72
75
|
stat_count,
|
|
73
|
-
req_host
|
|
74
|
-
}
|
|
76
|
+
req_host,
|
|
77
|
+
},
|
|
75
78
|
}, {
|
|
76
79
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
77
|
-
sqlDatabase:
|
|
78
|
-
|
|
80
|
+
sqlDatabase: SystemDbName,
|
|
81
|
+
sqlDbType: SystemDbType,
|
|
79
82
|
sqlTable: SystemTables_1.SystemTables.sys_visit_stats,
|
|
80
83
|
});
|
|
81
84
|
await client.del(key);
|
|
@@ -92,7 +95,7 @@ let VisitStatService = class VisitStatService extends BaseService_1.BaseService
|
|
|
92
95
|
this.logError('[VisitStatService] flushVisitStatToDB', error);
|
|
93
96
|
console.log('[VisitStatService] flushVisitStatToDB', error);
|
|
94
97
|
}
|
|
95
|
-
this.logInfo(
|
|
98
|
+
this.logInfo('[VisitStatService] flushVisitStatToDB end ');
|
|
96
99
|
return common_dto_1.CommonResult.successRes({ successCount, totalCount });
|
|
97
100
|
}
|
|
98
101
|
/**
|
|
@@ -122,34 +125,24 @@ let VisitStatService = class VisitStatService extends BaseService_1.BaseService
|
|
|
122
125
|
const client = this.redisService;
|
|
123
126
|
const ip = this.ctx.headers['x-real-ip'];
|
|
124
127
|
const userSession = this.ctx.userSession;
|
|
125
|
-
const req_host = ((_b = (_a = this.ctx) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.host) ||
|
|
128
|
+
const req_host = ((_b = (_a = this.ctx) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.host) || 'null'; // 域名
|
|
126
129
|
const date = new Date().toISOString().split('T')[0];
|
|
127
130
|
const toDateResourceKey = (stat_type) => {
|
|
128
|
-
return
|
|
131
|
+
return `${RedisKeys_1.RedisKeys.VISIT_STAT_DATE_PREFIX}${date}::${req_host}::${resource_type}::${stat_type}::${resource}`;
|
|
129
132
|
};
|
|
130
133
|
const pv_key = toDateResourceKey(STAT_TYPES.pv);
|
|
131
134
|
const uv_ip_key = toDateResourceKey(STAT_TYPES.uv_ip);
|
|
132
135
|
const uv_uid_key = toDateResourceKey(STAT_TYPES.uv_uid);
|
|
133
136
|
// 统计 PV
|
|
134
|
-
await Promise.all([
|
|
135
|
-
client.incr(pv_key),
|
|
136
|
-
client.expire(pv_key, EXPIRE_TIME)
|
|
137
|
-
]);
|
|
137
|
+
await Promise.all([client.incr(pv_key), client.expire(pv_key, EXPIRE_TIME)]);
|
|
138
138
|
// IP 访问 UV
|
|
139
|
-
await Promise.all([
|
|
140
|
-
client.sadd(uv_ip_key, `${ip}`),
|
|
141
|
-
client.expire(uv_ip_key, EXPIRE_TIME)
|
|
142
|
-
]);
|
|
139
|
+
await Promise.all([client.sadd(uv_ip_key, `${ip}`), client.expire(uv_ip_key, EXPIRE_TIME)]);
|
|
143
140
|
if (userSession && userSession.isLogin()) {
|
|
144
141
|
const accountId = userSession.getSessionInfo().accountId;
|
|
145
142
|
// 统计 UV
|
|
146
|
-
await Promise.all([
|
|
147
|
-
client.sadd(uv_uid_key, accountId),
|
|
148
|
-
client.expire(uv_uid_key, EXPIRE_TIME)
|
|
149
|
-
]);
|
|
143
|
+
await Promise.all([client.sadd(uv_uid_key, accountId), client.expire(uv_uid_key, EXPIRE_TIME)]);
|
|
150
144
|
}
|
|
151
145
|
}
|
|
152
|
-
;
|
|
153
146
|
};
|
|
154
147
|
__decorate([
|
|
155
148
|
(0, core_1.Inject)(),
|
|
@@ -5,15 +5,48 @@ import { IScheduleService } from '../interface';
|
|
|
5
5
|
export declare class WorkbenchService extends BaseService implements IScheduleService {
|
|
6
6
|
ctx: Context;
|
|
7
7
|
private curdProService;
|
|
8
|
+
private fatcmsTargetWorkbenchCode;
|
|
8
9
|
clearCache(): void;
|
|
9
10
|
runBySchedule(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* 获取所有站点列表
|
|
13
|
+
* @param isForceRefresh 是否强制刷新缓存
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
10
16
|
getAllWorkbenchInfoList(isForceRefresh?: boolean): Promise<IWorkbenchEntity[]>;
|
|
17
|
+
/**
|
|
18
|
+
* 获取所有站点列表,以map的形式返回。其中key为站点域名,value为站点信息
|
|
19
|
+
* @param isForceRefresh 是否强制刷新缓存
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
11
22
|
getAllWorkbenchInfoMap(isForceRefresh?: boolean): Promise<Record<any, IWorkbenchEntity>>;
|
|
23
|
+
/**
|
|
24
|
+
* 检查站点编码是否匹配
|
|
25
|
+
* @param workbench_code_array 站点编码数组
|
|
26
|
+
* @param workbench_code 站点编码
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
12
29
|
isMatchWorkbenchCode(workbench_code_array: string | string[], workbench_code: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* 根据站点编码获取站点信息
|
|
32
|
+
* @param workbenchCode 站点编码
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
private getWorkbenchInfoByCode;
|
|
36
|
+
/**
|
|
37
|
+
* 根据域名获取站点信息
|
|
38
|
+
* @param host 域名
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
private getWorkbenchInfoByHost;
|
|
13
42
|
/**
|
|
14
43
|
* 获取当前请求的域名所对应的站点信息
|
|
15
44
|
*/
|
|
16
45
|
getCurrentHostWorkbenchInfo(): Promise<IWorkbenchEntity>;
|
|
46
|
+
/**
|
|
47
|
+
* 获取当前请求的域名
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
17
50
|
private getCurrentHost;
|
|
18
51
|
isSupportCurrentWorkbench(workbench_code_array: string | string[]): Promise<boolean>;
|
|
19
52
|
isSupportCurrentHostForForMiddleware(): Promise<string | boolean>;
|