package com.xly.tts.bean; import com.xly.constant.ErrorCode; import com.xly.constant.ReturnTypeCode; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * TTS响应数据传输对象 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor public class TTSResponseDTO implements Serializable { private static final long serialVersionUID = 1L; /** * 请求ID */ private String requestId; /** * 【新加】缓存唯一KEY,用于多用户不冲突 */ private String cacheKey; /** * 状态码:200成功,其他失败 */ @Builder.Default private Integer code = ErrorCode.SUCCESS.getCode(); /** * 状态消息 */ @Builder.Default private String message = "success"; // 文字部分 private String originalText; private String processedText; private String systemText; private String voice; private Long timestamp; private Integer textLength; // 音频部分(Base64编码或URL) private String audioBase64; private Integer audioSize; private String audioFormat; private String audioText; // 或者只返回音频URL private String audioUrl; private String sMsg; // 业务代码 例如报价 001 private String sBusinessCode; //业务场景名称 private String sSceneName; //业务方法名称 private String sMethodName; //清除记忆提示 private String sCommonts; private String sReturnType = ReturnTypeCode.MAKEDOWN.getCode(); /** * 创建失败响应 */ public static TTSResponseDTO error(ErrorCode code) { return TTSResponseDTO.builder() .code(code.getCode()) .message(code.getMessage()) .timestamp(System.currentTimeMillis()) .build(); } public static TTSResponseDTO error(Integer code, String message) { return TTSResponseDTO.builder() .code(code != null ? code : 500) .message(message != null ? message : "系统错误") .timestamp(System.currentTimeMillis()) .build(); } /** * 创建失败响应 */ public static TTSResponseDTO error(String requestId, Integer code, String message) { return TTSResponseDTO.builder() .requestId(requestId) .code(code != null ? code : 500) .message(message != null ? message : "系统错误") .timestamp(System.currentTimeMillis()) .build(); } }