TASK:mannequin;
This commit is contained in:
@@ -114,8 +114,8 @@ public class GenerateController {
|
|||||||
|
|
||||||
@ApiOperation("喜欢或取消喜欢姿势变换生成的图片")
|
@ApiOperation("喜欢或取消喜欢姿势变换生成的图片")
|
||||||
@PostMapping("/likeOrDislike")
|
@PostMapping("/likeOrDislike")
|
||||||
public Response<Boolean> likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike) {
|
public Response<Boolean> likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike, @RequestParam("projectId") Long projectId) {
|
||||||
return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike));
|
return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike, projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "修改模特比例")
|
@ApiOperation(value = "修改模特比例")
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import java.util.Date;
|
|||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@TableName("user_like_sort")
|
@TableName("collection_sort")
|
||||||
public class UserLikeSort implements Serializable {
|
public class UserLikeSort implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@@ -21,4 +21,7 @@ public class UserLikeSort implements Serializable {
|
|||||||
private Long userLikeGroupId;
|
private Long userLikeGroupId;
|
||||||
private Long userLikeId;
|
private Long userLikeId;
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
private Long projectId;
|
||||||
|
private Long relationId;
|
||||||
|
private String relationType;
|
||||||
}
|
}
|
||||||
@@ -22,4 +22,6 @@ public class DisDesignLikeDTO {
|
|||||||
@NotBlank(message = "timeZone.cannot.be.empty")
|
@NotBlank(message = "timeZone.cannot.be.empty")
|
||||||
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
|
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
|
||||||
private String timeZone;
|
private String timeZone;
|
||||||
|
|
||||||
|
private Long projectId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,4 +7,5 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class ProductImageLikeDTO {
|
public class ProductImageLikeDTO {
|
||||||
private List<Long> toProductImageResultId;
|
private List<Long> toProductImageResultId;
|
||||||
|
private Long projectId;
|
||||||
}
|
}
|
||||||
|
|||||||
41
src/main/java/com/ai/da/model/enums/CollectionType.java
Normal file
41
src/main/java/com/ai/da/model/enums/CollectionType.java
Normal file
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
12
src/main/java/com/ai/da/model/vo/AllCollectionVO.java
Normal file
12
src/main/java/com/ai/da/model/vo/AllCollectionVO.java
Normal file
@@ -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 {
|
||||||
|
}
|
||||||
@@ -15,5 +15,5 @@ public class DesignModuleChooseVO {
|
|||||||
private Long userGroupId;
|
private Long userGroupId;
|
||||||
|
|
||||||
@ApiModelProperty("分组详细数组")
|
@ApiModelProperty("分组详细数组")
|
||||||
private List<UserLikeVO> userLikeDetails;
|
private List<? extends AllCollectionVO> userLikeDetails;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
|
|||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class PoseTransformationVO {
|
public class PoseTransformationVO implements AllCollectionVO{
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@@ -24,6 +24,7 @@ public class PoseTransformationVO {
|
|||||||
private byte isLiked;
|
private byte isLiked;
|
||||||
|
|
||||||
private String status;
|
private String status;
|
||||||
|
private String collectionType;
|
||||||
|
|
||||||
public PoseTransformationVO(Long id, String taskId, String gifUrl, String videoUrl, String firstFrameUrl, byte isLiked, String status) {
|
public PoseTransformationVO(Long id, String taskId, String gifUrl, String videoUrl, String firstFrameUrl, byte isLiked, String status) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.ai.da.mapper.primary.entity.ToProductImageResult;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ToProductImageResultVO extends ToProductImageResult {
|
public class ToProductImageResultVO extends ToProductImageResult implements AllCollectionVO{
|
||||||
private String sourceUrl;
|
private String sourceUrl;
|
||||||
|
private String collectionType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel("用户分组详情-响应")
|
@ApiModel("用户分组详情-响应")
|
||||||
public class UserLikeVO {
|
public class UserLikeVO implements AllCollectionVO{
|
||||||
|
|
||||||
@ApiModelProperty("分组详情id")
|
@ApiModelProperty("分组详情id")
|
||||||
private Long id;
|
private Long id;
|
||||||
@@ -26,4 +26,6 @@ public class UserLikeVO {
|
|||||||
|
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
private Long userLikeSortId;
|
private Long userLikeSortId;
|
||||||
|
private String relationType;
|
||||||
|
private String collectionType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.ai.da.service;
|
|||||||
|
|
||||||
import com.ai.da.common.response.PageBaseResponse;
|
import com.ai.da.common.response.PageBaseResponse;
|
||||||
import com.ai.da.mapper.primary.entity.Design;
|
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.dto.*;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
import com.ai.da.python.vo.DesignPythonObjects;
|
import com.ai.da.python.vo.DesignPythonObjects;
|
||||||
@@ -60,6 +61,10 @@ public interface DesignService extends IService<Design> {
|
|||||||
*/
|
*/
|
||||||
DesignLikeVO like(DesignLikeDTO designLikeDTO);
|
DesignLikeVO like(DesignLikeDTO designLikeDTO);
|
||||||
|
|
||||||
|
UserLikeSort addCollectionSort(Long relationId, String relationType, Long projectId);
|
||||||
|
|
||||||
|
int getNextSort(Long projectId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dislike
|
* dislike
|
||||||
*
|
*
|
||||||
@@ -68,6 +73,10 @@ public interface DesignService extends IService<Design> {
|
|||||||
*/
|
*/
|
||||||
Boolean dislike(DisDesignLikeDTO disDesignLikeDTO);
|
Boolean dislike(DisDesignLikeDTO disDesignLikeDTO);
|
||||||
|
|
||||||
|
void deleteCollectionSort(Long relationId, String relationType, Long projectId);
|
||||||
|
|
||||||
|
UserLikeSort getUserLikeSortByUserLikeId(Long userLikeId, String relationType, Long projectId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* generateHighDesign
|
* generateHighDesign
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public interface GenerateService extends IService<Generate> {
|
|||||||
|
|
||||||
List<PoseTransformationVO> getPoseTransformationResultList(Long projectId);
|
List<PoseTransformationVO> getPoseTransformationResultList(Long projectId);
|
||||||
|
|
||||||
Boolean disOrLikePose(Long transformedId, String likeOrDislike);
|
Boolean disOrLikePose(Long transformedId, String likeOrDislike, Long projectId);
|
||||||
|
|
||||||
String modifyModelProportion(ModifyModelProportionDTO proportionDTO);
|
String modifyModelProportion(ModifyModelProportionDTO proportionDTO);
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import com.ai.da.common.config.exception.BusinessException;
|
|||||||
import com.ai.da.common.constant.CommonConstant;
|
import com.ai.da.common.constant.CommonConstant;
|
||||||
import com.ai.da.common.context.UserContext;
|
import com.ai.da.common.context.UserContext;
|
||||||
import com.ai.da.common.enums.*;
|
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.response.ResultEnum;
|
||||||
import com.ai.da.common.utils.*;
|
import com.ai.da.common.utils.*;
|
||||||
import com.ai.da.mapper.primary.*;
|
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.mapper.primary.entity.Collection;
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.enums.BuildType;
|
import com.ai.da.model.enums.BuildType;
|
||||||
|
import com.ai.da.model.enums.CollectionType;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
import com.ai.da.python.PythonService;
|
import com.ai.da.python.PythonService;
|
||||||
import com.ai.da.python.vo.*;
|
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.gson.Gson;
|
|
||||||
import io.netty.util.internal.StringUtil;
|
import io.netty.util.internal.StringUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import okhttp3.*;
|
import okhttp3.*;
|
||||||
@@ -1157,9 +1156,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
}
|
}
|
||||||
String pictureName = null;
|
String pictureName = null;
|
||||||
UserLike userLike;
|
UserLike userLike;
|
||||||
Boolean isFirst = true;
|
|
||||||
if (Objects.nonNull(userGroupId)) {
|
if (Objects.nonNull(userGroupId)) {
|
||||||
isFirst = false;
|
|
||||||
UserLikeGroup userLikeGroup = userLikeGroupService.getById(userGroupId);
|
UserLikeGroup userLikeGroup = userLikeGroupService.getById(userGroupId);
|
||||||
if (Objects.isNull(userLikeGroup)) {
|
if (Objects.isNull(userLikeGroup)) {
|
||||||
throw new BusinessException("userLikeGroup.not.found");
|
throw new BusinessException("userLikeGroup.not.found");
|
||||||
@@ -1168,7 +1165,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// //相同collection直接跳过 不需要往element加元素
|
// //相同collection直接跳过 不需要往element加元素
|
||||||
// return new DesignLikeVO();
|
// return new DesignLikeVO();
|
||||||
// }
|
// }
|
||||||
List<CollectionElement> oldElements = collectionElementService.getByCollectionId(userLikeGroup.getCollectionId());
|
// List<CollectionElement> oldElements = collectionElementService.getByCollectionId(userLikeGroup.getCollectionId());
|
||||||
// if (CollectionUtil.isEmpty(oldElements)) {
|
// if (CollectionUtil.isEmpty(oldElements)) {
|
||||||
// throw new BusinessException("old.elements.not.found");
|
// throw new BusinessException("old.elements.not.found");
|
||||||
// }
|
// }
|
||||||
@@ -1205,35 +1202,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
designItem.getDesignId(), designLikeDTO.getDesignItemId(), designLikeDTO.getDesignPythonOutfitId(), tDesignPythonOutfits.get(0).getDesignUrl(), designLikeDTO.getTimeZone());
|
designItem.getDesignId(), designLikeDTO.getDesignItemId(), designLikeDTO.getDesignPythonOutfitId(), tDesignPythonOutfits.get(0).getDesignUrl(), designLikeDTO.getTimeZone());
|
||||||
}
|
}
|
||||||
userLikeService.save(userLike);
|
userLikeService.save(userLike);
|
||||||
Integer sortParam = 1;
|
|
||||||
Long userLikeSortId;
|
Long userLikeSortId;
|
||||||
if (isFirst) {
|
UserLikeSort userLikeSort = addCollectionSort(userLike.getId(), CollectionType.DESIGN.getValue(), designLikeDTO.getProjectId());
|
||||||
UserLikeSort userLikeSort = new UserLikeSort();
|
userLikeSortId = userLikeSort.getId();
|
||||||
userLikeSort.setUserLikeGroupId(userGroupId);
|
|
||||||
userLikeSort.setUserLikeId(userLike.getId());
|
|
||||||
userLikeSort.setSort(1);
|
|
||||||
userLikeSortMapper.insert(userLikeSort);
|
|
||||||
userLikeSortId = userLikeSort.getId();
|
|
||||||
}else {
|
|
||||||
QueryWrapper<UserLikeSort> qw = new QueryWrapper<>();
|
|
||||||
qw.lambda().eq(UserLikeSort::getUserLikeGroupId, userGroupId);
|
|
||||||
qw.lambda().orderByDesc(UserLikeSort::getSort);
|
|
||||||
List<UserLikeSort> 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();
|
|
||||||
}
|
|
||||||
groupDetailId = userLike.getId();
|
groupDetailId = userLike.getId();
|
||||||
String designUrl = designPythonOutfitMapper.selectById(userLike.getDesignOutfitId()).getDesignUrl();
|
String designUrl = designPythonOutfitMapper.selectById(userLike.getDesignOutfitId()).getDesignUrl();
|
||||||
if (designUrl.contains("/")) {
|
if (designUrl.contains("/")) {
|
||||||
@@ -1242,7 +1213,32 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
}
|
}
|
||||||
//修改designItem为like状态
|
//修改designItem为like状态
|
||||||
designItemService.updateLikeStatus(designLikeDTO.getDesignItemId(), (byte) 1);
|
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<UserLikeSort> qw = new QueryWrapper<>();
|
||||||
|
qw.lambda().eq(UserLikeSort::getProjectId, projectId);
|
||||||
|
List<UserLikeSort> userLikeSorts = userLikeSortMapper.selectList(qw);
|
||||||
|
if (CollectionUtils.isEmpty(userLikeSorts)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return userLikeSorts.size() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Long> validateMergeElement(List<CollectionElement> oldElements, List<DesignItemDetail> designItemDetails) {
|
private List<Long> validateMergeElement(List<CollectionElement> oldElements, List<DesignItemDetail> designItemDetails) {
|
||||||
@@ -1326,11 +1322,17 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// userLikeGroupService.removeById(userLike.getUserLikeGroupId());
|
// 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<UserLikeSort> qw = new QueryWrapper<>();
|
QueryWrapper<UserLikeSort> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(UserLikeSort::getUserLikeGroupId, userLike.getUserLikeGroupId());
|
qw.lambda().eq(UserLikeSort::getProjectId, projectId);
|
||||||
qw.lambda().orderByDesc(UserLikeSort::getSort);
|
qw.lambda().orderByDesc(UserLikeSort::getSort);
|
||||||
List<UserLikeSort> userLikeSorts = userLikeSortMapper.selectList(qw);
|
List<UserLikeSort> userLikeSorts = userLikeSortMapper.selectList(qw);
|
||||||
UserLikeSort userLikeSort = getUserLikeSortByUserLikeId(userLike.getId());
|
UserLikeSort userLikeSort = getUserLikeSortByUserLikeId(relationId, relationType, projectId);
|
||||||
Long userLikeSortId = userLikeSort.getId();
|
Long userLikeSortId = userLikeSort.getId();
|
||||||
for (UserLikeSort likeSort : userLikeSorts) {
|
for (UserLikeSort likeSort : userLikeSorts) {
|
||||||
if (Objects.equals(likeSort.getId(), userLikeSortId)) {
|
if (Objects.equals(likeSort.getId(), userLikeSortId)) {
|
||||||
@@ -1341,12 +1343,14 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
userLikeSortMapper.updateById(likeSort);
|
userLikeSortMapper.updateById(likeSort);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private UserLikeSort getUserLikeSortByUserLikeId(Long userLikeId) {
|
@Override
|
||||||
|
public UserLikeSort getUserLikeSortByUserLikeId(Long userLikeId, String relationType, Long projectId) {
|
||||||
QueryWrapper<UserLikeSort> qw = new QueryWrapper<>();
|
QueryWrapper<UserLikeSort> 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);
|
UserLikeSort userLikeSort = userLikeSortMapper.selectOne(qw);
|
||||||
return userLikeSort;
|
return userLikeSort;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.ai.da.common.utils.*;
|
|||||||
import com.ai.da.mapper.primary.*;
|
import com.ai.da.mapper.primary.*;
|
||||||
import com.ai.da.mapper.primary.entity.*;
|
import com.ai.da.mapper.primary.entity.*;
|
||||||
import com.ai.da.model.dto.*;
|
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.enums.SketchStyle;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
import com.ai.da.python.PythonService;
|
import com.ai.da.python.PythonService;
|
||||||
@@ -971,6 +972,8 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
private PoseTransformationMapper poseTransformationMapper;
|
private PoseTransformationMapper poseTransformationMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private CloudTaskMapper cloudTaskMapper;
|
private CloudTaskMapper cloudTaskMapper;
|
||||||
|
@Resource
|
||||||
|
private DesignService designService;
|
||||||
|
|
||||||
public void processPoseTransformResult(String taskId, String gifUrl, String videoUrl, String imageUrl){
|
public void processPoseTransformResult(String taskId, String gifUrl, String videoUrl, String imageUrl){
|
||||||
// 1、存储模型返回的数据
|
// 1、存储模型返回的数据
|
||||||
@@ -1045,13 +1048,15 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
return vos;
|
return vos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean disOrLikePose(Long transformedId, String likeOrDislike){
|
public Boolean disOrLikePose(Long transformedId, String likeOrDislike, Long projectId){
|
||||||
PoseTransformation poseTransformation = poseTransformationMapper.selectById(transformedId);
|
PoseTransformation poseTransformation = poseTransformationMapper.selectById(transformedId);
|
||||||
if (Objects.nonNull(poseTransformation)){
|
if (Objects.nonNull(poseTransformation)){
|
||||||
if (likeOrDislike.equals("like")){
|
if (likeOrDislike.equals("like")){
|
||||||
poseTransformation.setIsLiked((byte)1);
|
poseTransformation.setIsLiked((byte)1);
|
||||||
|
designService.addCollectionSort(poseTransformation.getId(), CollectionType.POSE_TRANSFORM.getValue(), projectId);
|
||||||
}else if (likeOrDislike.equals("dislike")){
|
}else if (likeOrDislike.equals("dislike")){
|
||||||
poseTransformation.setIsLiked((byte)0);
|
poseTransformation.setIsLiked((byte)0);
|
||||||
|
designService.deleteCollectionSort(poseTransformation.getId(), CollectionType.POSE_TRANSFORM.getValue(), projectId);
|
||||||
}
|
}
|
||||||
poseTransformation.setUpdateTime(LocalDateTime.now());
|
poseTransformation.setUpdateTime(LocalDateTime.now());
|
||||||
poseTransformationMapper.updateById(poseTransformation);
|
poseTransformationMapper.updateById(poseTransformation);
|
||||||
|
|||||||
@@ -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.AttributeRetrievalMapper;
|
||||||
import com.ai.da.mapper.secondary.entity.AttributeRecognitionJSON;
|
import com.ai.da.mapper.secondary.entity.AttributeRecognitionJSON;
|
||||||
import com.ai.da.model.dto.*;
|
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.enums.Module;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
import com.ai.da.python.PythonService;
|
import com.ai.da.python.PythonService;
|
||||||
@@ -262,7 +263,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
Project project = projectMapper.selectById(projectDTO.getId());
|
Project project = projectMapper.selectById(projectDTO.getId());
|
||||||
|
|
||||||
Long workspaceId = workspaceService.getByProjectId(project.getId());
|
Long workspaceId = workspaceService.getByProjectId(project.getId());
|
||||||
WorkspaceVO workspaceVO = workspaceService.getByIdForProject(workspaceId);
|
WorkspaceVO workspaceVO = new WorkspaceVO();
|
||||||
|
if (null != workspaceId) {
|
||||||
|
workspaceVO = workspaceService.getByIdForProject(workspaceId);
|
||||||
|
}
|
||||||
|
|
||||||
String process = project.getProcess();
|
String process = project.getProcess();
|
||||||
String name = project.getName();
|
String name = project.getName();
|
||||||
@@ -364,6 +368,8 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
private PythonService pythonService;
|
private PythonService pythonService;
|
||||||
@Resource
|
@Resource
|
||||||
private CreditsService creditsService;
|
private CreditsService creditsService;
|
||||||
|
@Resource
|
||||||
|
private PoseTransformationMapper poseTransformationMapper;
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public List<ToProductImageResult> toProduct(ToProductImageDTO toProductImageDTO) {
|
public List<ToProductImageResult> toProduct(ToProductImageDTO toProductImageDTO) {
|
||||||
@@ -584,6 +590,11 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
ToProductImageResult toProductImageResult = new ToProductImageResult();
|
ToProductImageResult toProductImageResult = new ToProductImageResult();
|
||||||
toProductImageResult.setIsLike(1);
|
toProductImageResult.setIsLike(1);
|
||||||
toProductImageResultMapper.update(toProductImageResult, qw);
|
toProductImageResultMapper.update(toProductImageResult, qw);
|
||||||
|
if (toProductImageResult.getResultType().equals("Relight")) {
|
||||||
|
designService.addCollectionSort(toProductImageResult.getId(), CollectionType.RELIGHT.getValue(), productImageLikeDTO.getProjectId());
|
||||||
|
}else {
|
||||||
|
designService.addCollectionSort(toProductImageResult.getId(), CollectionType.TO_PRODUCT_IMAGE.getValue(), productImageLikeDTO.getProjectId());
|
||||||
|
}
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
@Resource
|
@Resource
|
||||||
@@ -775,6 +786,11 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
ToProductImageResult toProductImageResult = new ToProductImageResult();
|
ToProductImageResult toProductImageResult = new ToProductImageResult();
|
||||||
toProductImageResult.setIsLike(0);
|
toProductImageResult.setIsLike(0);
|
||||||
toProductImageResultMapper.update(toProductImageResult, qw);
|
toProductImageResultMapper.update(toProductImageResult, qw);
|
||||||
|
if (toProductImageResult.getResultType().equals("Relight")) {
|
||||||
|
designService.deleteCollectionSort(toProductImageResult.getId(), CollectionType.RELIGHT.getValue(), productImageLikeDTO.getProjectId());
|
||||||
|
}else {
|
||||||
|
designService.deleteCollectionSort(toProductImageResult.getId(), CollectionType.TO_PRODUCT_IMAGE.getValue(), productImageLikeDTO.getProjectId());
|
||||||
|
}
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1503,61 +1519,95 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
moduleChooseVO.setSketchBoard(list);
|
moduleChooseVO.setSketchBoard(list);
|
||||||
}else if (module.equals(Module.design.name())) {
|
}else if (module.equals(Module.design.name())) {
|
||||||
DesignModuleChooseVO vo = new DesignModuleChooseVO();
|
DesignModuleChooseVO vo = new DesignModuleChooseVO();
|
||||||
UserLikeGroup group = getByProjectId(projectDTO.getId());
|
QueryWrapper<UserLikeSort> userLikeSortQueryWrapper = new QueryWrapper<>();
|
||||||
if (Objects.isNull(group)) {
|
userLikeSortQueryWrapper.lambda().eq(UserLikeSort::getProjectId, projectDTO.getId());
|
||||||
|
userLikeSortQueryWrapper.lambda().orderByAsc(UserLikeSort::getSort);
|
||||||
|
List<UserLikeSort> userLikeSortList = userLikeSortMapper.selectList(userLikeSortQueryWrapper);
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(userLikeSortList)) {
|
||||||
moduleChooseVO.setDesign(vo);
|
moduleChooseVO.setDesign(vo);
|
||||||
}else {
|
}else {
|
||||||
Long userGroupId = group.getId();
|
List<AllCollectionVO> list = new ArrayList<>();
|
||||||
// if (Objects.isNull(group)) {
|
for (UserLikeSort userLikeSort : userLikeSortList) {
|
||||||
// throw new BusinessException("history.not.found");
|
if (userLikeSort.getRelationType().equals(CollectionType.DESIGN.getValue())) {
|
||||||
// }
|
UserLike userLike = userLikeMapper.selectById(userLikeSort.getRelationId());
|
||||||
List<UserLikeVO> userLikeVOS = userLikeService.getGroupDetail(userGroupId);
|
UserLikeVO o = CopyUtil.copyObject(userLike, UserLikeVO.class);
|
||||||
String sex = null;
|
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<TDesignPythonOutfit> qw = new QueryWrapper<>();
|
||||||
|
qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, o.getDesignItemId());
|
||||||
|
List<TDesignPythonOutfit> tDesignPythonOutfits = designPythonOutfitMapper.selectList(qw);
|
||||||
|
if (CollectionUtil.isNotEmpty(tDesignPythonOutfits)) {
|
||||||
|
TDesignPythonOutfit tDesignPythonOutfit = tDesignPythonOutfits.get(0);
|
||||||
|
o.setDesignOutfitId(tDesignPythonOutfit.getId());
|
||||||
|
}
|
||||||
|
|
||||||
QueryWrapper<UserLikeSort> userLikeSortQw = new QueryWrapper<>();
|
|
||||||
userLikeSortQw.lambda().eq(UserLikeSort::getUserLikeGroupId, userGroupId);
|
|
||||||
List<UserLikeSort> 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<TDesignPythonOutfit> qw = new QueryWrapper<>();
|
|
||||||
qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, o.getDesignItemId());
|
|
||||||
List<TDesignPythonOutfit> tDesignPythonOutfits = designPythonOutfitMapper.selectList(qw);
|
|
||||||
if (CollectionUtil.isNotEmpty(tDesignPythonOutfits)) {
|
|
||||||
TDesignPythonOutfit tDesignPythonOutfit = tDesignPythonOutfits.get(0);
|
|
||||||
o.setDesignOutfitId(tDesignPythonOutfit.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryWrapper<UserLikeSort> userLikeSortQueryWrapper = new QueryWrapper<>();
|
|
||||||
userLikeSortQueryWrapper.lambda().eq(UserLikeSort::getUserLikeId, o.getId());
|
|
||||||
List<UserLikeSort> userLikeSorts = userLikeSortMapper.selectList(userLikeSortQueryWrapper);
|
|
||||||
if (CollectionUtil.isNotEmpty(userLikeSorts)) {
|
|
||||||
UserLikeSort userLikeSort = userLikeSorts.get(0);
|
|
||||||
o.setSort(userLikeSort.getSort());
|
o.setSort(userLikeSort.getSort());
|
||||||
o.setUserLikeSortId(userLikeSort.getId());
|
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(list);
|
||||||
vo.setUserLikeDetails(userLikeVOS);
|
|
||||||
moduleChooseVO.setDesign(vo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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())) {
|
}else if (module.equals(Module.canvas.name())) {
|
||||||
CavasModuleChooseVO vo = new CavasModuleChooseVO();
|
CavasModuleChooseVO vo = new CavasModuleChooseVO();
|
||||||
|
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
qw.lambda().eq(Workspace::getProjectId, projectId);
|
qw.lambda().eq(Workspace::getProjectId, projectId);
|
||||||
List<Workspace> workspaceList = workspaceMapper.selectList(qw);
|
List<Workspace> workspaceList = workspaceMapper.selectList(qw);
|
||||||
if (CollectionUtils.isEmpty(workspaceList)) {
|
if (CollectionUtils.isEmpty(workspaceList)) {
|
||||||
throw new BusinessException("Lack of associated workspace.");
|
return null;
|
||||||
}
|
}
|
||||||
return workspaceList.get(0).getId();
|
return workspaceList.get(0).getId();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user