import { Repository } from 'typeorm'; import { OperationTemplateEntity, EntityTransactionEntity, EntityAuditLogEntity, ManualOperationLogEntity } from '../entities'; import { ChangeDetail, TransactionDescription } from '../interfaces'; import { CacheService } from '../../cache'; /** * 操作描述服务 * 负责根据模板和参数动态生成多语言描述 */ export declare class OperationDescriptionService { private readonly templateRepository; private readonly transactionRepository; private readonly auditLogRepository; private readonly manualOperationRepository; private readonly cacheService; private readonly logger; private readonly CACHE_NAMESPACE; private readonly CACHE_TTL; constructor(templateRepository: Repository, transactionRepository: Repository, auditLogRepository: Repository, manualOperationRepository: Repository, cacheService: CacheService); /** * 动态生成操作名称 * @param templateKey 模板键 * @param language 语言 * @returns 操作名称 */ generateOperationName(templateKey: string, language?: string): Promise; /** * 动态生成操作描述 * @param templateKey 模板键 * @param descriptionParams 描述参数 * @param language 语言 * @returns 描述文本 */ generateDescription(templateKey: string, descriptionParams: Record, language?: string): Promise; /** * 动态生成变更详情 * @param changeDetails 变更详情列表 * @param language 语言 * @returns 格式化的变更详情 */ generateChangeDetails(changeDetails: ChangeDetail[], language?: string): Promise; /** * 获取事务描述(包含所有变更) * @param transactionId 事务ID * @param language 语言 * @returns 事务描述对象 */ getTransactionDescription(transactionId: string, language?: string): Promise; /** * 批量获取事务描述 * @param transactionIds 事务ID列表 * @param language 语言 * @returns 事务描述映射 */ batchGetTransactionDescriptions(transactionIds: string[], language?: string): Promise>; /** * 填充模板 * @param template 模板字符串 * @param params 参数 * @returns 填充后的字符串 */ private fillTemplate; /** * 格式化显示值 * @param value 原始值 * @param displayValue 显示值 * @returns 格式化后的值 */ private formatDisplayValue; /** * 获取操作模板(使用统一缓存服务) * @param templateKey 模板键 * @returns 操作模板 */ private getOperationTemplate; /** * 获取模板字符串(仅返回模板文本,不填充参数) * @param templateKey 模板键 * @param language 语言 * @returns 模板字符串 */ getTemplate(templateKey: string, language?: string): Promise; /** * 清除模板缓存 */ clearTemplateCache(): void; /** * 预加载模板到缓存 * @param templateKeys 模板键列表 */ preloadTemplates(templateKeys: string[]): Promise; }