diff --git a/src/main/java/com/ai/da/service/CollectionSortService.java b/src/main/java/com/ai/da/service/CollectionSortService.java index 2b91126f..3dd20d9f 100644 --- a/src/main/java/com/ai/da/service/CollectionSortService.java +++ b/src/main/java/com/ai/da/service/CollectionSortService.java @@ -7,6 +7,8 @@ public interface CollectionSortService { CollectionSort addCollectionSort(Long relationId, String relationType, Long projectId, Long collectionSortParentId); + CollectionSort queryCollectionSortByRelation(Long relationId, String relationType, Long projectId); + int getNextSort(Long projectId, Long parentId); void deleteCollectionSort(Long relationId, String relationType, Long projectId, Long parentId); diff --git a/src/main/java/com/ai/da/service/UserLikeGroupService.java b/src/main/java/com/ai/da/service/UserLikeGroupService.java index 6e4d59c4..ab0ce46f 100644 --- a/src/main/java/com/ai/da/service/UserLikeGroupService.java +++ b/src/main/java/com/ai/da/service/UserLikeGroupService.java @@ -121,4 +121,6 @@ public interface UserLikeGroupService extends IService { Boolean toProductImageElementDelete(Long id); ToProductElementVO convertRelightElement(Long id); + + Long getUnlikedResultParentId(ToProductImageResult toProductImageResult, String url); } diff --git a/src/main/java/com/ai/da/service/UserLikeService.java b/src/main/java/com/ai/da/service/UserLikeService.java index 3d3629d0..fcaad4a4 100644 --- a/src/main/java/com/ai/da/service/UserLikeService.java +++ b/src/main/java/com/ai/da/service/UserLikeService.java @@ -31,4 +31,6 @@ public interface UserLikeService extends IService { UserLikeGroup getUserLikeGroupByProjectId(Long id); List getByUserLikeGroupId(Long id); + + UserLike getByDesignOutfitId(Long designOutfitId); } 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 09852ad0..d430e6ff 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -125,6 +125,8 @@ public class GenerateServiceImpl extends ServiceImpl i private AccountService accountService; @Resource private APIGenerateService apiGenerateService; + @Resource + private UserLikeGroupService userLikeGroupService; @Value("${redis.key.orderForGenerate}") private String consumptionOrderKey; @@ -1513,10 +1515,12 @@ public class GenerateServiceImpl extends ServiceImpl i poseTransformation.setIsLiked((byte) 1); poseTransformation.setUpdateTime(LocalDateTime.now()); poseTransformationMapper.updateById(poseTransformation); - Integer sort = addPoseTransferLike(poseTransformDTO, poseTransformation.getId()); + CollectionSort collectionSort = addPoseTransferLike(poseTransformDTO, poseTransformation.getId()); Integer reSort = collectionSortService.rearrangeChildSort(poseTransformation.getId(), CollectionType.POSE_TRANSFORM.getValue(), poseTransformDTO.getParentId(), poseTransformDTO.getUserLikeSortId()); - toProductImageResultVO.setSort(Objects.isNull(reSort) ? sort : reSort); + toProductImageResultVO.setSort(Objects.isNull(reSort) ? Objects.isNull(collectionSort) ? null : collectionSort.getSort() : reSort); + toProductImageResultVO.setParentId(poseTransformDTO.getParentId()); + toProductImageResultVO.setUserLikeSortId(Objects.isNull(collectionSort) ? null : collectionSort.getId()); } else if (Objects.nonNull(poseTransformDTO.getIsDefaultLike()) && Objects.nonNull(poseTransformDTO.getParentId())) { toProductImageResultVO.setParentId(poseTransformDTO.getParentId()); } @@ -1534,12 +1538,11 @@ public class GenerateServiceImpl extends ServiceImpl i throw new BusinessException("pose transformation error", ResultEnum.ERROR.getCode()); } - private Integer addPoseTransferLike(PoseTransformDTO poseTransformDTO, Long poseTransformationId) { + private CollectionSort addPoseTransferLike(PoseTransformDTO poseTransformDTO, Long poseTransformationId) { if (Objects.nonNull(poseTransformDTO.getParentId()) && !poseTransformDTO.getParentId().equals(0L)) { - CollectionSort collectionSort = disOrLikePose(poseTransformationId, "like", + return disOrLikePose(poseTransformationId, "like", poseTransformDTO.getProjectId(), poseTransformDTO.getParentId()); - return collectionSort.getSort(); } return null; } @@ -1693,6 +1696,9 @@ public class GenerateServiceImpl extends ServiceImpl i if (productResult != null) { Long parentId = collectionSortService.getParentIdByElementIdAndElementType( productResult.getId(), CollectionType.TO_PRODUCT_IMAGE.getValue()); + if (Objects.isNull(parentId)){ + parentId = userLikeGroupService.getUnlikedResultParentId(null, poseTransformation.getProductImage()); + } vo.setParentId(parentId); vo.setId(poseTransformation.getId()); vo.setModelName(poseTransformation.getModelName()); 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 40a75624..5d0fc274 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -520,12 +520,14 @@ public class UserLikeGroupServiceImpl extends ServiceImpl= 1; } + // 获取未被like的to product\relight的parentId + public Long getUnlikedResultParentId(ToProductImageResult toProductImageResult, String url) { + // 卫语句处理null情况 + if (toProductImageResult == null && StringUtil.isNullOrEmpty(url)) { + return null; + } + + // 如果需要查询结果对象 + if (toProductImageResult == null) { + toProductImageResult = toProductImageResultMapper.selectOne( + new QueryWrapper().eq("url", url)); + } + + // 卫语句处理查询结果为空的情况 + if (toProductImageResult == null) { + return null; + } + + // 根据不同类型处理 + String elementType = toProductImageResult.getElementType(); + if ("DesignOutfit".equals(elementType)) { + return handleDesignOutfitCase(toProductImageResult); + } else if ("ToProductImage".equals(elementType)) { + // 两种情况 resultType : ToProductImage | Relight + return handleToProductImageCase(toProductImageResult); + } + + return null; + } + + private Long handleDesignOutfitCase(ToProductImageResult result) { + UserLike userLike = userLikeService.getByDesignOutfitId(result.getElementId()); + if (userLike == null) { + return null; + } + + CollectionSort collectionSort = collectionSortService.queryCollectionSortByRelation( + userLike.getId(), "Design", result.getProjectId()); + return collectionSort != null ? collectionSort.getId() : null; + } + + private Long handleToProductImageCase(ToProductImageResult result) { + CollectionSort collectionSort = collectionSortService.queryCollectionSortByRelation( + result.getElementId(), result.getResultType(), result.getProjectId()); + if (Objects.isNull(collectionSort) && result.getElementType().equals("ToProductImage")){ + ToProductImageResult toProductImageResult = toProductImageResultMapper.selectById(result.getElementId()); + return getUnlikedResultParentId(toProductImageResult, null); + } + return collectionSort != null ? collectionSort.getParentId() : null; + } + @Override @Transactional public ModuleChooseVO saveModuleContent(ModuleSaveDTO moduleSaveDTO) { diff --git a/src/main/java/com/ai/da/service/impl/UserLikeServiceImpl.java b/src/main/java/com/ai/da/service/impl/UserLikeServiceImpl.java index 04bd6a05..bc8ecd6b 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeServiceImpl.java @@ -122,4 +122,16 @@ public class UserLikeServiceImpl extends ServiceImpl i return userLikeList; } + @Override + public UserLike getByDesignOutfitId(Long designOutfitId){ + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(UserLike::getDesignOutfitId, designOutfitId); + // 有脏数据 + List userLikes = baseMapper.selectList(qw); + if (!userLikes.isEmpty()){ + return userLikes.get(0); + } + return null; + } + }