TASK:AiDA design like sort

This commit is contained in:
shahaibo
2025-01-06 10:46:51 +08:00
parent 214c93923c
commit 5ea8e851d7
11 changed files with 159 additions and 11 deletions

View File

@@ -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;
}
}

View File

@@ -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;