From d76a9e6afde453feeff930de4a75ba9ed3ec89ba Mon Sep 17 00:00:00 2001 From: xupei Date: Fri, 4 Jul 2025 12:02:05 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81design=E6=B5=81=E7=A8=8B=E4=B8=AD?= =?UTF-8?q?=E4=BD=BF=E7=94=A8to=20product=E3=80=81relight=E3=80=81pose=20t?= =?UTF-8?q?ransfer=E9=BB=98=E8=AE=A4=E5=8A=A0=E5=88=B0like=202=E3=80=81?= =?UTF-8?q?=E4=B8=87=E8=B1=A1=E7=9A=84pose=20transfer=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=AD=98=E5=88=B0redis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ai/da/model/dto/PoseTransformDTO.java | 2 ++ .../ai/da/model/dto/ProductImageLikeDTO.java | 4 +++ .../ai/da/model/dto/ToProductImageDTO.java | 2 ++ .../da/service/impl/GenerateServiceImpl.java | 25 +++++++++++++------ .../impl/UserLikeGroupServiceImpl.java | 25 +++++++++++++++---- 5 files changed, 46 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/ai/da/model/dto/PoseTransformDTO.java b/src/main/java/com/ai/da/model/dto/PoseTransformDTO.java index dbe44803..cef61e95 100644 --- a/src/main/java/com/ai/da/model/dto/PoseTransformDTO.java +++ b/src/main/java/com/ai/da/model/dto/PoseTransformDTO.java @@ -21,4 +21,6 @@ public class PoseTransformDTO { private Integer poseId; private String modelName; + + private Long userLikeSortId; } diff --git a/src/main/java/com/ai/da/model/dto/ProductImageLikeDTO.java b/src/main/java/com/ai/da/model/dto/ProductImageLikeDTO.java index a88f8df5..1360222a 100644 --- a/src/main/java/com/ai/da/model/dto/ProductImageLikeDTO.java +++ b/src/main/java/com/ai/da/model/dto/ProductImageLikeDTO.java @@ -1,10 +1,14 @@ package com.ai.da.model.dto; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @Data +@NoArgsConstructor +@AllArgsConstructor public class ProductImageLikeDTO { private List toProductImageResultId; private Long projectId; diff --git a/src/main/java/com/ai/da/model/dto/ToProductImageDTO.java b/src/main/java/com/ai/da/model/dto/ToProductImageDTO.java index 8a3e4d68..810f8452 100644 --- a/src/main/java/com/ai/da/model/dto/ToProductImageDTO.java +++ b/src/main/java/com/ai/da/model/dto/ToProductImageDTO.java @@ -18,4 +18,6 @@ public class ToProductImageDTO { private BigDecimal imageStrengthMax; private String modelName; private String ageGroup; + + private Long userLikeSortId; } 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 afc66e9a..6db74aed 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -1161,7 +1161,8 @@ public class GenerateServiceImpl extends ServiceImpl i poseTransformation.setIsLiked((byte)1); poseTransformation.setCreateTime(LocalDateTime.now()); poseTransformationMapper.insert(poseTransformation); - + // 满足条件下添加到like + addPoseTransferLike(poseTransformDTO, poseTransformation.getId()); if (flag){ // 6、添加预扣除积分到redis creditsService.addRecordToCreditsDeduction(accountId, taskId, creditsEventsEnum); @@ -1172,6 +1173,14 @@ public class GenerateServiceImpl extends ServiceImpl i throw new BusinessException("pose transformation error", ResultEnum.ERROR.getCode()); } + private void addPoseTransferLike(PoseTransformDTO poseTransformDTO, Long poseTransformationId){ + if (Objects.nonNull(poseTransformDTO.getUserLikeSortId()) + && !poseTransformDTO.getUserLikeSortId().equals(0L)){ + disOrLikePose(poseTransformationId, "like", + poseTransformDTO.getProjectId(), poseTransformDTO.getUserLikeSortId()); + } + } + @Resource private PoseTransformationMapper poseTransformationMapper; @Resource @@ -1215,15 +1224,12 @@ public class GenerateServiceImpl extends ServiceImpl i ArrayList poseTransformationVOS = new ArrayList<>(); for (String taskId : taskIdList){ String type = resolveModelType(taskId, CreditsEventsEnum.POSE_TRANSFORMATION.getValue()); - if (type.equals("wx")){ - poseTransformationVOS.add(getAnimateResult(taskId)); - } + String key = generateResultKey + ":" + taskId; String resultJson = redisUtil.getFromString(key); - if (!StringUtil.isNullOrEmpty(resultJson)){ PoseTransformationVO poseTransformationVO = new Gson().fromJson(redisUtil.getFromString(key), PoseTransformationVO.class); - if (poseTransformationVO.getStatus().equals("Success")){ + if (poseTransformationVO.getStatus().equals("Success") && !type.equals("wx")){ // 处理各种URL processUrl(poseTransformationVO.getGifUrl(), url -> poseTransformationVO.setGifUrl(minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME))); @@ -1234,7 +1240,9 @@ public class GenerateServiceImpl extends ServiceImpl i } poseTransformationVO.setResultType(CollectionType.POSE_TRANSFORM.getValue()); poseTransformationVOS.add(poseTransformationVO); - }else { + } else if(type.equals("wx")){ + poseTransformationVOS.add(getAnimateResult(taskId)); + } else { poseTransformationVOS.add(new PoseTransformationVO(taskId, "Executing")); } } @@ -1920,6 +1928,9 @@ public class GenerateServiceImpl extends ServiceImpl i poseTransformationVO.setStatus("Fail"); } poseTransformationVO.setTaskId(taskId); + // 保存数据到redis + String key = generateResultKey + ":" + taskId; + redisUtil.addToString(key, new Gson().toJson(poseTransformationVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); return poseTransformationVO; } 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 d1a1fc3c..9f92680b 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -478,7 +478,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl