@nest-omni/core 4.1.3-3 → 4.1.3-30
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/audit/audit.module.d.ts +1 -0
- package/audit/audit.module.js +51 -2
- package/audit/controllers/audit.controller.d.ts +57 -1
- package/audit/controllers/audit.controller.js +43 -0
- package/audit/decorators/audit-action.decorator.d.ts +74 -0
- package/audit/decorators/audit-action.decorator.js +42 -0
- package/audit/decorators/audit-controller.decorator.d.ts +1 -1
- package/audit/decorators/audit-controller.decorator.js +2 -2
- package/audit/decorators/audit-operation.decorator.d.ts +0 -7
- package/audit/decorators/audit-operation.decorator.js +0 -7
- package/audit/decorators/entity-audit.decorator.d.ts +78 -2
- package/audit/decorators/entity-audit.decorator.js +145 -4
- package/audit/decorators/index.d.ts +2 -0
- package/audit/decorators/index.js +2 -0
- package/audit/dto/audit-action-query.dto.d.ts +13 -0
- package/audit/dto/audit-action-query.dto.js +77 -0
- package/audit/dto/index.d.ts +1 -0
- package/audit/dto/index.js +1 -0
- package/audit/entities/audit-action-summary.entity.d.ts +23 -0
- package/audit/entities/audit-action-summary.entity.js +101 -0
- package/audit/entities/entity-audit-log.entity.d.ts +7 -2
- package/audit/entities/entity-audit-log.entity.js +45 -9
- package/audit/entities/entity-transaction.entity.d.ts +8 -2
- package/audit/entities/entity-transaction.entity.js +39 -3
- package/audit/entities/index.d.ts +3 -0
- package/audit/entities/index.js +3 -0
- package/audit/entities/manual-operation-log.entity.d.ts +0 -2
- package/audit/entities/manual-operation-log.entity.js +8 -9
- package/audit/enums/audit.enums.d.ts +14 -6
- package/audit/enums/audit.enums.js +18 -9
- package/audit/examples/decorator-value-mapping.example.d.ts +70 -0
- package/audit/examples/decorator-value-mapping.example.js +414 -0
- package/audit/index.d.ts +5 -1
- package/audit/index.js +29 -2
- package/audit/interceptors/audit-action.interceptor.d.ts +39 -0
- package/audit/interceptors/audit-action.interceptor.js +217 -0
- package/audit/interceptors/audit.interceptor.d.ts +1 -0
- package/audit/interceptors/audit.interceptor.js +19 -11
- package/audit/interceptors/index.d.ts +1 -0
- package/audit/interceptors/index.js +1 -0
- package/audit/interfaces/audit.interfaces.d.ts +132 -4
- package/audit/services/audit-action.service.d.ts +142 -0
- package/audit/services/audit-action.service.js +246 -0
- package/audit/services/audit-context.service.d.ts +91 -0
- package/audit/services/audit-context.service.js +170 -0
- package/audit/services/entity-audit.service.d.ts +220 -9
- package/audit/services/entity-audit.service.js +761 -72
- package/audit/services/index.d.ts +3 -0
- package/audit/services/index.js +3 -0
- package/audit/services/manual-audit-log.service.d.ts +23 -23
- package/audit/services/manual-audit-log.service.js +34 -57
- package/audit/services/multi-database.service.d.ts +0 -5
- package/audit/services/multi-database.service.js +0 -24
- package/audit/services/operation-description.service.d.ts +14 -3
- package/audit/services/operation-description.service.js +165 -26
- package/audit/services/transaction-audit.service.d.ts +1 -0
- package/audit/services/transaction-audit.service.js +12 -9
- package/audit/subscribers/entity-audit.subscriber.d.ts +5 -0
- package/audit/subscribers/entity-audit.subscriber.js +69 -5
- package/cache/cache.module.d.ts +7 -8
- package/cache/cache.module.js +15 -13
- package/cache/cache.service.d.ts +6 -4
- package/cache/cache.service.js +24 -12
- package/cache/decorators/cache-put.decorator.js +5 -4
- package/cache/dependencies/callback.dependency.js +9 -0
- package/cache/dependencies/db.dependency.d.ts +43 -12
- package/cache/dependencies/db.dependency.js +46 -18
- package/cache/dependencies/tag.dependency.d.ts +31 -4
- package/cache/dependencies/tag.dependency.js +100 -11
- package/cache/entities/index.d.ts +1 -0
- package/cache/entities/index.js +17 -0
- package/cache/entities/typeorm-cache.entity.d.ts +71 -0
- package/cache/entities/typeorm-cache.entity.js +110 -0
- package/cache/index.d.ts +2 -1
- package/cache/index.js +19 -2
- package/cache/interfaces/cache-options.interface.d.ts +8 -0
- package/cache/providers/index.d.ts +2 -1
- package/cache/providers/index.js +2 -1
- package/cache/providers/lrucache.provider.d.ts +77 -0
- package/cache/providers/lrucache.provider.js +228 -0
- package/cache/providers/redis-cache.provider.d.ts +1 -0
- package/cache/providers/redis-cache.provider.js +8 -6
- package/cache/providers/typeorm-cache.provider.d.ts +211 -0
- package/cache/providers/typeorm-cache.provider.js +483 -0
- package/common/boilerplate.polyfill.d.ts +1 -0
- package/common/boilerplate.polyfill.js +18 -1
- package/common/helpers/validation-metadata-helper.d.ts +112 -0
- package/common/helpers/validation-metadata-helper.js +164 -0
- package/common/index.d.ts +1 -0
- package/common/index.js +4 -0
- package/decorators/examples/field-i18n.example.d.ts +294 -0
- package/decorators/examples/field-i18n.example.js +478 -0
- package/decorators/field.decorators.d.ts +95 -3
- package/decorators/field.decorators.js +152 -18
- package/decorators/transform.decorators.d.ts +0 -2
- package/decorators/transform.decorators.js +0 -23
- package/decorators/translate.decorator.d.ts +26 -0
- package/decorators/translate.decorator.js +26 -1
- package/email-log/email-log.constants.d.ts +8 -0
- package/email-log/email-log.constants.js +11 -0
- package/email-log/email-log.module.d.ts +47 -0
- package/email-log/email-log.module.js +140 -0
- package/email-log/index.d.ts +11 -0
- package/email-log/index.js +48 -0
- package/email-log/interfaces/email-log-options.interface.d.ts +61 -0
- package/email-log/interfaces/email-log-options.interface.js +134 -0
- package/email-log/interfaces/email-log-transport.interface.d.ts +20 -0
- package/email-log/interfaces/email-log-transport.interface.js +2 -0
- package/email-log/interfaces/index.d.ts +2 -0
- package/email-log/interfaces/index.js +18 -0
- package/email-log/providers/email-provider.d.ts +42 -0
- package/email-log/providers/email-provider.js +127 -0
- package/email-log/providers/index.d.ts +1 -0
- package/email-log/providers/index.js +17 -0
- package/email-log/services/email-log-alert.service.d.ts +46 -0
- package/email-log/services/email-log-alert.service.js +162 -0
- package/email-log/services/email-log-formatter.service.d.ts +78 -0
- package/email-log/services/email-log-formatter.service.js +442 -0
- package/email-log/services/email-log-logger.service.d.ts +85 -0
- package/email-log/services/email-log-logger.service.js +168 -0
- package/email-log/services/email-log-rate-limiter.service.d.ts +42 -0
- package/email-log/services/email-log-rate-limiter.service.js +110 -0
- package/email-log/services/email-log-transport.service.d.ts +80 -0
- package/email-log/services/email-log-transport.service.js +271 -0
- package/email-log/services/index.d.ts +5 -0
- package/email-log/services/index.js +21 -0
- package/email-log/transports/index.d.ts +1 -0
- package/email-log/transports/index.js +17 -0
- package/email-log/transports/pino-email.transport.d.ts +56 -0
- package/email-log/transports/pino-email.transport.js +188 -0
- package/email-log/utils/index.d.ts +2 -0
- package/email-log/utils/index.js +18 -0
- package/email-log/utils/log-level.helper.d.ts +46 -0
- package/email-log/utils/log-level.helper.js +74 -0
- package/email-log/utils/pino-transport.utils.d.ts +135 -0
- package/email-log/utils/pino-transport.utils.js +238 -0
- package/file-upload/controllers/file-access.controller.d.ts +23 -0
- package/file-upload/controllers/file-access.controller.js +128 -0
- package/file-upload/decorators/column.decorator.d.ts +151 -0
- package/file-upload/decorators/column.decorator.js +273 -0
- package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
- package/file-upload/decorators/csv-data.decorator.js +85 -0
- package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
- package/file-upload/decorators/csv-import.decorator.js +24 -0
- package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
- package/file-upload/decorators/examples/column-mapping.example.js +122 -0
- package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
- package/file-upload/decorators/excel-data.decorator.js +85 -0
- package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
- package/file-upload/decorators/file-upload.decorator.js +172 -0
- package/file-upload/decorators/index.d.ts +5 -0
- package/file-upload/decorators/index.js +38 -0
- package/file-upload/decorators/process.decorator.d.ts +40 -0
- package/file-upload/decorators/process.decorator.js +52 -0
- package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
- package/file-upload/decorators/validate-data.decorator.js +39 -0
- package/file-upload/dto/create-file.dto.d.ts +24 -0
- package/file-upload/dto/create-file.dto.js +112 -0
- package/file-upload/dto/find-files.dto.d.ts +15 -0
- package/file-upload/dto/find-files.dto.js +76 -0
- package/file-upload/dto/index.d.ts +4 -0
- package/file-upload/dto/index.js +20 -0
- package/file-upload/dto/pagination.dto.d.ts +7 -0
- package/file-upload/dto/pagination.dto.js +39 -0
- package/file-upload/dto/update-file.dto.d.ts +15 -0
- package/file-upload/dto/update-file.dto.js +67 -0
- package/file-upload/entities/file-metadata.entity.d.ts +25 -0
- package/file-upload/entities/file-metadata.entity.js +76 -0
- package/file-upload/entities/file.entity.d.ts +114 -0
- package/file-upload/entities/file.entity.js +350 -0
- package/file-upload/entities/index.d.ts +2 -0
- package/file-upload/entities/index.js +18 -0
- package/file-upload/enums/file-type.enum.d.ts +72 -0
- package/file-upload/enums/file-type.enum.js +212 -0
- package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
- package/file-upload/exceptions/file-upload.exception.js +120 -0
- package/file-upload/exceptions/index.d.ts +1 -0
- package/file-upload/exceptions/index.js +17 -0
- package/file-upload/file-upload.module.d.ts +89 -0
- package/file-upload/file-upload.module.js +292 -0
- package/file-upload/index.d.ts +37 -0
- package/file-upload/index.js +77 -0
- package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
- package/file-upload/interceptors/file-upload.interceptor.js +594 -0
- package/file-upload/interceptors/index.d.ts +1 -0
- package/file-upload/interceptors/index.js +17 -0
- package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
- package/file-upload/interfaces/custom-file-type.interface.js +2 -0
- package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
- package/file-upload/interfaces/file-buffer.interface.js +2 -0
- package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
- package/file-upload/interfaces/file-entity.interface.js +28 -0
- package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
- package/file-upload/interfaces/file-metadata.interface.js +2 -0
- package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
- package/file-upload/interfaces/file-processor.interface.js +2 -0
- package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
- package/file-upload/interfaces/file-upload-options.interface.js +5 -0
- package/file-upload/interfaces/index.d.ts +7 -0
- package/file-upload/interfaces/index.js +24 -0
- package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
- package/file-upload/interfaces/processor-options.interface.js +2 -0
- package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
- package/file-upload/interfaces/storage-provider.interface.js +2 -0
- package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
- package/file-upload/interfaces/upload-options.interface.js +2 -0
- package/file-upload/processors/csv.processor.d.ts +98 -0
- package/file-upload/processors/csv.processor.js +391 -0
- package/file-upload/processors/excel.processor.d.ts +130 -0
- package/file-upload/processors/excel.processor.js +547 -0
- package/file-upload/processors/image.processor.d.ts +199 -0
- package/file-upload/processors/image.processor.js +377 -0
- package/file-upload/providers/index.d.ts +2 -0
- package/file-upload/providers/index.js +18 -0
- package/file-upload/providers/local-storage.provider.d.ts +98 -0
- package/file-upload/providers/local-storage.provider.js +484 -0
- package/file-upload/providers/s3-storage.provider.d.ts +87 -0
- package/file-upload/providers/s3-storage.provider.js +455 -0
- package/file-upload/services/file-signature-validator.service.d.ts +118 -0
- package/file-upload/services/file-signature-validator.service.js +376 -0
- package/file-upload/services/file.service.d.ts +193 -0
- package/file-upload/services/file.service.js +638 -0
- package/file-upload/services/index.d.ts +4 -0
- package/file-upload/services/index.js +20 -0
- package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
- package/file-upload/services/malicious-file-detector.service.js +1234 -0
- package/file-upload/services/mime-registry.service.d.ts +47 -0
- package/file-upload/services/mime-registry.service.js +167 -0
- package/file-upload/utils/checksum.util.d.ts +28 -0
- package/file-upload/utils/checksum.util.js +65 -0
- package/file-upload/utils/dynamic-import.util.d.ts +54 -0
- package/file-upload/utils/dynamic-import.util.js +156 -0
- package/file-upload/utils/filename.util.d.ts +59 -0
- package/file-upload/utils/filename.util.js +184 -0
- package/file-upload/utils/filepath.util.d.ts +70 -0
- package/file-upload/utils/filepath.util.js +152 -0
- package/file-upload/utils/index.d.ts +4 -0
- package/file-upload/utils/index.js +20 -0
- package/filters/bad-request.filter.d.ts +9 -0
- package/filters/bad-request.filter.js +57 -16
- package/http-client/config/http-client.config.d.ts +5 -0
- package/http-client/config/http-client.config.js +27 -14
- package/http-client/decorators/http-client.decorators.d.ts +7 -28
- package/http-client/decorators/http-client.decorators.js +124 -99
- package/http-client/entities/http-log.entity.d.ts +0 -20
- package/http-client/entities/http-log.entity.js +1 -21
- package/http-client/examples/advanced-usage.example.d.ts +4 -5
- package/http-client/examples/advanced-usage.example.js +7 -59
- package/http-client/examples/axios-config-extended.example.d.ts +17 -0
- package/http-client/examples/axios-config-extended.example.js +311 -0
- package/http-client/examples/flexible-response-example.d.ts +28 -0
- package/http-client/examples/flexible-response-example.js +120 -0
- package/http-client/examples/index.d.ts +2 -0
- package/http-client/examples/index.js +2 -0
- package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
- package/http-client/examples/proxy-from-environment.example.js +409 -0
- package/http-client/examples/ssl-certificate.example.d.ts +47 -0
- package/http-client/examples/ssl-certificate.example.js +432 -0
- package/http-client/http-client.module.d.ts +43 -2
- package/http-client/http-client.module.js +150 -90
- package/http-client/index.d.ts +1 -1
- package/http-client/interfaces/api-client-config.interface.d.ts +24 -103
- package/http-client/interfaces/http-client-config.interface.d.ts +137 -62
- package/http-client/services/api-client-registry.service.d.ts +8 -21
- package/http-client/services/api-client-registry.service.js +31 -282
- package/http-client/services/circuit-breaker.service.d.ts +69 -2
- package/http-client/services/circuit-breaker.service.js +185 -7
- package/http-client/services/http-client.service.d.ts +85 -23
- package/http-client/services/http-client.service.js +512 -168
- package/http-client/services/http-log-query.service.js +0 -13
- package/http-client/services/index.d.ts +0 -1
- package/http-client/services/index.js +0 -1
- package/http-client/services/logging.service.d.ts +69 -16
- package/http-client/services/logging.service.js +290 -170
- package/http-client/utils/call-stack-extractor.util.d.ts +26 -0
- package/http-client/utils/call-stack-extractor.util.js +35 -0
- package/http-client/utils/context-extractor.util.d.ts +2 -0
- package/http-client/utils/context-extractor.util.js +17 -3
- package/http-client/utils/curl-generator.util.js +2 -5
- package/http-client/utils/index.d.ts +2 -0
- package/http-client/utils/index.js +2 -0
- package/http-client/utils/proxy-environment.util.d.ts +42 -0
- package/http-client/utils/proxy-environment.util.js +154 -0
- package/http-client/utils/retry-recorder.util.d.ts +0 -4
- package/http-client/utils/retry-recorder.util.js +2 -27
- package/http-client/utils/sanitize.util.d.ts +58 -0
- package/http-client/utils/sanitize.util.js +188 -0
- package/http-client/utils/security-validator.util.d.ts +118 -0
- package/http-client/utils/security-validator.util.js +354 -0
- package/index.d.ts +4 -1
- package/index.js +6 -1
- package/interceptors/translation-interceptor.service.d.ts +7 -0
- package/interceptors/translation-interceptor.service.js +40 -8
- package/ip-filter/constants.d.ts +21 -0
- package/ip-filter/constants.js +24 -0
- package/ip-filter/decorators/index.d.ts +1 -0
- package/ip-filter/decorators/index.js +17 -0
- package/ip-filter/decorators/ip-filter.decorator.d.ts +58 -0
- package/ip-filter/decorators/ip-filter.decorator.js +79 -0
- package/ip-filter/guards/index.d.ts +1 -0
- package/ip-filter/guards/index.js +17 -0
- package/ip-filter/guards/ip-filter.guard.d.ts +62 -0
- package/ip-filter/guards/ip-filter.guard.js +174 -0
- package/ip-filter/index.d.ts +7 -0
- package/ip-filter/index.js +23 -0
- package/ip-filter/interfaces/index.d.ts +4 -0
- package/ip-filter/interfaces/index.js +20 -0
- package/ip-filter/interfaces/ip-filter-async-options.interface.d.ts +15 -0
- package/ip-filter/interfaces/ip-filter-async-options.interface.js +2 -0
- package/ip-filter/interfaces/ip-filter-metadata.interface.d.ts +26 -0
- package/ip-filter/interfaces/ip-filter-metadata.interface.js +2 -0
- package/ip-filter/interfaces/ip-filter-options.interface.d.ts +34 -0
- package/ip-filter/interfaces/ip-filter-options.interface.js +2 -0
- package/ip-filter/interfaces/ip-rule.interface.d.ts +36 -0
- package/ip-filter/interfaces/ip-rule.interface.js +2 -0
- package/ip-filter/ip-filter.module.d.ts +55 -0
- package/ip-filter/ip-filter.module.js +105 -0
- package/ip-filter/services/index.d.ts +1 -0
- package/ip-filter/services/index.js +17 -0
- package/ip-filter/services/ip-filter.service.d.ts +92 -0
- package/ip-filter/services/ip-filter.service.js +238 -0
- package/ip-filter/utils/index.d.ts +1 -0
- package/ip-filter/utils/index.js +17 -0
- package/ip-filter/utils/ip-utils.d.ts +61 -0
- package/ip-filter/utils/ip-utils.js +162 -0
- package/package.json +34 -29
- package/providers/context.provider.d.ts +9 -0
- package/providers/context.provider.js +13 -0
- package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
- package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
- package/redis-lock/index.d.ts +2 -0
- package/redis-lock/index.js +5 -1
- package/redis-lock/lock-heartbeat.service.d.ts +80 -0
- package/redis-lock/lock-heartbeat.service.js +232 -0
- package/redis-lock/redis-lock.module.d.ts +6 -0
- package/redis-lock/redis-lock.module.js +136 -77
- package/redis-lock/redis-lock.service.d.ts +31 -0
- package/redis-lock/redis-lock.service.js +124 -17
- package/setup/bootstrap.setup.d.ts +2 -1
- package/setup/bootstrap.setup.js +3 -2
- package/setup/index.d.ts +1 -0
- package/setup/index.js +1 -0
- package/setup/run-in-mode.decorator.d.ts +56 -0
- package/setup/run-in-mode.decorator.js +92 -0
- package/setup/schedule.decorator.d.ts +1 -0
- package/setup/schedule.decorator.js +28 -13
- package/setup/worker.decorator.js +10 -1
- package/shared/index.d.ts +1 -1
- package/shared/index.js +1 -1
- package/shared/{serviceRegistryModule.js → service-registry.module.js} +28 -17
- package/shared/services/api-config.service.d.ts +41 -0
- package/shared/services/api-config.service.js +166 -8
- package/shared/services/index.d.ts +0 -1
- package/shared/services/index.js +0 -1
- package/validators/custom-validate.validator.d.ts +1 -0
- package/validators/custom-validate.validator.js +1 -0
- package/validators/file-mimetype.validator.d.ts +0 -2
- package/validators/file-mimetype.validator.js +4 -6
- package/validators/is-exists.validator.d.ts +15 -6
- package/validators/is-exists.validator.js +8 -7
- package/validators/is-unique.validator.d.ts +22 -7
- package/validators/is-unique.validator.js +41 -17
- package/vault/vault-config.service.js +1 -1
- package/cache/providers/memory-cache.provider.d.ts +0 -49
- package/cache/providers/memory-cache.provider.js +0 -197
- package/http-client/services/cache.service.d.ts +0 -76
- package/http-client/services/cache.service.js +0 -333
- package/shared/services/validator.service.d.ts +0 -3
- package/shared/services/validator.service.js +0 -20
- /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
|
@@ -3,3 +3,6 @@ export * from './audit-strategy.service';
|
|
|
3
3
|
export * from './entity-audit.service';
|
|
4
4
|
export * from './transaction-audit.service';
|
|
5
5
|
export * from './multi-database.service';
|
|
6
|
+
export * from './operation-description.service';
|
|
7
|
+
export * from './manual-audit-log.service';
|
|
8
|
+
export * from './audit-action.service';
|
package/audit/services/index.js
CHANGED
|
@@ -19,3 +19,6 @@ __exportStar(require("./audit-strategy.service"), exports);
|
|
|
19
19
|
__exportStar(require("./entity-audit.service"), exports);
|
|
20
20
|
__exportStar(require("./transaction-audit.service"), exports);
|
|
21
21
|
__exportStar(require("./multi-database.service"), exports);
|
|
22
|
+
__exportStar(require("./operation-description.service"), exports);
|
|
23
|
+
__exportStar(require("./manual-audit-log.service"), exports);
|
|
24
|
+
__exportStar(require("./audit-action.service"), exports);
|
|
@@ -2,20 +2,20 @@ import { Repository, DataSource } from 'typeorm';
|
|
|
2
2
|
import { ManualOperationLogEntity, EntityTransactionEntity } from '../entities';
|
|
3
3
|
import { AuditContextService } from './audit-context.service';
|
|
4
4
|
import { ManualLogOptions } from '../interfaces';
|
|
5
|
+
import { AuditTransactionStatus } from '../enums';
|
|
5
6
|
/**
|
|
6
7
|
* 手动审计日志服务
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
+
* 提供标准的依赖注入方式记录操作日志
|
|
9
10
|
*/
|
|
10
11
|
export declare class ManualAuditLogService {
|
|
11
12
|
private readonly manualLogRepository;
|
|
12
13
|
private readonly transactionRepository;
|
|
13
14
|
private readonly contextService;
|
|
14
15
|
private readonly dataSource;
|
|
15
|
-
private static instance;
|
|
16
16
|
constructor(manualLogRepository: Repository<ManualOperationLogEntity>, transactionRepository: Repository<EntityTransactionEntity>, contextService: AuditContextService, dataSource: DataSource);
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* 记录操作日志
|
|
19
19
|
*
|
|
20
20
|
* @description
|
|
21
21
|
* 支持三种记录模式:
|
|
@@ -25,7 +25,7 @@ export declare class ManualAuditLogService {
|
|
|
25
25
|
*
|
|
26
26
|
* @example
|
|
27
27
|
* // 模式1:模板键模式
|
|
28
|
-
* await
|
|
28
|
+
* await this.manualAuditLogService.log({
|
|
29
29
|
* templateKey: 'user.login',
|
|
30
30
|
* descriptionParams: {
|
|
31
31
|
* username: 'john.doe',
|
|
@@ -35,13 +35,13 @@ export declare class ManualAuditLogService {
|
|
|
35
35
|
*
|
|
36
36
|
* @example
|
|
37
37
|
* // 模式2:直接描述模式(字符串)
|
|
38
|
-
* await
|
|
38
|
+
* await this.manualAuditLogService.log({
|
|
39
39
|
* description: '用户登录系统',
|
|
40
40
|
* });
|
|
41
41
|
*
|
|
42
42
|
* @example
|
|
43
43
|
* // 模式2:直接描述模式(多语言)
|
|
44
|
-
* await
|
|
44
|
+
* await this.manualAuditLogService.log({
|
|
45
45
|
* description: {
|
|
46
46
|
* zh: '用户登录系统',
|
|
47
47
|
* en: 'User logged in',
|
|
@@ -50,7 +50,7 @@ export declare class ManualAuditLogService {
|
|
|
50
50
|
*
|
|
51
51
|
* @example
|
|
52
52
|
* // 模式3:内联模板模式
|
|
53
|
-
* await
|
|
53
|
+
* await this.manualAuditLogService.log({
|
|
54
54
|
* descriptionTemplate: {
|
|
55
55
|
* zh: '用户 {username} 在 {time} 登录了系统',
|
|
56
56
|
* en: 'User {username} logged in at {time}',
|
|
@@ -61,52 +61,52 @@ export declare class ManualAuditLogService {
|
|
|
61
61
|
* },
|
|
62
62
|
* });
|
|
63
63
|
*/
|
|
64
|
-
|
|
64
|
+
log(options: ManualLogOptions): Promise<ManualOperationLogEntity>;
|
|
65
65
|
/**
|
|
66
66
|
* 实例方法:记录操作日志
|
|
67
67
|
*/
|
|
68
68
|
logOperation(options: ManualLogOptions): Promise<ManualOperationLogEntity>;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* 开始事务
|
|
71
71
|
*
|
|
72
72
|
* @example
|
|
73
73
|
* ```typescript
|
|
74
|
-
* const txId = await
|
|
74
|
+
* const txId = await this.manualAuditLogService.beginTransaction('user-123', 'John Doe');
|
|
75
75
|
*
|
|
76
|
-
* await
|
|
76
|
+
* await this.manualAuditLogService.log({
|
|
77
77
|
* templateKey: 'order.create',
|
|
78
78
|
* descriptionParams: { orderId: 'order-1' },
|
|
79
79
|
* transactionId: txId,
|
|
80
80
|
* autoCreateTransaction: false,
|
|
81
81
|
* });
|
|
82
82
|
*
|
|
83
|
-
* await
|
|
83
|
+
* await this.manualAuditLogService.log({
|
|
84
84
|
* templateKey: 'payment.process',
|
|
85
85
|
* descriptionParams: { paymentId: 'pay-1' },
|
|
86
86
|
* transactionId: txId,
|
|
87
87
|
* autoCreateTransaction: false,
|
|
88
88
|
* });
|
|
89
89
|
*
|
|
90
|
-
* await
|
|
90
|
+
* await this.manualAuditLogService.commitTransaction(txId);
|
|
91
91
|
* ```
|
|
92
92
|
*/
|
|
93
|
-
|
|
93
|
+
beginTransaction(userId?: string, username?: string): Promise<string>;
|
|
94
94
|
/**
|
|
95
|
-
*
|
|
95
|
+
* 提交事务
|
|
96
96
|
*/
|
|
97
|
-
|
|
97
|
+
commitTransaction(transactionId: string): Promise<void>;
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* 回滚事务
|
|
100
100
|
*/
|
|
101
|
-
|
|
101
|
+
rollbackTransaction(transactionId: string): Promise<void>;
|
|
102
102
|
/**
|
|
103
103
|
* 创建事务
|
|
104
104
|
*/
|
|
105
|
-
|
|
105
|
+
createTransaction(userId?: string, username?: string): Promise<string>;
|
|
106
106
|
/**
|
|
107
107
|
* 更新事务状态
|
|
108
108
|
*/
|
|
109
|
-
|
|
109
|
+
updateTransactionStatus(transactionId: string, status: AuditTransactionStatus): Promise<void>;
|
|
110
110
|
/**
|
|
111
111
|
* 生成事务ID
|
|
112
112
|
*/
|
|
@@ -120,7 +120,7 @@ export declare class ManualAuditLogService {
|
|
|
120
120
|
* @example
|
|
121
121
|
* ```typescript
|
|
122
122
|
* // 混合使用多种模式
|
|
123
|
-
* await
|
|
123
|
+
* await this.manualAuditLogService.logBatch([
|
|
124
124
|
* {
|
|
125
125
|
* templateKey: 'product.update',
|
|
126
126
|
* descriptionParams: { productId: 'p1', field: 'price' },
|
|
@@ -138,11 +138,11 @@ export declare class ManualAuditLogService {
|
|
|
138
138
|
* ]);
|
|
139
139
|
* ```
|
|
140
140
|
*/
|
|
141
|
-
|
|
141
|
+
logBatch(operations: ManualLogOptions[], sharedTransactionId?: string): Promise<ManualOperationLogEntity[]>;
|
|
142
142
|
/**
|
|
143
143
|
* 查询操作日志
|
|
144
144
|
*/
|
|
145
|
-
|
|
145
|
+
findLogs(options: {
|
|
146
146
|
templateKey?: string;
|
|
147
147
|
userId?: string;
|
|
148
148
|
transactionId?: string;
|
|
@@ -20,7 +20,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
-
var ManualAuditLogService_1;
|
|
24
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
24
|
exports.ManualAuditLogService = void 0;
|
|
26
25
|
const common_1 = require("@nestjs/common");
|
|
@@ -33,19 +32,17 @@ const crypto_1 = require("crypto");
|
|
|
33
32
|
/**
|
|
34
33
|
* 手动审计日志服务
|
|
35
34
|
*
|
|
36
|
-
*
|
|
35
|
+
* 提供标准的依赖注入方式记录操作日志
|
|
37
36
|
*/
|
|
38
|
-
let ManualAuditLogService =
|
|
37
|
+
let ManualAuditLogService = class ManualAuditLogService {
|
|
39
38
|
constructor(manualLogRepository, transactionRepository, contextService, dataSource) {
|
|
40
39
|
this.manualLogRepository = manualLogRepository;
|
|
41
40
|
this.transactionRepository = transactionRepository;
|
|
42
41
|
this.contextService = contextService;
|
|
43
42
|
this.dataSource = dataSource;
|
|
44
|
-
// 设置静态实例
|
|
45
|
-
ManualAuditLogService_1.instance = this;
|
|
46
43
|
}
|
|
47
44
|
/**
|
|
48
|
-
*
|
|
45
|
+
* 记录操作日志
|
|
49
46
|
*
|
|
50
47
|
* @description
|
|
51
48
|
* 支持三种记录模式:
|
|
@@ -55,7 +52,7 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
55
52
|
*
|
|
56
53
|
* @example
|
|
57
54
|
* // 模式1:模板键模式
|
|
58
|
-
* await
|
|
55
|
+
* await this.manualAuditLogService.log({
|
|
59
56
|
* templateKey: 'user.login',
|
|
60
57
|
* descriptionParams: {
|
|
61
58
|
* username: 'john.doe',
|
|
@@ -65,13 +62,13 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
65
62
|
*
|
|
66
63
|
* @example
|
|
67
64
|
* // 模式2:直接描述模式(字符串)
|
|
68
|
-
* await
|
|
65
|
+
* await this.manualAuditLogService.log({
|
|
69
66
|
* description: '用户登录系统',
|
|
70
67
|
* });
|
|
71
68
|
*
|
|
72
69
|
* @example
|
|
73
70
|
* // 模式2:直接描述模式(多语言)
|
|
74
|
-
* await
|
|
71
|
+
* await this.manualAuditLogService.log({
|
|
75
72
|
* description: {
|
|
76
73
|
* zh: '用户登录系统',
|
|
77
74
|
* en: 'User logged in',
|
|
@@ -80,7 +77,7 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
80
77
|
*
|
|
81
78
|
* @example
|
|
82
79
|
* // 模式3:内联模板模式
|
|
83
|
-
* await
|
|
80
|
+
* await this.manualAuditLogService.log({
|
|
84
81
|
* descriptionTemplate: {
|
|
85
82
|
* zh: '用户 {username} 在 {time} 登录了系统',
|
|
86
83
|
* en: 'User {username} logged in at {time}',
|
|
@@ -91,12 +88,9 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
91
88
|
* },
|
|
92
89
|
* });
|
|
93
90
|
*/
|
|
94
|
-
|
|
91
|
+
log(options) {
|
|
95
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
|
|
97
|
-
throw new Error('ManualAuditLogService is not initialized. Make sure AuditModule is imported.');
|
|
98
|
-
}
|
|
99
|
-
return ManualAuditLogService_1.instance.logOperation(options);
|
|
93
|
+
return this.logOperation(options);
|
|
100
94
|
});
|
|
101
95
|
}
|
|
102
96
|
/**
|
|
@@ -104,7 +98,7 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
104
98
|
*/
|
|
105
99
|
logOperation(options) {
|
|
106
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
const { templateKey, description, descriptionTemplate, descriptionParams, userId, username, requestIp,
|
|
101
|
+
const { templateKey, description, descriptionTemplate, descriptionParams, userId, username, requestIp, transactionId, autoCreateTransaction = true, } = options;
|
|
108
102
|
// 验证参数:至少提供一种模式
|
|
109
103
|
if (!templateKey && !description && !descriptionTemplate) {
|
|
110
104
|
throw new Error('ManualAuditLogService.log() requires one of: templateKey, description, or descriptionTemplate');
|
|
@@ -140,63 +134,53 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
140
134
|
userId: finalUserId,
|
|
141
135
|
username: finalUsername,
|
|
142
136
|
requestIp: finalRequestIp,
|
|
143
|
-
rollbackActions: rollbackActions || [],
|
|
144
137
|
});
|
|
145
138
|
return this.manualLogRepository.save(manualLog);
|
|
146
139
|
});
|
|
147
140
|
}
|
|
148
141
|
/**
|
|
149
|
-
*
|
|
142
|
+
* 开始事务
|
|
150
143
|
*
|
|
151
144
|
* @example
|
|
152
145
|
* ```typescript
|
|
153
|
-
* const txId = await
|
|
146
|
+
* const txId = await this.manualAuditLogService.beginTransaction('user-123', 'John Doe');
|
|
154
147
|
*
|
|
155
|
-
* await
|
|
148
|
+
* await this.manualAuditLogService.log({
|
|
156
149
|
* templateKey: 'order.create',
|
|
157
150
|
* descriptionParams: { orderId: 'order-1' },
|
|
158
151
|
* transactionId: txId,
|
|
159
152
|
* autoCreateTransaction: false,
|
|
160
153
|
* });
|
|
161
154
|
*
|
|
162
|
-
* await
|
|
155
|
+
* await this.manualAuditLogService.log({
|
|
163
156
|
* templateKey: 'payment.process',
|
|
164
157
|
* descriptionParams: { paymentId: 'pay-1' },
|
|
165
158
|
* transactionId: txId,
|
|
166
159
|
* autoCreateTransaction: false,
|
|
167
160
|
* });
|
|
168
161
|
*
|
|
169
|
-
* await
|
|
162
|
+
* await this.manualAuditLogService.commitTransaction(txId);
|
|
170
163
|
* ```
|
|
171
164
|
*/
|
|
172
|
-
|
|
165
|
+
beginTransaction(userId, username) {
|
|
173
166
|
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
-
|
|
175
|
-
throw new Error('ManualAuditLogService is not initialized');
|
|
176
|
-
}
|
|
177
|
-
return ManualAuditLogService_1.instance.createTransaction(userId, username);
|
|
167
|
+
return this.createTransaction(userId, username);
|
|
178
168
|
});
|
|
179
169
|
}
|
|
180
170
|
/**
|
|
181
|
-
*
|
|
171
|
+
* 提交事务
|
|
182
172
|
*/
|
|
183
|
-
|
|
173
|
+
commitTransaction(transactionId) {
|
|
184
174
|
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
-
|
|
186
|
-
throw new Error('ManualAuditLogService is not initialized');
|
|
187
|
-
}
|
|
188
|
-
yield ManualAuditLogService_1.instance.updateTransactionStatus(transactionId, enums_1.TransactionStatus.COMMITTED);
|
|
175
|
+
yield this.updateTransactionStatus(transactionId, enums_1.AuditTransactionStatus.COMMITTED);
|
|
189
176
|
});
|
|
190
177
|
}
|
|
191
178
|
/**
|
|
192
|
-
*
|
|
179
|
+
* 回滚事务
|
|
193
180
|
*/
|
|
194
|
-
|
|
181
|
+
rollbackTransaction(transactionId) {
|
|
195
182
|
return __awaiter(this, void 0, void 0, function* () {
|
|
196
|
-
|
|
197
|
-
throw new Error('ManualAuditLogService is not initialized');
|
|
198
|
-
}
|
|
199
|
-
yield ManualAuditLogService_1.instance.updateTransactionStatus(transactionId, enums_1.TransactionStatus.ROLLED_BACK);
|
|
183
|
+
yield this.updateTransactionStatus(transactionId, enums_1.AuditTransactionStatus.ROLLED_BACK);
|
|
200
184
|
});
|
|
201
185
|
}
|
|
202
186
|
/**
|
|
@@ -210,7 +194,7 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
210
194
|
userId: userId || context.userId || 'system',
|
|
211
195
|
username: username || context.username || 'system',
|
|
212
196
|
requestIp: context.requestIp || 'unknown',
|
|
213
|
-
status: enums_1.
|
|
197
|
+
status: enums_1.AuditTransactionStatus.PENDING,
|
|
214
198
|
entities: [],
|
|
215
199
|
});
|
|
216
200
|
const saved = yield this.transactionRepository.save(transaction);
|
|
@@ -240,7 +224,7 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
240
224
|
* @example
|
|
241
225
|
* ```typescript
|
|
242
226
|
* // 混合使用多种模式
|
|
243
|
-
* await
|
|
227
|
+
* await this.manualAuditLogService.logBatch([
|
|
244
228
|
* {
|
|
245
229
|
* templateKey: 'product.update',
|
|
246
230
|
* descriptionParams: { productId: 'p1', field: 'price' },
|
|
@@ -258,22 +242,18 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
258
242
|
* ]);
|
|
259
243
|
* ```
|
|
260
244
|
*/
|
|
261
|
-
|
|
245
|
+
logBatch(operations, sharedTransactionId) {
|
|
262
246
|
return __awaiter(this, void 0, void 0, function* () {
|
|
263
|
-
if (!ManualAuditLogService_1.instance) {
|
|
264
|
-
throw new Error('ManualAuditLogService is not initialized');
|
|
265
|
-
}
|
|
266
247
|
// 创建共享事务ID
|
|
267
|
-
const transactionId = sharedTransactionId ||
|
|
268
|
-
(yield ManualAuditLogService_1.instance.createTransaction());
|
|
248
|
+
const transactionId = sharedTransactionId || (yield this.createTransaction());
|
|
269
249
|
const results = [];
|
|
270
250
|
for (const operation of operations) {
|
|
271
|
-
const result = yield
|
|
251
|
+
const result = yield this.logOperation(Object.assign(Object.assign({}, operation), { transactionId, autoCreateTransaction: false }));
|
|
272
252
|
results.push(result);
|
|
273
253
|
}
|
|
274
254
|
// 自动提交事务(如果是自动创建的)
|
|
275
255
|
if (!sharedTransactionId) {
|
|
276
|
-
yield
|
|
256
|
+
yield this.updateTransactionStatus(transactionId, enums_1.AuditTransactionStatus.COMMITTED);
|
|
277
257
|
}
|
|
278
258
|
return results;
|
|
279
259
|
});
|
|
@@ -281,13 +261,10 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
281
261
|
/**
|
|
282
262
|
* 查询操作日志
|
|
283
263
|
*/
|
|
284
|
-
|
|
264
|
+
findLogs(options) {
|
|
285
265
|
return __awaiter(this, void 0, void 0, function* () {
|
|
286
|
-
if (!ManualAuditLogService_1.instance) {
|
|
287
|
-
throw new Error('ManualAuditLogService is not initialized');
|
|
288
|
-
}
|
|
289
266
|
const { templateKey, userId, transactionId, startTime, endTime, limit = 100 } = options;
|
|
290
|
-
const query =
|
|
267
|
+
const query = this.manualLogRepository
|
|
291
268
|
.createQueryBuilder('log')
|
|
292
269
|
.orderBy('log.createdAt', 'DESC')
|
|
293
270
|
.take(limit);
|
|
@@ -311,10 +288,10 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
|
|
|
311
288
|
}
|
|
312
289
|
};
|
|
313
290
|
exports.ManualAuditLogService = ManualAuditLogService;
|
|
314
|
-
exports.ManualAuditLogService = ManualAuditLogService =
|
|
291
|
+
exports.ManualAuditLogService = ManualAuditLogService = __decorate([
|
|
315
292
|
(0, common_1.Injectable)(),
|
|
316
|
-
__param(0, (0, typeorm_1.InjectRepository)(entities_1.ManualOperationLogEntity
|
|
317
|
-
__param(1, (0, typeorm_1.InjectRepository)(entities_1.EntityTransactionEntity
|
|
293
|
+
__param(0, (0, typeorm_1.InjectRepository)(entities_1.ManualOperationLogEntity)),
|
|
294
|
+
__param(1, (0, typeorm_1.InjectRepository)(entities_1.EntityTransactionEntity)),
|
|
318
295
|
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
319
296
|
typeorm_2.Repository,
|
|
320
297
|
audit_context_service_1.AuditContextService,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DataSource } from 'typeorm';
|
|
2
1
|
import { ModuleRef } from '@nestjs/core';
|
|
3
2
|
/**
|
|
4
3
|
* 多数据库连接管理服务
|
|
@@ -7,10 +6,6 @@ export declare class MultiDatabaseService {
|
|
|
7
6
|
private readonly moduleRef;
|
|
8
7
|
private readonly config?;
|
|
9
8
|
constructor(moduleRef: ModuleRef, config?: any);
|
|
10
|
-
/**
|
|
11
|
-
* 获取指定连接的 DataSource
|
|
12
|
-
*/
|
|
13
|
-
getDataSource(connectionName?: string): Promise<DataSource>;
|
|
14
9
|
/**
|
|
15
10
|
* 获取所有监听的数据库连接
|
|
16
11
|
*/
|
|
@@ -11,19 +11,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
15
|
exports.MultiDatabaseService = void 0;
|
|
25
16
|
const common_1 = require("@nestjs/common");
|
|
26
|
-
const typeorm_1 = require("@nestjs/typeorm");
|
|
27
17
|
const core_1 = require("@nestjs/core");
|
|
28
18
|
/**
|
|
29
19
|
* 多数据库连接管理服务
|
|
@@ -33,20 +23,6 @@ let MultiDatabaseService = class MultiDatabaseService {
|
|
|
33
23
|
this.moduleRef = moduleRef;
|
|
34
24
|
this.config = config;
|
|
35
25
|
}
|
|
36
|
-
/**
|
|
37
|
-
* 获取指定连接的 DataSource
|
|
38
|
-
*/
|
|
39
|
-
getDataSource() {
|
|
40
|
-
return __awaiter(this, arguments, void 0, function* (connectionName = 'default') {
|
|
41
|
-
try {
|
|
42
|
-
const dataSource = this.moduleRef.get((0, typeorm_1.getDataSourceToken)(connectionName), { strict: false });
|
|
43
|
-
return dataSource;
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
throw new Error(`Failed to get DataSource for connection: ${connectionName}`);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
26
|
/**
|
|
51
27
|
* 获取所有监听的数据库连接
|
|
52
28
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Repository } from 'typeorm';
|
|
2
2
|
import { OperationTemplateEntity, EntityTransactionEntity, EntityAuditLogEntity, ManualOperationLogEntity } from '../entities';
|
|
3
3
|
import { ChangeDetail, TransactionDescription } from '../interfaces';
|
|
4
|
+
import { CacheService } from '../../cache';
|
|
4
5
|
/**
|
|
5
6
|
* 操作描述服务
|
|
6
7
|
* 负责根据模板和参数动态生成多语言描述
|
|
@@ -10,8 +11,11 @@ export declare class OperationDescriptionService {
|
|
|
10
11
|
private readonly transactionRepository;
|
|
11
12
|
private readonly auditLogRepository;
|
|
12
13
|
private readonly manualOperationRepository;
|
|
13
|
-
private
|
|
14
|
-
|
|
14
|
+
private readonly cacheService;
|
|
15
|
+
private readonly logger;
|
|
16
|
+
private readonly CACHE_NAMESPACE;
|
|
17
|
+
private readonly CACHE_TTL;
|
|
18
|
+
constructor(templateRepository: Repository<OperationTemplateEntity>, transactionRepository: Repository<EntityTransactionEntity>, auditLogRepository: Repository<EntityAuditLogEntity>, manualOperationRepository: Repository<ManualOperationLogEntity>, cacheService: CacheService);
|
|
15
19
|
/**
|
|
16
20
|
* 动态生成操作名称
|
|
17
21
|
* @param templateKey 模板键
|
|
@@ -63,11 +67,18 @@ export declare class OperationDescriptionService {
|
|
|
63
67
|
*/
|
|
64
68
|
private formatDisplayValue;
|
|
65
69
|
/**
|
|
66
|
-
*
|
|
70
|
+
* 获取操作模板(使用统一缓存服务)
|
|
67
71
|
* @param templateKey 模板键
|
|
68
72
|
* @returns 操作模板
|
|
69
73
|
*/
|
|
70
74
|
private getOperationTemplate;
|
|
75
|
+
/**
|
|
76
|
+
* 获取模板字符串(仅返回模板文本,不填充参数)
|
|
77
|
+
* @param templateKey 模板键
|
|
78
|
+
* @param language 语言
|
|
79
|
+
* @returns 模板字符串
|
|
80
|
+
*/
|
|
81
|
+
getTemplate(templateKey: string, language?: string): Promise<string | null>;
|
|
71
82
|
/**
|
|
72
83
|
* 清除模板缓存
|
|
73
84
|
*/
|