From 63c9ff36a150dd01b8cdbad909b118ab36c9a118 Mon Sep 17 00:00:00 2001 From: xupei Date: Tue, 25 Mar 2025 16:11:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Elike\dislike=20pose=20transfo?= =?UTF-8?q?rmation=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/GenerateController.java | 6 +++ .../primary/entity/PoseTransformation.java | 2 +- .../ai/da/model/vo/PoseTransformationVO.java | 2 +- .../com/ai/da/service/GenerateService.java | 4 ++ .../da/service/impl/GenerateServiceImpl.java | 38 +++++++++++++++---- 5 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ai/da/controller/GenerateController.java b/src/main/java/com/ai/da/controller/GenerateController.java index cb8723f0..e98c4465 100644 --- a/src/main/java/com/ai/da/controller/GenerateController.java +++ b/src/main/java/com/ai/da/controller/GenerateController.java @@ -110,6 +110,12 @@ public class GenerateController { return Response.success(generateResult); } + @ApiOperation("喜欢或取消喜欢姿势变换生成的图片") + @PostMapping("/likeOrDislike") + public Response likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike) { + return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike)); + } + @ApiOperation(value = "修改模特比例") @PostMapping("/modifyProportion") public Response modifyModelProportion(@Valid @RequestBody ModifyModelProportionDTO proportionDTO){ 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 55c95939..62a7dfb4 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 @@ -23,7 +23,7 @@ public class PoseTransformation extends BaseEntity { private String videoUrl; // GIF第一帧截图 - private String imageUrl; + private String firstFrameUrl; private byte isLiked; diff --git a/src/main/java/com/ai/da/model/vo/PoseTransformationVO.java b/src/main/java/com/ai/da/model/vo/PoseTransformationVO.java index fb7e57b5..55e39da1 100644 --- a/src/main/java/com/ai/da/model/vo/PoseTransformationVO.java +++ b/src/main/java/com/ai/da/model/vo/PoseTransformationVO.java @@ -17,7 +17,7 @@ public class PoseTransformationVO { private String videoUrl; // GIF第一帧截图 - private String imageUrl; + private String firstFrameUrl; private byte isLiked; diff --git a/src/main/java/com/ai/da/service/GenerateService.java b/src/main/java/com/ai/da/service/GenerateService.java index 597a79d1..656e6cec 100644 --- a/src/main/java/com/ai/da/service/GenerateService.java +++ b/src/main/java/com/ai/da/service/GenerateService.java @@ -52,6 +52,10 @@ public interface GenerateService extends IService { PoseTransformationVO getPoseTransformationResult(String taskId); + List getPoseTransformationResultList(String projectId); + + Boolean disOrLikePose(Long transformedId, String likeOrDislike); + String modifyModelProportion(ModifyModelProportionDTO proportionDTO); GenerateResultVO sketchReconstructionGenerate(SketchReconstructionDTO sketchReconstructionDTO); 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 1766dc05..e98caf63 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -14,8 +14,6 @@ import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; import com.ai.da.service.*; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; @@ -28,17 +26,14 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; -import java.io.InputStream; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; import static com.ai.da.common.enums.CollectionLevel1TypeEnum.*; -import static com.ai.da.service.impl.UserLikeGroupServiceImpl.convert; @Slf4j @Service @@ -988,7 +983,7 @@ public class GenerateServiceImpl extends ServiceImpl i poseTransformation = poseTransformations.get(0); poseTransformation.setGifUrl(gifUrl); poseTransformation.setVideoUrl(videoUrl); - poseTransformation.setImageUrl(imageUrl); + poseTransformation.setFirstFrameUrl(imageUrl); poseTransformation.setUpdateTime(LocalDateTime.now()); poseTransformationMapper.updateById(poseTransformation); @@ -1015,7 +1010,7 @@ public class GenerateServiceImpl extends ServiceImpl i if (poseTransformationVO.getStatus().equals("Success")){ poseTransformationVO.setGifUrl(minioUtil.getPreSignedUrl(poseTransformationVO.getGifUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); poseTransformationVO.setVideoUrl(minioUtil.getPreSignedUrl(poseTransformationVO.getVideoUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); - poseTransformationVO.setImageUrl(minioUtil.getPreSignedUrl(poseTransformationVO.getImageUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + poseTransformationVO.setFirstFrameUrl(minioUtil.getPreSignedUrl(poseTransformationVO.getFirstFrameUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); } return poseTransformationVO; }else { @@ -1023,6 +1018,35 @@ public class GenerateServiceImpl extends ServiceImpl i } } + public List getPoseTransformationResultList(String projectId){ + List poseTransformations = poseTransformationMapper.selectList(new QueryWrapper().eq("project_id", projectId).eq("is_liked", 1)); + List vos = new ArrayList<>(); + if (poseTransformations != null && poseTransformations.size() > 1){ + poseTransformations.forEach(item -> { + PoseTransformationVO poseTransformationVO = CopyUtil.copyObject(item, PoseTransformationVO.class); + poseTransformationVO.setId(item.getId()); + vos.add(poseTransformationVO); + }); + } + return vos; + } + + public Boolean disOrLikePose(Long transformedId, String likeOrDislike){ + PoseTransformation poseTransformation = poseTransformationMapper.selectById(transformedId); + if (Objects.nonNull(poseTransformation)){ + if (likeOrDislike.equals("like")){ + poseTransformation.setIsLiked((byte)1); + }else if (likeOrDislike.equals("dislike")){ + poseTransformation.setIsLiked((byte)0); + } + poseTransformation.setUpdateTime(LocalDateTime.now()); + poseTransformationMapper.updateById(poseTransformation); + }else { + return false; + } + return true; + } + @Resource private SysFileService sysFileService;