package com.shkpr.service.alambizplugin.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.shkpr.service.alambizplugin.constants.CommAsyncStatusEnum; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import java.util.List; import java.util.Map; /** * 通用异步结果 * * @author 欧阳劲驰 * @since 1.0.0 */ @Data public class CommAsyncResult { /** * id */ private String id; /** * 检查状态:0:进行中,1:成功,2:失败,3:不存在 */ private Integer status; /** * 操作人 */ private String operator; /** * 子项key */ private List subitemKeys; /** * 结果数据 */ private T data; /** * 请求检查时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "Asia/Shanghai") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime requestTime; /** * 完成检查时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "Asia/Shanghai") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime completeTime; /** * 数据更新时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "Asia/Shanghai") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Map refreshTimes; /** * 进行中 */ public static CommAsyncResult inProgress(String id, LocalDateTime requestTime, String operator) { CommAsyncResult result = new CommAsyncResult<>(); result.setId(id); result.setStatus(CommAsyncStatusEnum.IN_PROGRESS.getCode()); result.setRequestTime(requestTime); result.setOperator(operator); return result; } /** * 成功 */ public static CommAsyncResult success(String id) { CommAsyncResult result = new CommAsyncResult<>(); result.setId(id); result.setStatus(CommAsyncStatusEnum.SUCCESS.getCode()); result.setRequestTime(LocalDateTime.now()); return result; } /** * 失败 */ public static CommAsyncResult fail(String id) { CommAsyncResult result = new CommAsyncResult<>(); result.setId(id); result.setStatus(CommAsyncStatusEnum.FAIL.getCode()); result.setRequestTime(LocalDateTime.now()); return result; } }