TASK:AiDA design like sort
This commit is contained in:
@@ -71,6 +71,12 @@ public class DesignController {
|
||||
return Response.success(designService.dislike(disDesignLikeDTO));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Design sort")
|
||||
@PostMapping("/sort")
|
||||
public Response<Boolean> sort(@Valid @RequestBody UserLikeSortDTO userLikeSortDTO) {
|
||||
return Response.success(designService.sort(userLikeSortDTO));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "sketchBoard upload generate design前裁剪")
|
||||
@PostMapping("/sketchBoardsBoundingBox")
|
||||
public Response<List<CollectionSketchVO>> sketchesBoundingBox(@Valid @RequestBody ReDesignCollectionDTO reDesignCollectionDTO) {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ai.da.mapper.primary;
|
||||
|
||||
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||
import com.ai.da.mapper.primary.entity.UserLikeSort;
|
||||
|
||||
public interface UserLikeSortMapper extends CommonMapper<UserLikeSort> {
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.ai.da.mapper.primary.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("user_like_sort")
|
||||
public class UserLikeSort implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
private Long userLikeGroupId;
|
||||
private Long userLikeId;
|
||||
private Integer sort;
|
||||
}
|
||||
13
src/main/java/com/ai/da/model/dto/UserLikeSortDTO.java
Normal file
13
src/main/java/com/ai/da/model/dto/UserLikeSortDTO.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.ai.da.model.dto;
|
||||
|
||||
import com.ai.da.mapper.primary.entity.UserLikeSort;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class UserLikeSortDTO{
|
||||
private Long userLikeGroupId;
|
||||
|
||||
List<UserLikeSort> userLikeSortList;
|
||||
}
|
||||
@@ -19,6 +19,8 @@ public class DesignLikeVO {
|
||||
|
||||
private String pictureName;
|
||||
|
||||
private Long userLikeId;
|
||||
|
||||
public DesignLikeVO() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,4 +23,6 @@ public class UserLikeVO {
|
||||
@ApiModelProperty("图片路径")
|
||||
private String designOutfitUrl;
|
||||
private String pictureName;
|
||||
|
||||
private Integer sort;
|
||||
}
|
||||
|
||||
@@ -268,7 +268,8 @@ public class PythonService {
|
||||
DesignPythonObject pythonObject = createDesignPythonObject(elementVO, designPictureType, systemScale, singleOverall, switchCategory, i);
|
||||
|
||||
// 如果当前对象与已组装的对象重复,则跳过当前组装
|
||||
if (assembledObjects.contains(pythonObject)) {
|
||||
DesignPythonObject designPythonObjectCopy = getCopy(pythonObject);
|
||||
if (assembledObjects.contains(designPythonObjectCopy)) {
|
||||
if (lastAssembledObject != null && assembledObjects.contains(lastAssembledObject)) {
|
||||
// 如果当前组装与前一个组装的对象重复,且前一个组装也重复,结束组装
|
||||
System.out.println("当前组装的对象与前两个组装的对象重复,结束组装。");
|
||||
@@ -279,8 +280,8 @@ public class PythonService {
|
||||
}
|
||||
|
||||
// 将当前对象添加到已组装的集合中,并记录
|
||||
assembledObjects.add(pythonObject);
|
||||
lastAssembledObject = pythonObject; // 更新上一次组装的对象
|
||||
assembledObjects.add(designPythonObjectCopy);
|
||||
lastAssembledObject = designPythonObjectCopy; // 更新上一次组装的对象
|
||||
|
||||
objects.add(pythonObject);
|
||||
redisUtil.addProcessId(processId, i + 1);
|
||||
@@ -288,6 +289,26 @@ public class PythonService {
|
||||
return designPythonObjects;
|
||||
}
|
||||
|
||||
private DesignPythonObject getCopy(DesignPythonObject pythonObject) {
|
||||
DesignPythonObject designPythonObjectCopy = CopyUtil.copyObject(pythonObject, DesignPythonObject.class);
|
||||
designPythonObjectCopy.setObjectSign(null);
|
||||
DesignPythonBasic basic = designPythonObjectCopy.getBasic();
|
||||
basic.setSave_name(null);
|
||||
designPythonObjectCopy.setBasic(basic);
|
||||
List<DesignPythonItem> items = designPythonObjectCopy.getItems();
|
||||
List<DesignPythonItem> itemsCopy = new ArrayList<>();
|
||||
for (DesignPythonItem item : items) {
|
||||
item.setElementId(null);
|
||||
item.setIcon(null);
|
||||
item.setBusinessId(null);
|
||||
item.setImage_id(null);
|
||||
item.setImageId(null);
|
||||
itemsCopy.add(item);
|
||||
}
|
||||
designPythonObjectCopy.setItems(itemsCopy);
|
||||
return designPythonObjectCopy;
|
||||
}
|
||||
|
||||
private void updateSketchNumbers(CurrentDesignPictureTypeEnum designPictureType, int[] sketchNumbers) {
|
||||
switch (designPictureType) {
|
||||
case PIN:
|
||||
@@ -320,7 +341,9 @@ public class PythonService {
|
||||
DesignPythonObject pythonObject = new DesignPythonObject();
|
||||
pythonObject.setItems(coverToDesignPythonItemNew(elementVO, designPictureType, systemScale));
|
||||
pythonObject.setBasic(coverToBasic(pythonObject.getItems().get(0), singleOverall, switchCategory, elementVO.getDesignLibraryModelPoint()));
|
||||
pythonObject.setObjectSign(elementVO.getRequestIdList().get(i));
|
||||
if (CollectionUtil.isNotEmpty(elementVO.getRequestIdList())) {
|
||||
pythonObject.setObjectSign(elementVO.getRequestIdList().get(i));
|
||||
}
|
||||
return pythonObject;
|
||||
}
|
||||
|
||||
|
||||
@@ -110,4 +110,6 @@ public interface DesignService extends IService<Design> {
|
||||
String designCloud(DesignCollectionDTO designDTO);
|
||||
|
||||
void processDesignBatch(Map<String, Object> designBatchResult);
|
||||
|
||||
Boolean sort(UserLikeSortDTO userLikeSortDTO);
|
||||
}
|
||||
|
||||
@@ -8,10 +8,7 @@ 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.utils.*;
|
||||
import com.ai.da.mapper.primary.DesignBatchMapper;
|
||||
import com.ai.da.mapper.primary.DesignMapper;
|
||||
import com.ai.da.mapper.primary.GenerateDetailMapper;
|
||||
import com.ai.da.mapper.primary.TDesignPythonOutfitMapper;
|
||||
import com.ai.da.mapper.primary.*;
|
||||
import com.ai.da.mapper.primary.entity.*;
|
||||
import com.ai.da.mapper.primary.entity.Collection;
|
||||
import com.ai.da.model.dto.*;
|
||||
@@ -114,6 +111,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
@Resource
|
||||
private DesignBatchMapper designBatchMapper;
|
||||
|
||||
@Resource
|
||||
private UserLikeSortMapper userLikeSortMapper;
|
||||
|
||||
private final ConcurrentHashMap<String, Map<String, Object>> designContext = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
@@ -1040,7 +1040,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> 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");
|
||||
@@ -1086,6 +1088,24 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
designItem.getDesignId(), designLikeDTO.getDesignItemId(), designLikeDTO.getDesignPythonOutfitId(), tDesignPythonOutfits.get(0).getDesignUrl(), designLikeDTO.getTimeZone());
|
||||
}
|
||||
userLikeService.save(userLike);
|
||||
if (isFirst) {
|
||||
UserLikeSort userLikeSort = new UserLikeSort();
|
||||
userLikeSort.setUserLikeGroupId(userGroupId);
|
||||
userLikeSort.setUserLikeId(userLike.getId());
|
||||
userLikeSort.setSort(1);
|
||||
userLikeSortMapper.insert(userLikeSort);
|
||||
}else {
|
||||
QueryWrapper<UserLikeSort> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(UserLikeSort::getUserLikeGroupId, userGroupId);
|
||||
qw.lambda().orderByDesc(UserLikeSort::getSort);
|
||||
List<UserLikeSort> userLikeSorts = userLikeSortMapper.selectList(qw);
|
||||
Integer sort = userLikeSorts.get(0).getSort();
|
||||
UserLikeSort userLikeSort = new UserLikeSort();
|
||||
userLikeSort.setUserLikeGroupId(userGroupId);
|
||||
userLikeSort.setUserLikeId(userLike.getId());
|
||||
userLikeSort.setSort(sort + 1);
|
||||
userLikeSortMapper.insert(userLikeSort);
|
||||
}
|
||||
groupDetailId = userLike.getId();
|
||||
String designUrl = designPythonOutfitMapper.selectById(userLike.getDesignOutfitId()).getDesignUrl();
|
||||
if (designUrl.contains("/")) {
|
||||
@@ -1094,7 +1114,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
}
|
||||
//修改designItem为like状态
|
||||
designItemService.updateLikeStatus(designLikeDTO.getDesignItemId(), (byte) 1);
|
||||
return new DesignLikeVO(userGroupId, groupDetailId, pictureName);
|
||||
return new DesignLikeVO(userGroupId, groupDetailId, pictureName, userLike.getId());
|
||||
}
|
||||
|
||||
private List<Long> validateMergeElement(List<CollectionElement> oldElements, List<DesignItemDetail> designItemDetails) {
|
||||
@@ -1176,9 +1196,32 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
//group 下面没有元素时候 直接删除
|
||||
// userLikeGroupService.removeById(userLike.getUserLikeGroupId());
|
||||
}
|
||||
|
||||
QueryWrapper<UserLikeSort> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(UserLikeSort::getUserLikeGroupId, userLike.getUserLikeGroupId());
|
||||
qw.lambda().orderByDesc(UserLikeSort::getSort);
|
||||
List<UserLikeSort> userLikeSorts = userLikeSortMapper.selectList(qw);
|
||||
UserLikeSort userLikeSort = getUserLikeSortByUserLikeId(userLike.getId());
|
||||
Long userLikeSortId = userLikeSort.getId();
|
||||
for (UserLikeSort likeSort : userLikeSorts) {
|
||||
if (Objects.equals(likeSort.getId(), userLikeSortId)) {
|
||||
userLikeSortMapper.deleteById(likeSort);
|
||||
break;
|
||||
}else {
|
||||
likeSort.setSort(likeSort.getSort() - 1);
|
||||
userLikeSortMapper.updateById(likeSort);
|
||||
}
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
private UserLikeSort getUserLikeSortByUserLikeId(Long userLikeId) {
|
||||
QueryWrapper<UserLikeSort> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(UserLikeSort::getUserLikeId, userLikeId);
|
||||
UserLikeSort userLikeSort = userLikeSortMapper.selectOne(qw);
|
||||
return userLikeSort;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateHighDesign(GenerateHighDesignDTO generateHighDesignDTO) {
|
||||
DesignItem designItem = designItemService.getById(generateHighDesignDTO.getDesignItemId());
|
||||
@@ -1874,4 +1917,15 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public Boolean sort(UserLikeSortDTO userLikeSortDTO) {
|
||||
// QueryWrapper<UserLikeSort> qw = new QueryWrapper<>();
|
||||
// qw.lambda().eq(UserLikeSort::getUserLikeGroupId, userLikeSortDTO.getUserLikeGroupId());
|
||||
// userLikeSortMapper.delete(qw);
|
||||
for (UserLikeSort userLikeSort : userLikeSortDTO.getUserLikeSortList()) {
|
||||
userLikeSortMapper.updateById(userLikeSort);
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -86,6 +86,8 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
private AttributeRetrievalMapper attributeRetrievalMapper;
|
||||
@Resource
|
||||
private ProductImageAttributeMapper productImageAttributeMapper;
|
||||
@Resource
|
||||
private UserLikeSortMapper userLikeSortMapper;
|
||||
|
||||
@Override
|
||||
public void deleteUserGroup(Long userGroupId) {
|
||||
@@ -166,6 +168,13 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
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)) {
|
||||
o.setSort(userLikeSorts.get(0).getSort());
|
||||
}
|
||||
});
|
||||
UserLikeCollectionVO userLikeCollection = collectionService.chooseCollection(group.getCollectionId());
|
||||
Integer beenPublished = 0;
|
||||
|
||||
Reference in New Issue
Block a user