diff --git a/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java b/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java index f59056f..ed30c5b 100644 --- a/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java +++ b/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java @@ -10,7 +10,7 @@ public class OutfitCallbackDTO { private String outfit_id; - // 取值范围:ok || failed || stop || retrying + // 取值范围:ok || failed || stop || retrying || retry_failed private String status; private String path; diff --git a/src/main/java/com/aida/lanecarford/service/impl/StyleServiceImpl.java b/src/main/java/com/aida/lanecarford/service/impl/StyleServiceImpl.java index 7abde60..04dec06 100644 --- a/src/main/java/com/aida/lanecarford/service/impl/StyleServiceImpl.java +++ b/src/main/java/com/aida/lanecarford/service/impl/StyleServiceImpl.java @@ -27,7 +27,6 @@ import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import io.netty.util.internal.StringUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -130,18 +129,19 @@ public class StyleServiceImpl extends ServiceImpl implements // 搭配完成后的回调通知处理 public void callback(OutfitCallbackDTO callbackDTO) { - if (Objects.isNull(callbackDTO.getStatus())) { + if (Objects.isNull(callbackDTO.getStatus()) || callbackDTO.getStatus().equals("failed")) { return; } // 1. 判断path是否为空,是 -> 不做任何处理 - if (!"retrying".equals(callbackDTO.getStatus()) - && !"failed".equals(callbackDTO.getStatus()) - && StringUtil.isNullOrEmpty(callbackDTO.getPath())) { + if (("ok".equals(callbackDTO.getStatus()) + || "stop".equals(callbackDTO.getStatus())) + && StringUtils.isBlank(callbackDTO.getPath())) { + log.error("状态为ok || stop时,path为空"); return; } - if (StringUtil.isNullOrEmpty(callbackDTO.getOutfit_id())) { + if (StringUtils.isBlank(callbackDTO.getOutfit_id())) { log.error("回调参数中,outfit_id为空"); return; } @@ -159,26 +159,27 @@ public class StyleServiceImpl extends ServiceImpl implements // 3.更新path, items, 状态 // 由于数据变化较频繁,考虑存到redis if (outfitResult instanceof OutfitResultVO) { - ((OutfitResultVO) outfitResult).setPath(minioUtil.getPresignedUrl(callbackDTO.getPath(), CommonConstants.MINIO_PATH_TIMEOUT)); String status; switch(callbackDTO.getStatus()) { case "ok": status = StatusEnum.RUNNING.name(); + ((OutfitResultVO) outfitResult).setPath(minioUtil.getPresignedUrl(callbackDTO.getPath(), CommonConstants.MINIO_PATH_TIMEOUT)); break; case "stop": status = StatusEnum.SUCCEEDED.name(); - break; - case "failed": - status = StatusEnum.FAILED.name(); + ((OutfitResultVO) outfitResult).setPath(minioUtil.getPresignedUrl(callbackDTO.getPath(), CommonConstants.MINIO_PATH_TIMEOUT)); break; case "retrying": status = StatusEnum.PENDING.name(); ((OutfitResultVO) outfitResult).setCreateTimeStamp(System.currentTimeMillis()); ((OutfitResultVO) outfitResult).setPath(null); break; + case /*"failed",*/ "retry_failed": + status = StatusEnum.FAILED.name(); + break; default: log.error("outfit_id为{},回调状态未知{}", requestId, callbackDTO.getStatus()); - status = "failed"; + status = StatusEnum.FAILED.name(); } ((OutfitResultVO) outfitResult).setStatus(status); @@ -186,7 +187,9 @@ public class StyleServiceImpl extends ServiceImpl implements } // 生成结束或失败时更新数据库 - if ("stop".equals(callbackDTO.getStatus()) || "failed".equals(callbackDTO.getStatus())) { + if ("stop".equals(callbackDTO.getStatus()) + /*|| "failed".equals(callbackDTO.getStatus())*/ + || "retry_failed".equals(callbackDTO.getStatus())) { // String requestId = callbackDTO.getOutfit_id(); LambdaQueryWrapper