From 276994759e73952075f82c0bd917811bdff5bc87 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Thu, 29 May 2025 16:17:39 +0800 Subject: [PATCH] =?UTF-8?q?TASK:mannequin=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/GenerateController.java | 4 +- .../mapper/primary/entity/UserLikeSort.java | 5 +- .../com/ai/da/model/dto/DisDesignLikeDTO.java | 2 + .../ai/da/model/dto/ProductImageLikeDTO.java | 1 + .../com/ai/da/model/enums/CollectionType.java | 41 +++++ .../com/ai/da/model/vo/AllCollectionVO.java | 12 ++ .../ai/da/model/vo/DesignModuleChooseVO.java | 2 +- .../ai/da/model/vo/PoseTransformationVO.java | 3 +- .../da/model/vo/ToProductImageResultVO.java | 3 +- .../java/com/ai/da/model/vo/UserLikeVO.java | 4 +- .../java/com/ai/da/service/DesignService.java | 9 ++ .../com/ai/da/service/GenerateService.java | 2 +- .../ai/da/service/impl/DesignServiceImpl.java | 82 +++++----- .../da/service/impl/GenerateServiceImpl.java | 7 +- .../impl/UserLikeGroupServiceImpl.java | 148 ++++++++++++------ .../da/service/impl/WorkspaceServiceImpl.java | 2 +- 16 files changed, 229 insertions(+), 98 deletions(-) create mode 100644 src/main/java/com/ai/da/model/enums/CollectionType.java create mode 100644 src/main/java/com/ai/da/model/vo/AllCollectionVO.java diff --git a/src/main/java/com/ai/da/controller/GenerateController.java b/src/main/java/com/ai/da/controller/GenerateController.java index bfa8a259..372f0eae 100644 --- a/src/main/java/com/ai/da/controller/GenerateController.java +++ b/src/main/java/com/ai/da/controller/GenerateController.java @@ -114,8 +114,8 @@ public class GenerateController { @ApiOperation("喜欢或取消喜欢姿势变换生成的图片") @PostMapping("/likeOrDislike") - public Response likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike) { - return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike)); + public Response likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike, @RequestParam("projectId") Long projectId) { + return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike, projectId)); } @ApiOperation(value = "修改模特比例") diff --git a/src/main/java/com/ai/da/mapper/primary/entity/UserLikeSort.java b/src/main/java/com/ai/da/mapper/primary/entity/UserLikeSort.java index 3e733d3c..0a474605 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/UserLikeSort.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/UserLikeSort.java @@ -12,7 +12,7 @@ import java.util.Date; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@TableName("user_like_sort") +@TableName("collection_sort") public class UserLikeSort implements Serializable { private static final long serialVersionUID = 1L; @@ -21,4 +21,7 @@ public class UserLikeSort implements Serializable { private Long userLikeGroupId; private Long userLikeId; private Integer sort; + private Long projectId; + private Long relationId; + private String relationType; } \ No newline at end of file diff --git a/src/main/java/com/ai/da/model/dto/DisDesignLikeDTO.java b/src/main/java/com/ai/da/model/dto/DisDesignLikeDTO.java index 35c0d163..0fca9ce6 100644 --- a/src/main/java/com/ai/da/model/dto/DisDesignLikeDTO.java +++ b/src/main/java/com/ai/da/model/dto/DisDesignLikeDTO.java @@ -22,4 +22,6 @@ public class DisDesignLikeDTO { @NotBlank(message = "timeZone.cannot.be.empty") @ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") private String timeZone; + + private Long projectId; } 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 4b4c8302..eb6768b6 100644 --- a/src/main/java/com/ai/da/model/dto/ProductImageLikeDTO.java +++ b/src/main/java/com/ai/da/model/dto/ProductImageLikeDTO.java @@ -7,4 +7,5 @@ import java.util.List; @Data public class ProductImageLikeDTO { private List toProductImageResultId; + private Long projectId; } diff --git a/src/main/java/com/ai/da/model/enums/CollectionType.java b/src/main/java/com/ai/da/model/enums/CollectionType.java new file mode 100644 index 00000000..cdecc06b --- /dev/null +++ b/src/main/java/com/ai/da/model/enums/CollectionType.java @@ -0,0 +1,41 @@ +package com.ai.da.model.enums; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum CollectionType implements IEnumDisplay { + DESIGN("Design"), + TO_PRODUCT_IMAGE("ToProductImage"), + RELIGHT("Relight"), + POSE_TRANSFORM("PoseTransfer") + ; + + private String value; + + CollectionType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String getValue() { + return this.value; + } + + public static CollectionType getAgeGroup(String value) { + for (CollectionType group : values()) { + if (group.value.equalsIgnoreCase(value)) { + return group; + } + } + throw new IllegalArgumentException("No matching constant for [" + value + "]"); + } + + public static boolean isValidName(String name) { + for (CollectionType ageGroup : CollectionType.values()) { + if (ageGroup.name().equalsIgnoreCase(name)) { + return true; + } + } + return false; + } +} diff --git a/src/main/java/com/ai/da/model/vo/AllCollectionVO.java b/src/main/java/com/ai/da/model/vo/AllCollectionVO.java new file mode 100644 index 00000000..f8c620ce --- /dev/null +++ b/src/main/java/com/ai/da/model/vo/AllCollectionVO.java @@ -0,0 +1,12 @@ +package com.ai.da.model.vo; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") +@JsonSubTypes({ + @JsonSubTypes.Type(value = UserLikeVO.class, name = "userLike") + +}) +public interface AllCollectionVO { +} diff --git a/src/main/java/com/ai/da/model/vo/DesignModuleChooseVO.java b/src/main/java/com/ai/da/model/vo/DesignModuleChooseVO.java index be7b3d4a..05735bde 100644 --- a/src/main/java/com/ai/da/model/vo/DesignModuleChooseVO.java +++ b/src/main/java/com/ai/da/model/vo/DesignModuleChooseVO.java @@ -15,5 +15,5 @@ public class DesignModuleChooseVO { private Long userGroupId; @ApiModelProperty("分组详细数组") - private List userLikeDetails; + private List userLikeDetails; } 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 e7349e32..05e37e11 100644 --- a/src/main/java/com/ai/da/model/vo/PoseTransformationVO.java +++ b/src/main/java/com/ai/da/model/vo/PoseTransformationVO.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor -public class PoseTransformationVO { +public class PoseTransformationVO implements AllCollectionVO{ private Long id; @@ -24,6 +24,7 @@ public class PoseTransformationVO { private byte isLiked; private String status; + private String collectionType; public PoseTransformationVO(Long id, String taskId, String gifUrl, String videoUrl, String firstFrameUrl, byte isLiked, String status) { this.id = id; diff --git a/src/main/java/com/ai/da/model/vo/ToProductImageResultVO.java b/src/main/java/com/ai/da/model/vo/ToProductImageResultVO.java index c0c495c0..505a7c7c 100644 --- a/src/main/java/com/ai/da/model/vo/ToProductImageResultVO.java +++ b/src/main/java/com/ai/da/model/vo/ToProductImageResultVO.java @@ -4,6 +4,7 @@ import com.ai.da.mapper.primary.entity.ToProductImageResult; import lombok.Data; @Data -public class ToProductImageResultVO extends ToProductImageResult { +public class ToProductImageResultVO extends ToProductImageResult implements AllCollectionVO{ private String sourceUrl; + private String collectionType; } diff --git a/src/main/java/com/ai/da/model/vo/UserLikeVO.java b/src/main/java/com/ai/da/model/vo/UserLikeVO.java index db4d4638..9c88d1fe 100644 --- a/src/main/java/com/ai/da/model/vo/UserLikeVO.java +++ b/src/main/java/com/ai/da/model/vo/UserLikeVO.java @@ -6,7 +6,7 @@ import lombok.Data; @Data @ApiModel("用户分组详情-响应") -public class UserLikeVO { +public class UserLikeVO implements AllCollectionVO{ @ApiModelProperty("分组详情id") private Long id; @@ -26,4 +26,6 @@ public class UserLikeVO { private Integer sort; private Long userLikeSortId; + private String relationType; + private String collectionType; } diff --git a/src/main/java/com/ai/da/service/DesignService.java b/src/main/java/com/ai/da/service/DesignService.java index 7e72bd93..9de2ef13 100644 --- a/src/main/java/com/ai/da/service/DesignService.java +++ b/src/main/java/com/ai/da/service/DesignService.java @@ -2,6 +2,7 @@ package com.ai.da.service; import com.ai.da.common.response.PageBaseResponse; import com.ai.da.mapper.primary.entity.Design; +import com.ai.da.mapper.primary.entity.UserLikeSort; import com.ai.da.model.dto.*; import com.ai.da.model.vo.*; import com.ai.da.python.vo.DesignPythonObjects; @@ -60,6 +61,10 @@ public interface DesignService extends IService { */ DesignLikeVO like(DesignLikeDTO designLikeDTO); + UserLikeSort addCollectionSort(Long relationId, String relationType, Long projectId); + + int getNextSort(Long projectId); + /** * dislike * @@ -68,6 +73,10 @@ public interface DesignService extends IService { */ Boolean dislike(DisDesignLikeDTO disDesignLikeDTO); + void deleteCollectionSort(Long relationId, String relationType, Long projectId); + + UserLikeSort getUserLikeSortByUserLikeId(Long userLikeId, String relationType, Long projectId); + /** * generateHighDesign * diff --git a/src/main/java/com/ai/da/service/GenerateService.java b/src/main/java/com/ai/da/service/GenerateService.java index 76459bf0..1bfc1245 100644 --- a/src/main/java/com/ai/da/service/GenerateService.java +++ b/src/main/java/com/ai/da/service/GenerateService.java @@ -54,7 +54,7 @@ public interface GenerateService extends IService { List getPoseTransformationResultList(Long projectId); - Boolean disOrLikePose(Long transformedId, String likeOrDislike); + Boolean disOrLikePose(Long transformedId, String likeOrDislike, Long projectId); String modifyModelProportion(ModifyModelProportionDTO proportionDTO); diff --git a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java index 31fcdb8b..915da6ee 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -7,7 +7,6 @@ import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.constant.CommonConstant; import com.ai.da.common.context.UserContext; import com.ai.da.common.enums.*; -import com.ai.da.common.response.PageBaseResponse; import com.ai.da.common.response.ResultEnum; import com.ai.da.common.utils.*; import com.ai.da.mapper.primary.*; @@ -15,6 +14,7 @@ import com.ai.da.mapper.primary.entity.*; import com.ai.da.mapper.primary.entity.Collection; import com.ai.da.model.dto.*; import com.ai.da.model.enums.BuildType; +import com.ai.da.model.enums.CollectionType; import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; import com.ai.da.python.vo.*; @@ -30,7 +30,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.base.Function; import com.google.common.collect.Lists; -import com.google.gson.Gson; import io.netty.util.internal.StringUtil; import lombok.extern.slf4j.Slf4j; import okhttp3.*; @@ -1157,9 +1156,7 @@ public class DesignServiceImpl extends ServiceImpl impleme } String pictureName = null; UserLike userLike; - Boolean isFirst = true; if (Objects.nonNull(userGroupId)) { - isFirst = false; UserLikeGroup userLikeGroup = userLikeGroupService.getById(userGroupId); if (Objects.isNull(userLikeGroup)) { throw new BusinessException("userLikeGroup.not.found"); @@ -1168,7 +1165,7 @@ public class DesignServiceImpl extends ServiceImpl impleme // //相同collection直接跳过 不需要往element加元素 // return new DesignLikeVO(); // } - List oldElements = collectionElementService.getByCollectionId(userLikeGroup.getCollectionId()); +// List oldElements = collectionElementService.getByCollectionId(userLikeGroup.getCollectionId()); // if (CollectionUtil.isEmpty(oldElements)) { // throw new BusinessException("old.elements.not.found"); // } @@ -1205,35 +1202,9 @@ public class DesignServiceImpl extends ServiceImpl impleme designItem.getDesignId(), designLikeDTO.getDesignItemId(), designLikeDTO.getDesignPythonOutfitId(), tDesignPythonOutfits.get(0).getDesignUrl(), designLikeDTO.getTimeZone()); } userLikeService.save(userLike); - Integer sortParam = 1; Long userLikeSortId; - if (isFirst) { - UserLikeSort userLikeSort = new UserLikeSort(); - userLikeSort.setUserLikeGroupId(userGroupId); - userLikeSort.setUserLikeId(userLike.getId()); - userLikeSort.setSort(1); - userLikeSortMapper.insert(userLikeSort); - userLikeSortId = userLikeSort.getId(); - }else { - QueryWrapper qw = new QueryWrapper<>(); - qw.lambda().eq(UserLikeSort::getUserLikeGroupId, userGroupId); - qw.lambda().orderByDesc(UserLikeSort::getSort); - List userLikeSorts = userLikeSortMapper.selectList(qw); - UserLikeSort userLikeSort = new UserLikeSort(); - if (CollectionUtils.isEmpty(userLikeSorts)) { - userLikeSort.setUserLikeGroupId(userGroupId); - userLikeSort.setUserLikeId(userLike.getId()); - userLikeSort.setSort(1); - }else { - Integer sort = userLikeSorts.get(0).getSort(); - userLikeSort.setUserLikeGroupId(userGroupId); - userLikeSort.setUserLikeId(userLike.getId()); - userLikeSort.setSort(sort + 1); - } - userLikeSortMapper.insert(userLikeSort); - sortParam = userLikeSort.getSort(); - userLikeSortId = userLikeSort.getId(); - } + UserLikeSort userLikeSort = addCollectionSort(userLike.getId(), CollectionType.DESIGN.getValue(), designLikeDTO.getProjectId()); + userLikeSortId = userLikeSort.getId(); groupDetailId = userLike.getId(); String designUrl = designPythonOutfitMapper.selectById(userLike.getDesignOutfitId()).getDesignUrl(); if (designUrl.contains("/")) { @@ -1242,7 +1213,32 @@ public class DesignServiceImpl extends ServiceImpl impleme } //修改designItem为like状态 designItemService.updateLikeStatus(designLikeDTO.getDesignItemId(), (byte) 1); - return new DesignLikeVO(userLikeSortId, userGroupId, groupDetailId, pictureName, userLike.getId(), sortParam); + return new DesignLikeVO(userLikeSortId, userGroupId, groupDetailId, pictureName, userLike.getId(), userLikeSort.getSort()); + } + + @Override + public UserLikeSort addCollectionSort(Long relationId, String relationType, Long projectId) { + int sort = getNextSort(projectId); + UserLikeSort userLikeSort = new UserLikeSort(); +// userLikeSort.setUserLikeGroupId(userGroupId); +// userLikeSort.setUserLikeId(relationId); + userLikeSort.setProjectId(projectId); + userLikeSort.setRelationId(relationId); + userLikeSort.setRelationType(relationType); + userLikeSort.setSort(sort); + userLikeSortMapper.insert(userLikeSort); + return userLikeSort; + } + + @Override + public int getNextSort(Long projectId) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(UserLikeSort::getProjectId, projectId); + List userLikeSorts = userLikeSortMapper.selectList(qw); + if (CollectionUtils.isEmpty(userLikeSorts)) { + return 1; + } + return userLikeSorts.size() + 1; } private List validateMergeElement(List oldElements, List designItemDetails) { @@ -1326,11 +1322,17 @@ public class DesignServiceImpl extends ServiceImpl impleme // userLikeGroupService.removeById(userLike.getUserLikeGroupId()); } + deleteCollectionSort(userLike.getId(), CollectionType.DESIGN.getValue(), disDesignLikeDTO.getProjectId()); + return Boolean.TRUE; + } + + @Override + public void deleteCollectionSort(Long relationId, String relationType, Long projectId) { QueryWrapper qw = new QueryWrapper<>(); - qw.lambda().eq(UserLikeSort::getUserLikeGroupId, userLike.getUserLikeGroupId()); + qw.lambda().eq(UserLikeSort::getProjectId, projectId); qw.lambda().orderByDesc(UserLikeSort::getSort); List userLikeSorts = userLikeSortMapper.selectList(qw); - UserLikeSort userLikeSort = getUserLikeSortByUserLikeId(userLike.getId()); + UserLikeSort userLikeSort = getUserLikeSortByUserLikeId(relationId, relationType, projectId); Long userLikeSortId = userLikeSort.getId(); for (UserLikeSort likeSort : userLikeSorts) { if (Objects.equals(likeSort.getId(), userLikeSortId)) { @@ -1341,12 +1343,14 @@ public class DesignServiceImpl extends ServiceImpl impleme userLikeSortMapper.updateById(likeSort); } } - return Boolean.TRUE; } - private UserLikeSort getUserLikeSortByUserLikeId(Long userLikeId) { + @Override + public UserLikeSort getUserLikeSortByUserLikeId(Long userLikeId, String relationType, Long projectId) { QueryWrapper qw = new QueryWrapper<>(); - qw.lambda().eq(UserLikeSort::getUserLikeId, userLikeId); + qw.lambda().eq(UserLikeSort::getRelationId, userLikeId); + qw.lambda().eq(UserLikeSort::getRelationType, relationType); + qw.lambda().eq(UserLikeSort::getProjectId, projectId); UserLikeSort userLikeSort = userLikeSortMapper.selectOne(qw); return userLikeSort; } 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 f0cb04e5..419d5ebd 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -9,6 +9,7 @@ import com.ai.da.common.utils.*; import com.ai.da.mapper.primary.*; import com.ai.da.mapper.primary.entity.*; import com.ai.da.model.dto.*; +import com.ai.da.model.enums.CollectionType; import com.ai.da.model.enums.SketchStyle; import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; @@ -971,6 +972,8 @@ public class GenerateServiceImpl extends ServiceImpl i private PoseTransformationMapper poseTransformationMapper; @Resource private CloudTaskMapper cloudTaskMapper; + @Resource + private DesignService designService; public void processPoseTransformResult(String taskId, String gifUrl, String videoUrl, String imageUrl){ // 1、存储模型返回的数据 @@ -1045,13 +1048,15 @@ public class GenerateServiceImpl extends ServiceImpl i return vos; } - public Boolean disOrLikePose(Long transformedId, String likeOrDislike){ + public Boolean disOrLikePose(Long transformedId, String likeOrDislike, Long projectId){ PoseTransformation poseTransformation = poseTransformationMapper.selectById(transformedId); if (Objects.nonNull(poseTransformation)){ if (likeOrDislike.equals("like")){ poseTransformation.setIsLiked((byte)1); + designService.addCollectionSort(poseTransformation.getId(), CollectionType.POSE_TRANSFORM.getValue(), projectId); }else if (likeOrDislike.equals("dislike")){ poseTransformation.setIsLiked((byte)0); + designService.deleteCollectionSort(poseTransformation.getId(), CollectionType.POSE_TRANSFORM.getValue(), projectId); } poseTransformation.setUpdateTime(LocalDateTime.now()); poseTransformationMapper.updateById(poseTransformation); 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 f5d6c54a..e37c3db2 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -17,6 +17,7 @@ import com.ai.da.mapper.primary.entity.Collection; import com.ai.da.mapper.secondary.AttributeRetrievalMapper; import com.ai.da.mapper.secondary.entity.AttributeRecognitionJSON; import com.ai.da.model.dto.*; +import com.ai.da.model.enums.CollectionType; import com.ai.da.model.enums.Module; import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; @@ -262,7 +263,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl toProduct(ToProductImageDTO toProductImageDTO) { @@ -584,6 +590,11 @@ public class UserLikeGroupServiceImpl extends ServiceImpl userLikeSortQueryWrapper = new QueryWrapper<>(); + userLikeSortQueryWrapper.lambda().eq(UserLikeSort::getProjectId, projectDTO.getId()); + userLikeSortQueryWrapper.lambda().orderByAsc(UserLikeSort::getSort); + List userLikeSortList = userLikeSortMapper.selectList(userLikeSortQueryWrapper); + + if (CollectionUtils.isEmpty(userLikeSortList)) { moduleChooseVO.setDesign(vo); }else { - Long userGroupId = group.getId(); -// if (Objects.isNull(group)) { -// throw new BusinessException("history.not.found"); -// } - List userLikeVOS = userLikeService.getGroupDetail(userGroupId); - String sex = null; + List list = new ArrayList<>(); + for (UserLikeSort userLikeSort : userLikeSortList) { + if (userLikeSort.getRelationType().equals(CollectionType.DESIGN.getValue())) { + UserLike userLike = userLikeMapper.selectById(userLikeSort.getRelationId()); + UserLikeVO o = CopyUtil.copyObject(userLike, UserLikeVO.class); + TDesignPythonOutfit tDesignPythonOutfit1 = designPythonOutfitMapper.selectById(o.getDesignOutfitId()); + o.setUrl(tDesignPythonOutfit1.getDesignUrl()); + if (o.getUrl().contains("/")) { + int index = o.getUrl().lastIndexOf("/"); + o.setPictureName(o.getUrl().substring(index + 1)); + } + o.setDesignOutfitUrl(minioUtil.getPreSignedUrl(o.getUrl(), 24 * 60)); + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, o.getDesignItemId()); + List tDesignPythonOutfits = designPythonOutfitMapper.selectList(qw); + if (CollectionUtil.isNotEmpty(tDesignPythonOutfits)) { + TDesignPythonOutfit tDesignPythonOutfit = tDesignPythonOutfits.get(0); + o.setDesignOutfitId(tDesignPythonOutfit.getId()); + } - QueryWrapper userLikeSortQw = new QueryWrapper<>(); - userLikeSortQw.lambda().eq(UserLikeSort::getUserLikeGroupId, userGroupId); - List userLikeSortList = userLikeSortMapper.selectList(userLikeSortQw); - if (CollectionUtil.isEmpty(userLikeSortList)) { - Integer sort = 1; - for (UserLikeVO userLikeVO : userLikeVOS) { - UserLikeSort userLikeSort = new UserLikeSort(); - userLikeSort.setUserLikeId(userLikeVO.getId()); - userLikeSort.setUserLikeGroupId(userGroupId); - userLikeSort.setSort(sort); - userLikeSortMapper.insert(userLikeSort); - sort ++; - } - } - - userLikeVOS.forEach(o -> { - TDesignPythonOutfit tDesignPythonOutfit1 = designPythonOutfitMapper.selectById(o.getDesignOutfitId()); - o.setUrl(tDesignPythonOutfit1.getDesignUrl()); - if (o.getUrl().contains("/")) { - int index = o.getUrl().lastIndexOf("/"); - o.setPictureName(o.getUrl().substring(index + 1)); - } - o.setDesignOutfitUrl(minioUtil.getPreSignedUrl(o.getUrl(), 24 * 60)); - QueryWrapper qw = new QueryWrapper<>(); - qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, o.getDesignItemId()); - List tDesignPythonOutfits = designPythonOutfitMapper.selectList(qw); - if (CollectionUtil.isNotEmpty(tDesignPythonOutfits)) { - TDesignPythonOutfit tDesignPythonOutfit = tDesignPythonOutfits.get(0); - o.setDesignOutfitId(tDesignPythonOutfit.getId()); - } - - QueryWrapper userLikeSortQueryWrapper = new QueryWrapper<>(); - userLikeSortQueryWrapper.lambda().eq(UserLikeSort::getUserLikeId, o.getId()); - List userLikeSorts = userLikeSortMapper.selectList(userLikeSortQueryWrapper); - if (CollectionUtil.isNotEmpty(userLikeSorts)) { - UserLikeSort userLikeSort = userLikeSorts.get(0); o.setSort(userLikeSort.getSort()); o.setUserLikeSortId(userLikeSort.getId()); + o.setRelationType(userLikeSort.getRelationType()); + o.setCollectionType(CollectionType.DESIGN.getValue()); + list.add(o); + } else if (userLikeSort.getRelationType().equals(CollectionType.TO_PRODUCT_IMAGE.getValue())) { + ToProductImageResult toProductImageResult = toProductImageResultMapper.selectById(userLikeSort.getRelationId()); + toProductImageResult.setUrl(minioUtil.getPreSignedUrl(toProductImageResult.getUrl(), 24 * 60)); + ToProductImageResultVO toProductImageResultVO = CopyUtil.copyObject(toProductImageResult, ToProductImageResultVO.class); + + if (toProductImageResultVO.getElementType().equals("ProductElement")) { + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResultVO.getElementId()); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductElement.getUrl(), 24 * 60)); + }else if ((toProductImageResultVO.getElementType().equals("DesignOutfit"))) { + TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageResultVO.getElementId()); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); + }else { + ToProductImageResult toProductImageResult1 = toProductImageResultMapper.selectById(toProductImageResultVO.getElementId()); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductImageResult1.getUrl(), 24 * 60)); + } + toProductImageResultVO.setCollectionType(CollectionType.TO_PRODUCT_IMAGE.getValue()); + list.add(toProductImageResultVO); + } else if (userLikeSort.getRelationType().equals(CollectionType.RELIGHT.getValue())) { + ToProductImageResult toProductImageResult = toProductImageResultMapper.selectById(userLikeSort.getRelationId()); + toProductImageResult.setUrl(minioUtil.getPreSignedUrl(toProductImageResult.getUrl(), 24 * 60)); + ToProductImageResultVO toProductImageResultVO = CopyUtil.copyObject(toProductImageResult, ToProductImageResultVO.class); + + if (toProductImageResultVO.getElementType().equals("ProductElement")) { + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResultVO.getElementId()); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductElement.getUrl(), 24 * 60)); + }else if ((toProductImageResultVO.getElementType().equals("DesignOutfit"))) { + TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageResultVO.getElementId()); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); + }else { + ToProductImageResult toProductImageResult1 = toProductImageResultMapper.selectById(toProductImageResultVO.getElementId()); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductImageResult1.getUrl(), 24 * 60)); + } + toProductImageResultVO.setCollectionType(CollectionType.RELIGHT.getValue()); + list.add(toProductImageResultVO); + } else if (userLikeSort.getRelationType().equals(CollectionType.POSE_TRANSFORM.getValue())) { + PoseTransformation item = poseTransformationMapper.selectById(userLikeSort.getRelationId()); + PoseTransformationVO poseTransformationVO = new PoseTransformationVO(); + poseTransformationVO.setId(item.getId()); + poseTransformationVO.setProductImage(minioUtil.getPreSignedUrl(item.getProductImage(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + poseTransformationVO.setGifUrl(minioUtil.getPreSignedUrl(item.getGifUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + poseTransformationVO.setVideoUrl(minioUtil.getPreSignedUrl(item.getVideoUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + poseTransformationVO.setFirstFrameUrl(minioUtil.getPreSignedUrl(item.getFirstFrameUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + poseTransformationVO.setIsLiked(item.getIsLiked()); + poseTransformationVO.setCollectionType(CollectionType.POSE_TRANSFORM.getValue()); + list.add(poseTransformationVO); } - }); - vo.setUserGroupId(userGroupId); - vo.setUserLikeDetails(userLikeVOS); - moduleChooseVO.setDesign(vo); + } + vo.setUserLikeDetails(list); } + + UserLikeGroup group = getByProjectId(projectDTO.getId()); + if (Objects.nonNull(group)) { + Long userGroupId = group.getId(); + vo.setUserGroupId(userGroupId); + } + moduleChooseVO.setDesign(vo); }else if (module.equals(Module.canvas.name())) { CavasModuleChooseVO vo = new CavasModuleChooseVO(); diff --git a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java index 1536ffd3..c2258695 100644 --- a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java @@ -806,7 +806,7 @@ public class WorkspaceServiceImpl extends ServiceImpl workspaceList = workspaceMapper.selectList(qw); if (CollectionUtils.isEmpty(workspaceList)) { - throw new BusinessException("Lack of associated workspace."); + return null; } return workspaceList.get(0).getId(); }