diff --git a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java index f5c7b9ba..78788985 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java @@ -189,6 +189,7 @@ public class GenerateConsumer { } else { // 修改redis中的数据状态为exception String key = toProductImageResultKey + ":" + generateResult.get("tasks_id"); + generateService.updateToProductTaskStatus(generateResult.get("tasks_id"), "Fail"); redisUtil.addToString(key, new Gson().toJson(new GenerateResultVO(generateResult.get("tasks_id"), null, null, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); // 将异常信息存到exception中 HashMap exceptionInfo = new HashMap<>(); @@ -239,6 +240,7 @@ public class GenerateConsumer { } else { // 修改redis中的数据状态为exception String key = relightResultKey + ":" + generateResult.get("tasks_id"); + generateService.updateToProductTaskStatus(generateResult.get("tasks_id"), "Fail"); redisUtil.addToString(key, new Gson().toJson(new GenerateResultVO(generateResult.get("tasks_id"), null, null, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); // 将异常信息存到exception中 HashMap exceptionInfo = new HashMap<>(); @@ -287,6 +289,7 @@ public class GenerateConsumer { } else { // 修改redis中的数据状态为exception String key = generateResultKey + ":" + generateResult.get("tasks_id"); + generateService.updatePoseTransferStatus(generateResult.get("tasks_id"), "Fail"); redisUtil.addToString(key, new Gson().toJson(new PoseTransformationVO(null, generateResult.get("tasks_id"),null, null, null, (byte)0, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); // 将异常信息存到exception中 HashMap exceptionInfo = new HashMap<>(); @@ -402,6 +405,7 @@ public class GenerateConsumer { } else { // 修改redis中的数据状态为exception String key = toProductImageResultKey + ":" + generateResult.get("task_id"); + generateService.updateToProductTaskStatus(generateResult.getString("task_id"), "Fail"); redisUtil.addToString(key, new Gson().toJson(new GenerateResultVO(generateResult.getString("tasks_id"), null, null, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); // 将异常信息存到exception中 HashMap exceptionInfo = new HashMap<>(); @@ -465,6 +469,7 @@ public class GenerateConsumer { } else { // 修改redis中的数据状态为exception String key = relightResultKey + ":" + generateResult.get("task_id"); + generateService.updateToProductTaskStatus(generateResult.getString("task_id"), "Fail"); redisUtil.addToString(key, new Gson().toJson(new GenerateResultVO(generateResult.getString("tasks_id"), null, null, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); // 将异常信息存到exception中 HashMap exceptionInfo = new HashMap<>(); @@ -520,6 +525,7 @@ public class GenerateConsumer { } else { // 修改redis中的数据状态为exception String key = generateResultKey + ":" + generateResult.getString("task_id"); + generateService.updatePoseTransferStatus(generateResult.getString("task_id"), "Fail"); redisUtil.addToString(key, new Gson().toJson(new PoseTransformationVO(null, generateResult.getString("task_id"),null, null, null, (byte)0, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); // 将异常信息存到exception中 HashMap exceptionInfo = new HashMap<>(); diff --git a/src/main/java/com/ai/da/mapper/primary/entity/PoseTransformation.java b/src/main/java/com/ai/da/mapper/primary/entity/PoseTransformation.java index 90aef6de..28b56eaf 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/PoseTransformation.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/PoseTransformation.java @@ -33,6 +33,8 @@ public class PoseTransformation extends BaseEntity { private String modelName; + private String taskStatus; + public PoseTransformation() { } diff --git a/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java b/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java index 4180643d..1031a386 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java @@ -60,4 +60,6 @@ public class ToProductImageResult implements Serializable { private String taskIdBatch; private String modelName; + + private String taskStatus; } diff --git a/src/main/java/com/ai/da/service/GenerateService.java b/src/main/java/com/ai/da/service/GenerateService.java index 8fe5f644..9e934941 100644 --- a/src/main/java/com/ai/da/service/GenerateService.java +++ b/src/main/java/com/ai/da/service/GenerateService.java @@ -22,6 +22,8 @@ public interface GenerateService extends IService { void processToProductImageResult(String taskId, String url, String category); + void updateToProductTaskStatus(String taskId, String status); + GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO); Boolean generateDislike(Long generateDetailId, String timeZone); @@ -56,6 +58,8 @@ public interface GenerateService extends IService { List getPoseTransformationResult(List taskIdList); + void updatePoseTransferStatus(String taskId, String status); + List getPoseTransformationResultList(Long projectId, boolean like); CollectionSort disOrLikePose(Long transformedId, String likeOrDislike, Long projectId, Long sortLikeParentId); diff --git a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java index bfb0a33a..e62a23a6 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -318,6 +318,7 @@ public class GenerateServiceImpl extends ServiceImpl i } ToProductImageResult toProductImageResult = toProductImageResults.get(0); toProductImageResult.setUrl(url); + toProductImageResult.setResultType("Success"); // toProductImageResult.setResultType("ToProductImage"); toProductImageResultMapper.updateById(toProductImageResult); @@ -339,6 +340,19 @@ public class GenerateServiceImpl extends ServiceImpl i } } + public void updateToProductTaskStatus(String taskId, String status){ + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(ToProductImageResult::getTaskId, taskId); + List toProductImageResults = toProductImageResultMapper.selectList(qw); + if (!CollectionUtils.isEmpty(toProductImageResults)) { + ToProductImageResult toProductImageResult = toProductImageResults.get(0); + if (StringUtil.isNullOrEmpty(toProductImageResult.getTaskStatus()) || !toProductImageResult.getTaskStatus().equals(status)){ + toProductImageResult.setTaskStatus(status); + toProductImageResultMapper.updateById(toProductImageResult); + } + } + } + private void validateGeneraType(Generate generate, String text, Long elementId) { String generateType = ""; if (StringUtil.isNullOrEmpty(text.trim()) && Objects.isNull(elementId)) { @@ -832,6 +846,7 @@ public class GenerateServiceImpl extends ServiceImpl i pythonService.bright(url, toProductImageResult.getBrightenValue()); } toProductImageResult.setUrl(url); + toProductImageResult.setTaskStatus("Success"); // toProductImageResult.setResultType("Relight"); toProductImageResultMapper.updateById(toProductImageResult); @@ -1221,6 +1236,8 @@ public class GenerateServiceImpl extends ServiceImpl i poseTransformation.setProductImage(productImage); poseTransformation.setPoseId(poseId); poseTransformation.setIsLiked((byte) 1); + String taskStatus = flag ? "Executing" : "Fail"; + poseTransformation.setTaskStatus(taskStatus); poseTransformation.setCreateTime(LocalDateTime.now()); poseTransformationMapper.insert(poseTransformation); // 当需要默认like @@ -1280,6 +1297,7 @@ public class GenerateServiceImpl extends ServiceImpl i poseTransformation.setGifUrl(gifUrl); poseTransformation.setVideoUrl(videoUrl); poseTransformation.setFirstFrameUrl(imageUrl); + poseTransformation.setTaskStatus("Success"); poseTransformation.setUpdateTime(LocalDateTime.now()); poseTransformationMapper.updateById(poseTransformation); @@ -1336,6 +1354,16 @@ public class GenerateServiceImpl extends ServiceImpl i return poseTransformationVOS; } + public void updatePoseTransferStatus(String taskId, String status){ + PoseTransformation poseTransformation = poseTransformationMapper.selectOne(new QueryWrapper().eq("unique_id", taskId)); + + if (StringUtil.isNullOrEmpty(poseTransformation.getTaskStatus()) || !status.equals(poseTransformation.getTaskStatus())){ + poseTransformation.setTaskStatus(status); + poseTransformation.setUpdateTime(LocalDateTime.now()); + poseTransformationMapper.updateById(poseTransformation); + } + } + private ToProductImageResult getProductResultByPath(String minioPath) { QueryWrapper qw = new QueryWrapper<>(); qw.lambda().eq(ToProductImageResult::getUrl, minioPath); @@ -1597,6 +1625,7 @@ public class GenerateServiceImpl extends ServiceImpl i poseTransformation.setGifUrl(gifUrl); poseTransformation.setVideoUrl(videoUrl); poseTransformation.setFirstFrameUrl(imageUrl); + poseTransformation.setTaskStatus("Success"); poseTransformation.setUpdateTime(LocalDateTime.now()); poseTransformationMapper.updateById(poseTransformation); @@ -2319,7 +2348,8 @@ public class GenerateServiceImpl extends ServiceImpl i log.info("flux 发起生成请求返回结果: {}", respObj); String taskId = respObj.getStr("id"); if (StringUtil.isNullOrEmpty(taskId)) { - return null; + log.error("flux生成任务创建失败,func :{}, requestBody:{}", func.getName(), requestBody); + throw new BusinessException("Failed to generate task. Please retry later."); } String pollingUrl = respObj.getStr("polling_url"); @@ -2348,10 +2378,11 @@ public class GenerateServiceImpl extends ServiceImpl i case "Task not found": return "Fail"; case "Pending": + return "Pending"; case "Request Moderated": case "Content Moderated": - // 处理中 - return "Pending"; + // 审核没过 + return "Fail"; case "Ready": // 已完成 获取结果 String fluxResult = JSONUtil.parseObj(respObj.getStr("result")).getStr("sample"); diff --git a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java index 30799f47..12e3be3e 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -49,6 +49,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.time.Duration; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.*; @@ -487,6 +488,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl= 1; + } + @Override @Transactional public ModuleChooseVO saveModuleContent(ModuleSaveDTO moduleSaveDTO) { @@ -2787,6 +2826,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl