midway-fatcms 0.0.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/config/config.default.d.ts +3 -0
- package/dist/config/config.default.js +148 -0
- package/dist/config/seed/aeskey.txt +1 -0
- package/dist/config/utils.d.ts +1 -0
- package/dist/config/utils.js +23 -0
- package/dist/configuration.d.ts +6 -0
- package/dist/configuration.js +89 -0
- package/dist/controller/base/BaseApiController.d.ts +31 -0
- package/dist/controller/base/BaseApiController.js +138 -0
- package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -0
- package/dist/controller/gateway/AnyApiGatewayController.js +55 -0
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -0
- package/dist/controller/gateway/CrudMtdGatewayController.js +116 -0
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +38 -0
- package/dist/controller/gateway/CrudStdGatewayController.js +137 -0
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -0
- package/dist/controller/gateway/DocGatewayController.js +174 -0
- package/dist/controller/gateway/FileController.d.ts +25 -0
- package/dist/controller/gateway/FileController.js +129 -0
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -0
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -0
- package/dist/controller/gateway/PublicApiController.d.ts +27 -0
- package/dist/controller/gateway/PublicApiController.js +167 -0
- package/dist/controller/gateway/StaticController.d.ts +21 -0
- package/dist/controller/gateway/StaticController.js +265 -0
- package/dist/controller/helpers.controller.d.ts +39 -0
- package/dist/controller/helpers.controller.js +188 -0
- package/dist/controller/home.controller.d.ts +9 -0
- package/dist/controller/home.controller.js +71 -0
- package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -0
- package/dist/controller/manage/AnyApiMangeApi.js +98 -0
- package/dist/controller/manage/AppLogMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppLogMangeApi.js +88 -0
- package/dist/controller/manage/AppMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppMangeApi.js +88 -0
- package/dist/controller/manage/AppPageMangeApi.d.ts +10 -0
- package/dist/controller/manage/AppPageMangeApi.js +87 -0
- package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -0
- package/dist/controller/manage/AppSchemaHistoryApi.js +83 -0
- package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -0
- package/dist/controller/manage/CrudMethodsMangeApi.js +84 -0
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +38 -0
- package/dist/controller/manage/CrudStandardDesignApi.js +339 -0
- package/dist/controller/manage/DataDictManageApi.d.ts +15 -0
- package/dist/controller/manage/DataDictManageApi.js +133 -0
- package/dist/controller/manage/DeployManageApi.d.ts +19 -0
- package/dist/controller/manage/DeployManageApi.js +176 -0
- package/dist/controller/manage/DocLibManageApi.d.ts +10 -0
- package/dist/controller/manage/DocLibManageApi.js +104 -0
- package/dist/controller/manage/DocManageApi.d.ts +11 -0
- package/dist/controller/manage/DocManageApi.js +130 -0
- package/dist/controller/manage/FileManageApi.d.ts +13 -0
- package/dist/controller/manage/FileManageApi.js +77 -0
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -0
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -0
- package/dist/controller/manage/MenuManageApi.d.ts +10 -0
- package/dist/controller/manage/MenuManageApi.js +93 -0
- package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -0
- package/dist/controller/manage/ProxyApiMangeApi.js +87 -0
- package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -0
- package/dist/controller/manage/SuperAdminManageApi.js +149 -0
- package/dist/controller/manage/SysConfigMangeApi.d.ts +11 -0
- package/dist/controller/manage/SysConfigMangeApi.js +124 -0
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -0
- package/dist/controller/manage/SystemInfoManageApi.js +66 -0
- package/dist/controller/manage/UserAccountManageApi.d.ts +14 -0
- package/dist/controller/manage/UserAccountManageApi.js +124 -0
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -0
- package/dist/controller/manage/WorkbenchMangeApi.js +103 -0
- package/dist/controller/medstatistic/MedAdminController.d.ts +35 -0
- package/dist/controller/medstatistic/MedAdminController.js +205 -0
- package/dist/controller/medstatistic/MedClientController.d.ts +28 -0
- package/dist/controller/medstatistic/MedClientController.js +188 -0
- package/dist/controller/medstatistic/MedMessageService.d.ts +19 -0
- package/dist/controller/medstatistic/MedMessageService.js +95 -0
- package/dist/controller/medstatistic/MedScoreService.d.ts +21 -0
- package/dist/controller/medstatistic/MedScoreService.js +107 -0
- package/dist/controller/medstatistic/constants.d.ts +32 -0
- package/dist/controller/medstatistic/constants.js +43 -0
- package/dist/controller/myinfo/AuthController.d.ts +37 -0
- package/dist/controller/myinfo/AuthController.js +189 -0
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -0
- package/dist/controller/myinfo/MyInfoController.js +51 -0
- package/dist/controller/render/AppRenderController.d.ts +11 -0
- package/dist/controller/render/AppRenderController.js +85 -0
- package/dist/controller/test.controller.d.ts +8 -0
- package/dist/controller/test.controller.js +51 -0
- package/dist/filter/default.filter.d.ts +7 -0
- package/dist/filter/default.filter.js +23 -0
- package/dist/filter/notfound.filter.d.ts +5 -0
- package/dist/filter/notfound.filter.js +20 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.js +88 -0
- package/dist/interface.d.ts +27 -0
- package/dist/interface.js +3 -0
- package/dist/libs/crud-pro/CrudPro.d.ts +36 -0
- package/dist/libs/crud-pro/CrudPro.js +131 -0
- package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -0
- package/dist/libs/crud-pro/defaultConfigs.js +13 -0
- package/dist/libs/crud-pro/exceptions.d.ts +104 -0
- package/dist/libs/crud-pro/exceptions.js +117 -0
- package/dist/libs/crud-pro/interfaces.d.ts +157 -0
- package/dist/libs/crud-pro/interfaces.js +12 -0
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +42 -0
- package/dist/libs/crud-pro/models/ExecuteContext.js +79 -0
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +31 -0
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +64 -0
- package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -0
- package/dist/libs/crud-pro/models/FuncContext.js +6 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -0
- package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -0
- package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -0
- package/dist/libs/crud-pro/models/RequestModel.js +113 -0
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -0
- package/dist/libs/crud-pro/models/ServiceHub.js +2 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +22 -0
- package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -0
- package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -0
- package/dist/libs/crud-pro/models/SqlSegArg.js +12 -0
- package/dist/libs/crud-pro/models/Transaction.d.ts +29 -0
- package/dist/libs/crud-pro/models/Transaction.js +67 -0
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +28 -0
- package/dist/libs/crud-pro/models/TransactionMySQL.js +76 -0
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +28 -0
- package/dist/libs/crud-pro/models/TransactionPostgres.js +85 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +34 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +92 -0
- package/dist/libs/crud-pro/models/keys.d.ts +106 -0
- package/dist/libs/crud-pro/models/keys.js +149 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +10 -0
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +61 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +112 -0
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -0
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +227 -0
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -0
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -0
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -0
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +342 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -0
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +174 -0
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -0
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +333 -0
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +28 -0
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +78 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +8 -0
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +53 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -0
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -0
- package/dist/libs/crud-pro/sql.txt +120 -0
- package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -0
- package/dist/libs/crud-pro/utils/CompareUtils.js +25 -0
- package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -0
- package/dist/libs/crud-pro/utils/DatabaseName.js +29 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -0
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -0
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -0
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -0
- package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -0
- package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -0
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -0
- package/dist/libs/crud-pro/utils/MixinUtils.js +255 -0
- package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -0
- package/dist/libs/crud-pro/utils/ModelUtils.js +49 -0
- package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -0
- package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -0
- package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -0
- package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -0
- package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -0
- package/dist/libs/crud-pro/utils/TypeUtils.js +166 -0
- package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -0
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -0
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -0
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -0
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +21 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +11 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +11 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -0
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -0
- package/dist/libs/utils/common-dto.d.ts +18 -0
- package/dist/libs/utils/common-dto.js +40 -0
- package/dist/libs/utils/crypto-utils.d.ts +3 -0
- package/dist/libs/utils/crypto-utils.js +46 -0
- package/dist/libs/utils/fatcms-request.d.ts +30 -0
- package/dist/libs/utils/fatcms-request.js +104 -0
- package/dist/libs/utils/functions.d.ts +4 -0
- package/dist/libs/utils/functions.js +63 -0
- package/dist/libs/utils/ordernum-utils.d.ts +2 -0
- package/dist/libs/utils/ordernum-utils.js +13 -0
- package/dist/libs/utils/parseConfig.d.ts +7 -0
- package/dist/libs/utils/parseConfig.js +44 -0
- package/dist/libs/utils/parseCreateSql.d.ts +5 -0
- package/dist/libs/utils/parseCreateSql.js +86 -0
- package/dist/libs/utils/render-utils.d.ts +28 -0
- package/dist/libs/utils/render-utils.js +135 -0
- package/dist/middleware/forbidden.middleware.d.ts +10 -0
- package/dist/middleware/forbidden.middleware.js +70 -0
- package/dist/middleware/global.middleware.d.ts +10 -0
- package/dist/middleware/global.middleware.js +246 -0
- package/dist/middleware/permission.middleware.d.ts +18 -0
- package/dist/middleware/permission.middleware.js +74 -0
- package/dist/middleware/tx.middleware.d.ts +9 -0
- package/dist/middleware/tx.middleware.js +40 -0
- package/dist/models/SystemEntities.d.ts +98 -0
- package/dist/models/SystemEntities.js +2 -0
- package/dist/models/SystemPerm.d.ts +95 -0
- package/dist/models/SystemPerm.js +100 -0
- package/dist/models/SystemTables.d.ts +27 -0
- package/dist/models/SystemTables.js +30 -0
- package/dist/models/bizmodels.d.ts +69 -0
- package/dist/models/bizmodels.js +34 -0
- package/dist/models/contextLogger.d.ts +25 -0
- package/dist/models/contextLogger.js +112 -0
- package/dist/models/devops.d.ts +12 -0
- package/dist/models/devops.js +19 -0
- package/dist/models/userSession.d.ts +61 -0
- package/dist/models/userSession.js +165 -0
- package/dist/schedule/index.d.ts +3 -0
- package/dist/schedule/index.js +69 -0
- package/dist/service/AuthService.d.ts +70 -0
- package/dist/service/AuthService.js +248 -0
- package/dist/service/EnumInfoService.d.ts +30 -0
- package/dist/service/EnumInfoService.js +123 -0
- package/dist/service/FileCenterService.d.ts +43 -0
- package/dist/service/FileCenterService.js +347 -0
- package/dist/service/SysConfigService.d.ts +7 -0
- package/dist/service/SysConfigService.js +45 -0
- package/dist/service/UserAccountService.d.ts +23 -0
- package/dist/service/UserAccountService.js +103 -0
- package/dist/service/UserSessionService.d.ts +16 -0
- package/dist/service/UserSessionService.js +85 -0
- package/dist/service/VisitStatService.d.ts +14 -0
- package/dist/service/VisitStatService.js +165 -0
- package/dist/service/WorkbenchService.d.ts +20 -0
- package/dist/service/WorkbenchService.js +153 -0
- package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -0
- package/dist/service/anyapi/AnyApiSandboxService.js +122 -0
- package/dist/service/anyapi/AnyApiService.d.ts +27 -0
- package/dist/service/anyapi/AnyApiService.js +179 -0
- package/dist/service/base/ApiBaseService.d.ts +15 -0
- package/dist/service/base/ApiBaseService.js +50 -0
- package/dist/service/base/ApiRateLimiter.d.ts +10 -0
- package/dist/service/base/ApiRateLimiter.js +51 -0
- package/dist/service/base/BaseService.d.ts +29 -0
- package/dist/service/base/BaseService.js +79 -0
- package/dist/service/base/RedisCacheService.d.ts +13 -0
- package/dist/service/base/RedisCacheService.js +50 -0
- package/dist/service/crudstd/CrudStdActionService.d.ts +17 -0
- package/dist/service/crudstd/CrudStdActionService.js +32 -0
- package/dist/service/crudstd/CrudStdConstant.d.ts +58 -0
- package/dist/service/crudstd/CrudStdConstant.js +64 -0
- package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -0
- package/dist/service/crudstd/CrudStdRelationService.js +85 -0
- package/dist/service/crudstd/CrudStdService.d.ts +50 -0
- package/dist/service/crudstd/CrudStdService.js +182 -0
- package/dist/service/curd/CurdMixByAccountService.d.ts +9 -0
- package/dist/service/curd/CurdMixByAccountService.js +87 -0
- package/dist/service/curd/CurdMixByDictService.d.ts +13 -0
- package/dist/service/curd/CurdMixByDictService.js +111 -0
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +22 -0
- package/dist/service/curd/CurdMixByLinkToCustomService.js +154 -0
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +9 -0
- package/dist/service/curd/CurdMixBySysConfigService.js +78 -0
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +10 -0
- package/dist/service/curd/CurdMixByWorkbenchService.js +76 -0
- package/dist/service/curd/CurdMixService.d.ts +17 -0
- package/dist/service/curd/CurdMixService.js +76 -0
- package/dist/service/curd/CurdMixUtils.d.ts +28 -0
- package/dist/service/curd/CurdMixUtils.js +201 -0
- package/dist/service/curd/CurdProService.d.ts +39 -0
- package/dist/service/curd/CurdProService.js +322 -0
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -0
- package/dist/service/proxyapi/ProxyApiLoadService.js +164 -0
- package/dist/service/proxyapi/ProxyApiService.d.ts +60 -0
- package/dist/service/proxyapi/ProxyApiService.js +260 -0
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -0
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -0
- package/dist/service/proxyapi/RouteHandler.d.ts +5 -0
- package/dist/service/proxyapi/RouteHandler.js +9 -0
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -0
- package/dist/service/proxyapi/RouteTrie.js +63 -0
- package/dist/service/proxyapi/WeightedRandom.d.ts +9 -0
- package/dist/service/proxyapi/WeightedRandom.js +31 -0
- package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -0
- package/dist/service/proxyapi/WeightedRoundRobin.js +32 -0
- package/index.d.ts +10 -0
- package/package.json +71 -0
- package/src/config/config.default.ts +172 -0
- package/src/config/seed/aeskey.txt +1 -0
- package/src/config/utils.ts +23 -0
- package/src/configuration.ts +83 -0
- package/src/controller/base/BaseApiController.ts +145 -0
- package/src/controller/gateway/AnyApiGatewayController.ts +33 -0
- package/src/controller/gateway/CrudMtdGatewayController.ts +107 -0
- package/src/controller/gateway/CrudStdGatewayController.ts +101 -0
- package/src/controller/gateway/DocGatewayController.ts +165 -0
- package/src/controller/gateway/FileController.ts +110 -0
- package/src/controller/gateway/ProxyApiGatewayController.ts +47 -0
- package/src/controller/gateway/PublicApiController.ts +145 -0
- package/src/controller/gateway/StaticController.ts +303 -0
- package/src/controller/helpers.controller.ts +161 -0
- package/src/controller/home.controller.ts +71 -0
- package/src/controller/manage/AnyApiMangeApi.ts +66 -0
- package/src/controller/manage/AppLogMangeApi.ts +53 -0
- package/src/controller/manage/AppMangeApi.ts +53 -0
- package/src/controller/manage/AppPageMangeApi.ts +52 -0
- package/src/controller/manage/AppSchemaHistoryApi.ts +49 -0
- package/src/controller/manage/CrudMethodsMangeApi.ts +49 -0
- package/src/controller/manage/CrudStandardDesignApi.ts +353 -0
- package/src/controller/manage/DataDictManageApi.ts +78 -0
- package/src/controller/manage/DeployManageApi.ts +179 -0
- package/src/controller/manage/DocLibManageApi.ts +69 -0
- package/src/controller/manage/DocManageApi.ts +99 -0
- package/src/controller/manage/FileManageApi.ts +45 -0
- package/src/controller/manage/LowCodeTplManageApi.ts +52 -0
- package/src/controller/manage/MenuManageApi.ts +63 -0
- package/src/controller/manage/ProxyApiMangeApi.ts +52 -0
- package/src/controller/manage/SuperAdminManageApi.ts +138 -0
- package/src/controller/manage/SysConfigMangeApi.ts +95 -0
- package/src/controller/manage/SystemInfoManageApi.ts +48 -0
- package/src/controller/manage/UserAccountManageApi.ts +88 -0
- package/src/controller/manage/WorkbenchMangeApi.ts +72 -0
- package/src/controller/medstatistic/MedAdminController.ts +221 -0
- package/src/controller/medstatistic/MedClientController.ts +188 -0
- package/src/controller/medstatistic/MedMessageService.ts +89 -0
- package/src/controller/medstatistic/MedScoreService.ts +108 -0
- package/src/controller/medstatistic/constants.ts +63 -0
- package/src/controller/myinfo/AuthController.ts +174 -0
- package/src/controller/myinfo/MyInfoController.ts +32 -0
- package/src/controller/render/AppRenderController.ts +76 -0
- package/src/controller/test.controller.ts +37 -0
- package/src/filter/default.filter.ts +13 -0
- package/src/filter/notfound.filter.ts +10 -0
- package/src/index.ts +70 -0
- package/src/interface.ts +31 -0
- package/src/libs/crud-pro/CrudPro.ts +158 -0
- package/src/libs/crud-pro/defaultConfigs.ts +13 -0
- package/src/libs/crud-pro/exceptions.ts +124 -0
- package/src/libs/crud-pro/interfaces.ts +183 -0
- package/src/libs/crud-pro/models/ExecuteContext.ts +111 -0
- package/src/libs/crud-pro/models/ExecuteContextFunc.ts +86 -0
- package/src/libs/crud-pro/models/FuncContext.ts +21 -0
- package/src/libs/crud-pro/models/RequestCfgModel.ts +141 -0
- package/src/libs/crud-pro/models/RequestModel.ts +141 -0
- package/src/libs/crud-pro/models/ServiceHub.ts +32 -0
- package/src/libs/crud-pro/models/SqlCfgModel.ts +52 -0
- package/src/libs/crud-pro/models/SqlSegArg.ts +13 -0
- package/src/libs/crud-pro/models/Transaction.ts +74 -0
- package/src/libs/crud-pro/models/TransactionMySQL.ts +79 -0
- package/src/libs/crud-pro/models/TransactionPostgres.ts +91 -0
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +107 -0
- package/src/libs/crud-pro/models/keys.ts +159 -0
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +75 -0
- package/src/libs/crud-pro/services/CrudProExecuteFuncService.ts +128 -0
- package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +279 -0
- package/src/libs/crud-pro/services/CrudProFieldUpdateService.ts +60 -0
- package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +180 -0
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +373 -0
- package/src/libs/crud-pro/services/CrudProGenSqlService.ts +202 -0
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +397 -0
- package/src/libs/crud-pro/services/CrudProServiceBase.ts +98 -0
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +59 -0
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +92 -0
- package/src/libs/crud-pro/sql.txt +120 -0
- package/src/libs/crud-pro/utils/CompareUtils.ts +23 -0
- package/src/libs/crud-pro/utils/DatabaseName.ts +40 -0
- package/src/libs/crud-pro/utils/DateTimeUtils.ts +20 -0
- package/src/libs/crud-pro/utils/MemoryRefreshCache.ts +64 -0
- package/src/libs/crud-pro/utils/MessageParseUtils.ts +33 -0
- package/src/libs/crud-pro/utils/MixinUtils.ts +285 -0
- package/src/libs/crud-pro/utils/ModelUtils.ts +55 -0
- package/src/libs/crud-pro/utils/MultiKeyMap.ts +72 -0
- package/src/libs/crud-pro/utils/SqlFuncUtils.ts +29 -0
- package/src/libs/crud-pro/utils/TypeUtils.ts +188 -0
- package/src/libs/crud-pro/utils/ValidateUtils.ts +167 -0
- package/src/libs/crud-pro/utils/pool/MySQLUtils.ts +20 -0
- package/src/libs/crud-pro/utils/pool/PostgresUtils.ts +22 -0
- package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +22 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +26 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertMsSql.ts +11 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertPgSql.ts +11 -0
- package/src/libs/crud-pro/utils/sqlConvert/convertPgType.ts +129 -0
- package/src/libs/utils/common-dto.ts +52 -0
- package/src/libs/utils/crypto-utils.ts +52 -0
- package/src/libs/utils/fatcms-request.ts +115 -0
- package/src/libs/utils/functions.ts +67 -0
- package/src/libs/utils/ordernum-utils.ts +18 -0
- package/src/libs/utils/parseConfig.ts +62 -0
- package/src/libs/utils/parseCreateSql.ts +91 -0
- package/src/libs/utils/render-utils.ts +184 -0
- package/src/middleware/forbidden.middleware.ts +71 -0
- package/src/middleware/global.middleware.ts +278 -0
- package/src/middleware/permission.middleware.ts +81 -0
- package/src/middleware/tx.middleware.ts +30 -0
- package/src/models/SystemEntities.ts +115 -0
- package/src/models/SystemPerm.ts +105 -0
- package/src/models/SystemTables.ts +30 -0
- package/src/models/bizmodels.ts +89 -0
- package/src/models/contextLogger.ts +132 -0
- package/src/models/devops.ts +17 -0
- package/src/models/userSession.ts +216 -0
- package/src/schedule/index.ts +73 -0
- package/src/service/AuthService.ts +270 -0
- package/src/service/EnumInfoService.ts +129 -0
- package/src/service/FileCenterService.ts +394 -0
- package/src/service/SysConfigService.ts +34 -0
- package/src/service/UserAccountService.ts +100 -0
- package/src/service/UserSessionService.ts +81 -0
- package/src/service/VisitStatService.ts +179 -0
- package/src/service/WorkbenchService.ts +160 -0
- package/src/service/anyapi/AnyApiSandboxService.ts +121 -0
- package/src/service/anyapi/AnyApiService.ts +184 -0
- package/src/service/base/ApiBaseService.ts +42 -0
- package/src/service/base/ApiRateLimiter.ts +59 -0
- package/src/service/base/BaseService.ts +74 -0
- package/src/service/base/RedisCacheService.ts +38 -0
- package/src/service/crudstd/CrudStdActionService.ts +27 -0
- package/src/service/crudstd/CrudStdConstant.ts +62 -0
- package/src/service/crudstd/CrudStdRelationService.ts +78 -0
- package/src/service/crudstd/CrudStdService.ts +188 -0
- package/src/service/curd/CurdMixByAccountService.ts +83 -0
- package/src/service/curd/CurdMixByDictService.ts +113 -0
- package/src/service/curd/CurdMixByLinkToCustomService.ts +167 -0
- package/src/service/curd/CurdMixBySysConfigService.ts +78 -0
- package/src/service/curd/CurdMixByWorkbenchService.ts +68 -0
- package/src/service/curd/CurdMixService.ts +65 -0
- package/src/service/curd/CurdMixUtils.ts +248 -0
- package/src/service/curd/CurdProService.ts +379 -0
- package/src/service/proxyapi/ProxyApiLoadService.ts +165 -0
- package/src/service/proxyapi/ProxyApiService.ts +262 -0
- package/src/service/proxyapi/ProxyApiUtils.ts +32 -0
- package/src/service/proxyapi/RouteHandler.ts +8 -0
- package/src/service/proxyapi/RouteTrie.ts +74 -0
- package/src/service/proxyapi/WeightedRandom.ts +37 -0
- package/src/service/proxyapi/WeightedRoundRobin.ts +44 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { Controller, Inject, Post } from '@midwayjs/core';
|
|
2
|
+
import { Context } from '@midwayjs/koa';
|
|
3
|
+
import { BaseApiController } from '../base/BaseApiController';
|
|
4
|
+
import { AuthService } from '../../service/AuthService';
|
|
5
|
+
import { CommonResult } from '../../libs/utils/common-dto';
|
|
6
|
+
import {WorkbenchService} from "../../service/WorkbenchService";
|
|
7
|
+
import {KeysOfSimpleSQL} from "../../libs/crud-pro/models/keys";
|
|
8
|
+
import {MedMessageService} from "./MedMessageService";
|
|
9
|
+
import {CurdProService} from "../../service/curd/CurdProService";
|
|
10
|
+
import {ISendUserReceivedMsg, MsgType, TARGET_OBJECT_TYPE_BBS_REPLY, TARGET_OBJECT_TYPE_BBS_TOPIC} from "./constants";
|
|
11
|
+
import {checkLogin} from "../../middleware/permission.middleware";
|
|
12
|
+
const MED_STATISTIC_DB = "medstatistic";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* medstatistic 用户端
|
|
16
|
+
*/
|
|
17
|
+
@Controller('/ns/api/medclient' , {middleware: [checkLogin()]})
|
|
18
|
+
export class MedClientController extends BaseApiController {
|
|
19
|
+
@Inject()
|
|
20
|
+
protected ctx: Context;
|
|
21
|
+
|
|
22
|
+
@Inject()
|
|
23
|
+
protected authService: AuthService;
|
|
24
|
+
|
|
25
|
+
@Inject()
|
|
26
|
+
protected workbenchService: WorkbenchService;
|
|
27
|
+
|
|
28
|
+
@Inject()
|
|
29
|
+
protected curdProService: CurdProService;
|
|
30
|
+
|
|
31
|
+
@Inject()
|
|
32
|
+
protected medMessageService: MedMessageService;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 充值
|
|
36
|
+
*/
|
|
37
|
+
@Post('/recharge')
|
|
38
|
+
async recharge(): Promise<CommonResult> {
|
|
39
|
+
// const body = this.ctx.request.body as any; // {user_id}
|
|
40
|
+
// const pay_type = body.pay_type; // 类型:1=微信,2=支付宝,3=授权
|
|
41
|
+
// const recharge_type = body.recharge_type; // 充值方式:1=套餐,2=自定义积分
|
|
42
|
+
// const package_price = body.package_price; // 套餐充值 package_price 元人民币
|
|
43
|
+
// const custom_score = body.custom_score; // 自定义充值 custom_score 元人民币
|
|
44
|
+
//
|
|
45
|
+
//
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 获取用户收到的消息。只需要登录即可
|
|
53
|
+
*/
|
|
54
|
+
@Post('/send_user_received_message')
|
|
55
|
+
async send_user_received_message(): Promise<CommonResult> {
|
|
56
|
+
const msgObj = this.ctx.request.body as any as ISendUserReceivedMsg; // {user_id}
|
|
57
|
+
const { msg_type , target_object_id, target_object_type} = msgObj || {}
|
|
58
|
+
|
|
59
|
+
// title:string, content: string, received_by: string | number, msgObj: ISendUserReceivedMsg
|
|
60
|
+
|
|
61
|
+
if (target_object_type === TARGET_OBJECT_TYPE_BBS_TOPIC) {
|
|
62
|
+
const topicObj = await this.getBBSTopic(target_object_id)
|
|
63
|
+
// 点赞了一篇帖子,发送消息 给作者
|
|
64
|
+
if ( msg_type === MsgType.bbs_post_be_like) {
|
|
65
|
+
const title = "您的帖子收到了点赞"
|
|
66
|
+
const content = `《${topicObj.title}》`
|
|
67
|
+
await this.medMessageService.insertMessage(title,content,topicObj.created_by, msgObj);
|
|
68
|
+
return CommonResult.successRes("OK");
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// 回复了一篇帖子,发送消息 给作者
|
|
72
|
+
if ( msg_type === MsgType.bbs_post_be_reply) {
|
|
73
|
+
const title = "您的帖子收到了回复"
|
|
74
|
+
const content = `《${topicObj.title}》`
|
|
75
|
+
await this.medMessageService.insertMessage(title,content,topicObj.created_by, msgObj);
|
|
76
|
+
return CommonResult.successRes("OK");
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// 回复帖子被判定为违规
|
|
80
|
+
if ( msg_type === MsgType.bbs_post_be_violation) {
|
|
81
|
+
const title = "您的帖子被判定为违规"
|
|
82
|
+
const content = `《${topicObj.title}》`
|
|
83
|
+
await this.medMessageService.insertMessage(title,content,topicObj.created_by, msgObj);
|
|
84
|
+
return CommonResult.successRes("OK");
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// 您的帖子被收藏
|
|
88
|
+
if ( msg_type === MsgType.bbs_post_be_favorite) {
|
|
89
|
+
const title = "您的帖子被收藏"
|
|
90
|
+
const content = `《${topicObj.title}》`
|
|
91
|
+
await this.medMessageService.insertMessage(title,content,topicObj.created_by, msgObj);
|
|
92
|
+
return CommonResult.successRes("OK");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
if (target_object_type === TARGET_OBJECT_TYPE_BBS_REPLY) {
|
|
98
|
+
const topicObj = await this.getBBSReply(target_object_id)
|
|
99
|
+
// 点赞了一篇帖子,发送消息 给作者
|
|
100
|
+
if ( msg_type === MsgType.bbs_reply_be_like) {
|
|
101
|
+
const title = "您的评论收到了点赞"
|
|
102
|
+
const content = `《${topicObj.title}》`
|
|
103
|
+
await this.medMessageService.insertMessage(title,content,topicObj.created_by, msgObj);
|
|
104
|
+
return CommonResult.successRes("OK");
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// 回复了一篇帖子,发送消息 给作者
|
|
108
|
+
if ( msg_type === MsgType.bbs_reply_be_reply) {
|
|
109
|
+
const title = "您的评论收到了回复"
|
|
110
|
+
const content = `《${topicObj.title}》`
|
|
111
|
+
await this.medMessageService.insertMessage(title,content,topicObj.created_by, msgObj);
|
|
112
|
+
return CommonResult.successRes("OK");
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// 回复帖子被判定为违规
|
|
116
|
+
if ( msg_type === MsgType.bbs_reply_be_violation) {
|
|
117
|
+
const title = "您的评论被判定为违规"
|
|
118
|
+
const content = `《${topicObj.title}》`
|
|
119
|
+
await this.medMessageService.insertMessage(title,content,topicObj.created_by, msgObj);
|
|
120
|
+
return CommonResult.successRes("OK");
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
// 联系我们 收到了回复
|
|
127
|
+
if (msg_type === MsgType.contact_us_be_reply) {
|
|
128
|
+
const contactObj = await this.get_fa_contact(target_object_id);
|
|
129
|
+
this.logInfo("contact_us_be_reply==> " + JSON.stringify(contactObj));
|
|
130
|
+
if (contactObj && contactObj.created_by) {
|
|
131
|
+
const title = "您的主动联系收到了回复"
|
|
132
|
+
const content = contactObj.mark || "";
|
|
133
|
+
await this.medMessageService.insertMessage(title,content,contactObj.created_by, msgObj);
|
|
134
|
+
return CommonResult.successRes("OK");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
return CommonResult.successRes("NULL");
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
private async get_fa_contact(fa_contact_id: number){
|
|
144
|
+
const topicRes = await this.curdMixService.executeCrudByCfg({
|
|
145
|
+
condition: {
|
|
146
|
+
id: fa_contact_id,
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
151
|
+
sqlTable: "fa_contact",
|
|
152
|
+
sqlDatabase: MED_STATISTIC_DB,
|
|
153
|
+
});
|
|
154
|
+
return topicRes.getOneObj();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
private async getBBSTopic(topicId: number){
|
|
158
|
+
const topicRes = await this.curdMixService.executeCrudByCfg({
|
|
159
|
+
condition: {
|
|
160
|
+
id: topicId,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
165
|
+
sqlTable: "fatbiz_bbs_topic",
|
|
166
|
+
sqlDatabase: MED_STATISTIC_DB,
|
|
167
|
+
});
|
|
168
|
+
return topicRes.getOneObj();
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
private async getBBSReply(replyId: number){
|
|
173
|
+
const topicRes = await this.curdMixService.executeCrudByCfg({
|
|
174
|
+
condition: {
|
|
175
|
+
id: replyId,
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
180
|
+
sqlTable: "fatbiz_bbs_replies",
|
|
181
|
+
sqlDatabase: MED_STATISTIC_DB,
|
|
182
|
+
});
|
|
183
|
+
return topicRes.getOneObj();
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import {Inject,Provide} from '@midwayjs/core';
|
|
2
|
+
import {Context} from '@midwayjs/koa';
|
|
3
|
+
import {AuthService} from '../../service/AuthService';
|
|
4
|
+
import {WorkbenchService} from "../../service/WorkbenchService";
|
|
5
|
+
import {SysConfigService} from "../../service/SysConfigService";
|
|
6
|
+
import {KeysOfSimpleSQL} from "../../libs/crud-pro/models/keys";
|
|
7
|
+
import {BaseService} from "../../service/base/BaseService";
|
|
8
|
+
import {CurdProService} from "../../service/curd/CurdProService";
|
|
9
|
+
import * as md5 from 'md5';
|
|
10
|
+
import {CommonException} from "../../libs/crud-pro/exceptions";
|
|
11
|
+
import {ISendUserReceivedMsg, isMsgType, MED_STATISTIC_DB, MsgStatus} from "./constants";
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* medstatistic 管理端
|
|
16
|
+
*/
|
|
17
|
+
@Provide()
|
|
18
|
+
export class MedMessageService extends BaseService {
|
|
19
|
+
@Inject()
|
|
20
|
+
protected ctx: Context;
|
|
21
|
+
|
|
22
|
+
@Inject()
|
|
23
|
+
protected authService: AuthService;
|
|
24
|
+
|
|
25
|
+
@Inject()
|
|
26
|
+
protected workbenchService: WorkbenchService;
|
|
27
|
+
|
|
28
|
+
@Inject()
|
|
29
|
+
protected sysConfigService: SysConfigService;
|
|
30
|
+
|
|
31
|
+
@Inject()
|
|
32
|
+
protected curdProService: CurdProService;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
async insertMessage(title:string, content: string, received_by: string | number, msgObj: ISendUserReceivedMsg): Promise<any> {
|
|
36
|
+
try {
|
|
37
|
+
return this.insertMessageInner(title,content,received_by,msgObj);
|
|
38
|
+
} catch (e) {
|
|
39
|
+
this.logWarn("[MedMessageService]insertMessageInner失败",e)
|
|
40
|
+
return Promise.resolve(e);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private async insertMessageInner(title:string, content: string, received_by: string | number, msgObj: ISendUserReceivedMsg): Promise<any> {
|
|
45
|
+
|
|
46
|
+
if (!isMsgType(msgObj.msg_type)) {
|
|
47
|
+
throw new CommonException("PARAM_IS_NOT_VALID","msg_type 不正确");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const msg_type = msgObj.msg_type;
|
|
51
|
+
|
|
52
|
+
const userInfo = this.ctx.userSession.getSessionInfo();
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
const msg_key = md5(`${userInfo.accountId}_${userInfo.accountType}_${received_by}_${msg_type}_${msgObj.target_object_type}_${msgObj.target_object_id}`);
|
|
56
|
+
|
|
57
|
+
// 插入日志
|
|
58
|
+
const insertMessageRes = await this.curdProService.executeCrudByCfg({
|
|
59
|
+
data: {
|
|
60
|
+
title: title,
|
|
61
|
+
content: content,
|
|
62
|
+
content_length: content.length,
|
|
63
|
+
msg_status: MsgStatus.unread,
|
|
64
|
+
msg_type: msg_type,
|
|
65
|
+
msg_key: msg_key,
|
|
66
|
+
status: 1,
|
|
67
|
+
target_object_type: msgObj.target_object_type,
|
|
68
|
+
target_object_id: msgObj.target_object_id,
|
|
69
|
+
received_by: received_by,
|
|
70
|
+
received_account_type: 'medstatistic', // 接收用户只能是
|
|
71
|
+
created_by: userInfo.accountId,
|
|
72
|
+
created_account_type: userInfo.accountType,
|
|
73
|
+
created_nickname: userInfo.nickName,
|
|
74
|
+
created_avatar: userInfo.avatar,
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
79
|
+
sqlTable: "fatbiz_bbs_message",
|
|
80
|
+
sqlDatabase: MED_STATISTIC_DB,
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
insertMessageRes,
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import {Inject,Provide} from '@midwayjs/core';
|
|
2
|
+
import {Context} from '@midwayjs/koa';
|
|
3
|
+
import {AuthService} from '../../service/AuthService';
|
|
4
|
+
import {WorkbenchService} from "../../service/WorkbenchService";
|
|
5
|
+
import {SysConfigService} from "../../service/SysConfigService";
|
|
6
|
+
import {CommonException} from "../../libs/crud-pro/exceptions";
|
|
7
|
+
import {KeysOfSimpleSQL} from "../../libs/crud-pro/models/keys";
|
|
8
|
+
import {BaseService} from "../../service/base/BaseService";
|
|
9
|
+
import {CurdProService} from "../../service/curd/CurdProService";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
const MED_STATISTIC_DB = "medstatistic";
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// 类型:1=增加,0=减少
|
|
17
|
+
export enum UpdateScorePM {
|
|
18
|
+
decrease = 0, // 减少
|
|
19
|
+
increase = 1 // 增加
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* medstatistic 管理端
|
|
25
|
+
*/
|
|
26
|
+
@Provide()
|
|
27
|
+
export class MedScoreService extends BaseService {
|
|
28
|
+
@Inject()
|
|
29
|
+
protected ctx: Context;
|
|
30
|
+
|
|
31
|
+
@Inject()
|
|
32
|
+
protected authService: AuthService;
|
|
33
|
+
|
|
34
|
+
@Inject()
|
|
35
|
+
protected workbenchService: WorkbenchService;
|
|
36
|
+
|
|
37
|
+
@Inject()
|
|
38
|
+
protected sysConfigService: SysConfigService;
|
|
39
|
+
|
|
40
|
+
@Inject()
|
|
41
|
+
protected curdProService: CurdProService;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
async updateScore(user_id:number, pm: UpdateScorePM, score: number, memo: string): Promise<any> {
|
|
46
|
+
|
|
47
|
+
// 查询用户信息
|
|
48
|
+
const userRes = await this.curdProService.executeCrudByCfg({
|
|
49
|
+
condition: {
|
|
50
|
+
id: user_id,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
55
|
+
sqlTable: "fa_user",
|
|
56
|
+
sqlDatabase: MED_STATISTIC_DB,
|
|
57
|
+
});
|
|
58
|
+
const userOne = userRes.getOneObj();
|
|
59
|
+
|
|
60
|
+
if (!userOne) {
|
|
61
|
+
throw new CommonException('USER_NOT_EXIST',"用户信息没有查询到")
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const beforeScore = Math.max(0, parseInt(userOne.score) || 0);
|
|
65
|
+
|
|
66
|
+
const afterScore = pm === UpdateScorePM.decrease ? (beforeScore - score): (beforeScore + score);
|
|
67
|
+
|
|
68
|
+
// 插入日志
|
|
69
|
+
const insertLogRes = await this.curdProService.executeCrudByCfg({
|
|
70
|
+
data: {
|
|
71
|
+
user_id: user_id,
|
|
72
|
+
pm: pm,
|
|
73
|
+
score: score,
|
|
74
|
+
before: beforeScore,
|
|
75
|
+
after: afterScore,
|
|
76
|
+
memo: memo,
|
|
77
|
+
createtime: Math.floor(Date.now() / 1000),
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
82
|
+
sqlTable: "fa_user_score_log",
|
|
83
|
+
sqlDatabase: MED_STATISTIC_DB,
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// 更新User余额
|
|
87
|
+
const updateUserRes = await this.curdProService.executeCrudByCfg({
|
|
88
|
+
condition: {
|
|
89
|
+
id: user_id,
|
|
90
|
+
},
|
|
91
|
+
data: {
|
|
92
|
+
score: afterScore,
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
sqlSimpleName: KeysOfSimpleSQL.SIMPLE_UPDATE,
|
|
97
|
+
sqlTable: "fa_user",
|
|
98
|
+
sqlDatabase: MED_STATISTIC_DB,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
insertLogRes,
|
|
104
|
+
updateUserRes
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
const DEFAULT_SECTION_ID = 10002;
|
|
2
|
+
|
|
3
|
+
const TARGET_OBJECT_TYPE_BBS_TOPIC = 1; // bbs_topic (1)
|
|
4
|
+
const TARGET_OBJECT_TYPE_BBS_REPLY = 2; // bbs_reply (2)
|
|
5
|
+
const TARGET_OBJECT_TYPE_BBS_GUIDE = 3; // bbs_reply (3) // 教程
|
|
6
|
+
const TARGET_OBJECT_TYPE_CONTACT_US = 4; // // 联系我们
|
|
7
|
+
const TARGET_OBJECT_TYPE_USER_AUTHENTICATION = 5; // // 用户身份认证
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
DEFAULT_SECTION_ID,
|
|
13
|
+
TARGET_OBJECT_TYPE_BBS_TOPIC,
|
|
14
|
+
TARGET_OBJECT_TYPE_BBS_REPLY,
|
|
15
|
+
TARGET_OBJECT_TYPE_BBS_GUIDE,
|
|
16
|
+
TARGET_OBJECT_TYPE_CONTACT_US,
|
|
17
|
+
TARGET_OBJECT_TYPE_USER_AUTHENTICATION
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
export const MED_STATISTIC_DB = "medstatistic";
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
// 状态;0 未读, 1 已读
|
|
26
|
+
export enum MsgStatus {
|
|
27
|
+
unread = 0, // 减少
|
|
28
|
+
read = 1 // 增加
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// 状态;0 未读, 1 已读
|
|
32
|
+
export enum MsgType {
|
|
33
|
+
unknown = 0, //
|
|
34
|
+
user_auth_pass = 1, // 用户认证审批通过
|
|
35
|
+
bbs_post_be_like = 2, // 帖子被点赞。(forum前端埋点发消息)
|
|
36
|
+
bbs_post_be_reply = 3, // 帖子被回复。(forum前端埋点发消息)
|
|
37
|
+
bbs_post_be_violation = 4, // 帖子被发现违规(ext前端埋点发消息)
|
|
38
|
+
bbs_reply_be_like = 5, // 帖子被点赞。(forum前端埋点发消息)
|
|
39
|
+
bbs_reply_be_reply = 6, // 帖子被回复。(forum前端埋点发消息)
|
|
40
|
+
bbs_reply_be_violation = 7, // 帖子被发现违规(ext前端埋点发消息)
|
|
41
|
+
contact_us_be_reply = 8, // “联系我们”被回复 (ext前端埋点发消息)
|
|
42
|
+
bbs_post_be_favorite = 9, // 帖子被收藏
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function isMsgType(value: number): boolean {
|
|
46
|
+
if (typeof value === "undefined") {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return Object.values(MsgType).includes(value as MsgType);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
export interface IMedTargetObj {
|
|
54
|
+
target_object_id: number,
|
|
55
|
+
target_object_type: number
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
export interface ISendUserReceivedMsg extends IMedTargetObj {
|
|
62
|
+
msg_type: MsgType
|
|
63
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { Controller, Inject, Post } from '@midwayjs/core';
|
|
2
|
+
import { Context } from '@midwayjs/koa';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import { BaseApiController } from '../base/BaseApiController';
|
|
5
|
+
import { AuthService } from '../../service/AuthService';
|
|
6
|
+
import {IConsumerUserInfo, ISessionInfo, SESSION_ID_KEY, sessionCookieCfg} from '../../models/userSession';
|
|
7
|
+
import { CommonResult } from '../../libs/utils/common-dto';
|
|
8
|
+
import { checkLogin } from '../../middleware/permission.middleware';
|
|
9
|
+
import { assertCsrfToken } from "../../libs/utils/fatcms-request";
|
|
10
|
+
import {WorkbenchService} from "../../service/WorkbenchService";
|
|
11
|
+
import {CommonException} from "../../libs/crud-pro/exceptions";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 支持使用明文密码和Hash后密码登录。
|
|
15
|
+
* 1. 明文密码登录,所需字段:loginName, plainPwd,
|
|
16
|
+
* 2. Hash后密码登录,所需字段:loginName, unsaltedPwd
|
|
17
|
+
*/
|
|
18
|
+
@Controller('/ns/api/auth')
|
|
19
|
+
export class AuthController extends BaseApiController {
|
|
20
|
+
@Inject()
|
|
21
|
+
protected ctx: Context;
|
|
22
|
+
|
|
23
|
+
@Inject()
|
|
24
|
+
private authService: AuthService;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@Inject()
|
|
28
|
+
private workbenchService: WorkbenchService;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 登录
|
|
32
|
+
*/
|
|
33
|
+
@Post('/login')
|
|
34
|
+
async login(): Promise<CommonResult> {
|
|
35
|
+
await assertCsrfToken(this.ctx);
|
|
36
|
+
|
|
37
|
+
// 先删除之前的SessionId
|
|
38
|
+
const sessionId = this.ctx.cookies.get(SESSION_ID_KEY, sessionCookieCfg);
|
|
39
|
+
await this.authService.removeUserSession(sessionId);
|
|
40
|
+
|
|
41
|
+
// eslint-disable-next-line prefer-const
|
|
42
|
+
let { loginName, unsaltedPwd, plainPwd } = this.ctx.request.body as any;
|
|
43
|
+
if (!unsaltedPwd && plainPwd) {
|
|
44
|
+
unsaltedPwd = this.authService.toUnsaltedPwd(plainPwd, loginName); // 使用明文密码登录时,转换成unsaltedPwd
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const checkRes = await this.authService.checkLoginPassword(loginName, unsaltedPwd);
|
|
48
|
+
if (!checkRes.success) {
|
|
49
|
+
return checkRes;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const workbench = await this.workbenchService.getCurrentHostWorkbenchInfo();
|
|
53
|
+
if (!workbench) {
|
|
54
|
+
throw new CommonException('WORKBENCH_IS_NOT_FOUND', '站点未找到');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
const userSessionInfo = await this.authService.createUserSession(loginName, workbench.workbench_code);
|
|
59
|
+
|
|
60
|
+
this.ctx.cookies.set(SESSION_ID_KEY, userSessionInfo.sessionId, sessionCookieCfg);
|
|
61
|
+
|
|
62
|
+
return CommonResult.successMsg('登录成功', userSessionInfo);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* 使用https://medstatistic.com/账号登录
|
|
68
|
+
*/
|
|
69
|
+
@Post('/loginByMedStatistic')
|
|
70
|
+
async loginByMedStatistic(): Promise<CommonResult> {
|
|
71
|
+
|
|
72
|
+
const { medStatisticToken } = this.ctx.request.body as any;
|
|
73
|
+
if (!medStatisticToken) {
|
|
74
|
+
return CommonResult.errorRes("medStatisticToken is null")
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const workbench = await this.workbenchService.getCurrentHostWorkbenchInfo();
|
|
78
|
+
if (!workbench) {
|
|
79
|
+
throw new CommonException('WORKBENCH_IS_NOT_FOUND', '站点未找到');
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// 先删除之前的cookie
|
|
83
|
+
const sessionId = this.ctx.cookies.get(SESSION_ID_KEY, sessionCookieCfg);
|
|
84
|
+
await this.authService.removeUserSession(sessionId);
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
let userInfoRes: any = null;
|
|
88
|
+
try {
|
|
89
|
+
userInfoRes = await axios.get("https://console.medstatistic.com/api/user/index?lang=zh-cn", {
|
|
90
|
+
headers: {
|
|
91
|
+
host: "console.medstatistic.com",
|
|
92
|
+
origin: "https://console.medstatistic.com",
|
|
93
|
+
token: medStatisticToken
|
|
94
|
+
},
|
|
95
|
+
responseType: 'json'
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
} catch (e) {
|
|
99
|
+
return CommonResult.errorRes(e?.message || '');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const userInfo = userInfoRes?.data?.data;
|
|
103
|
+
|
|
104
|
+
if (!userInfo || !userInfo.id) {
|
|
105
|
+
return CommonResult.errorRes("USER_NOT_EXIST")
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const consumerUserInfo: IConsumerUserInfo = {
|
|
109
|
+
workbenchCode: workbench.workbench_code,
|
|
110
|
+
accountType: 'medstatistic',
|
|
111
|
+
accountId: userInfo.id,
|
|
112
|
+
nickName: userInfo.nickname,
|
|
113
|
+
loginName: `${userInfo.id}_${userInfo.username}`,
|
|
114
|
+
avatar: userInfo.avatar,
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const userSessionInfo = await this.authService.createUserSessionForConsumer(consumerUserInfo);
|
|
118
|
+
|
|
119
|
+
this.ctx.cookies.set(SESSION_ID_KEY, userSessionInfo.sessionId, sessionCookieCfg);
|
|
120
|
+
|
|
121
|
+
return CommonResult.successMsg('登录成功', userSessionInfo);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* 退出
|
|
128
|
+
*/
|
|
129
|
+
@Post('/logout')
|
|
130
|
+
async logout(): Promise<CommonResult> {
|
|
131
|
+
const sessionId = this.ctx.cookies.get(SESSION_ID_KEY, sessionCookieCfg);
|
|
132
|
+
await this.authService.removeUserSession(sessionId);
|
|
133
|
+
this.ctx.cookies.set(SESSION_ID_KEY, '', sessionCookieCfg);
|
|
134
|
+
return CommonResult.successMsg('退出成功');
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* 避免Session过期,前端需要定时调用此接口刷新
|
|
140
|
+
*/
|
|
141
|
+
@Post('/refreshSession', { middleware: [checkLogin()] })
|
|
142
|
+
async refreshSession(): Promise<CommonResult> {
|
|
143
|
+
const sessionInfo:ISessionInfo = this.ctx.userSession.getSessionInfo();
|
|
144
|
+
const newSessionInfo: ISessionInfo = await this.authService.refreshSession(sessionInfo);
|
|
145
|
+
this.ctx.cookies.set(SESSION_ID_KEY, newSessionInfo.sessionId, sessionCookieCfg);
|
|
146
|
+
return CommonResult.successRes(newSessionInfo);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* 修改我自己的密码
|
|
152
|
+
*/
|
|
153
|
+
@Post('/changeMyPassword', { middleware: [checkLogin()] })
|
|
154
|
+
async changeMyPassword(): Promise<CommonResult> {
|
|
155
|
+
const { unsaltedPwd } = this.ctx.request.body as any;
|
|
156
|
+
const loginName = this.ctx.userSession.getSessionInfo().loginName;
|
|
157
|
+
|
|
158
|
+
if (loginName === 'devopsviewer') {
|
|
159
|
+
return CommonResult.errorRes("开放体验账号不支持修改密码")
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return this.userAccountService.chgUserPassword(loginName, unsaltedPwd);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* 校验权限接口,给前端用的。用于界面按钮级权限控制
|
|
167
|
+
*/
|
|
168
|
+
@Post('/batchCheckPermission', { middleware: [checkLogin()] })
|
|
169
|
+
async batchCheckPermission(): Promise<CommonResult> {
|
|
170
|
+
const { permissionCodeList, roleCodeList } = (this.ctx.request.body || {}) as any;
|
|
171
|
+
const res = this.ctx.userSession.batchCheckPermission({ permissionCodeList, roleCodeList });
|
|
172
|
+
return CommonResult.successRes(res);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as _ from 'lodash';
|
|
2
|
+
import { Controller, Inject, Post } from '@midwayjs/core';
|
|
3
|
+
import { Context } from '@midwayjs/koa';
|
|
4
|
+
import { BaseApiController } from '../base/BaseApiController';
|
|
5
|
+
import { CommonResult } from '../../libs/utils/common-dto';
|
|
6
|
+
import { SystemTables } from '../../models/SystemTables';
|
|
7
|
+
import { KeysOfSimpleSQL } from '../../libs/crud-pro/models/keys';
|
|
8
|
+
import { checkLogin } from '../../middleware/permission.middleware';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 用户个人数据查询
|
|
12
|
+
*/
|
|
13
|
+
@Controller('/ns/api/myinfo', { middleware: [checkLogin()] })
|
|
14
|
+
export class MyInfoController extends BaseApiController {
|
|
15
|
+
@Inject()
|
|
16
|
+
protected ctx: Context;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* 我的角色列表:getMyRoleList
|
|
20
|
+
*/
|
|
21
|
+
@Post('/getMyRoleList')
|
|
22
|
+
async getMyRoleList() {
|
|
23
|
+
// eslint-disable-next-line prefer-const
|
|
24
|
+
const body = this.ctx.request.body as any;
|
|
25
|
+
const roleCodes = this.ctx.userSession.getSessionInfo().roleCodes;
|
|
26
|
+
if (!roleCodes || !roleCodes.length) {
|
|
27
|
+
return CommonResult.successRes([]);
|
|
28
|
+
}
|
|
29
|
+
_.set(body, 'condition.role_code', { $in: roleCodes });
|
|
30
|
+
return this.executeSysSimpleSQL(SystemTables.sys_perm_role, KeysOfSimpleSQL.SIMPLE_QUERY_PAGE);
|
|
31
|
+
}
|
|
32
|
+
}
|