TASK:aida作品集查询;

This commit is contained in:
shahaibo
2024-10-20 13:27:45 +08:00
parent ce870b9acf
commit 77e71e3296

View File

@@ -474,19 +474,17 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
} }
} }
// 按更新时间排序 if (!Objects.isNull(query.getTagId()) && !query.getTagId().equals(0L)){
qw.lambda().orderByDesc(Portfolio::getUpdateDate); return queryPortfolioByTag(null, query.getTagId(), query.getPage(), query.getSize());
IPage<Portfolio> page; }
if (Objects.isNull(query.getAccountId()) && query.getGetMyPortfolio() != 1 && query.getGetLikePortfolio() != 1) {
List<Portfolio> topThree = new ArrayList<>();
List<Long> excludeIds = new ArrayList<>(); // 存放需要排除的 ID 列表
/*List<Portfolio> topThree = new ArrayList<>();
List<Long> excludeIds = new ArrayList<>(); // 存放需要排除的 ID 列表
// 获取前三点赞和前三浏览的作品集,并将其排除在分页查询之外 // 获取前三点赞和前三浏览的作品集,并将其排除在分页查询之外
if (query.getPage() == 1 && (query.getGetMyPortfolio() != 1 && query.getGetLikePortfolio() != 1)) { if (query.getPage() == 1 && (query.getGetMyPortfolio() != 1 || query.getGetLikePortfolio() != 1)) {
// 获取前三点赞的作品集 ID // 获取前三点赞的作品集 ID
List<Long> topThreeLike = getTopThreeLikeFromRedis(RedisUtil.PORTFOLIO_LIKE_KEY); List<Long> topThreeLike = getTopThreeLikeFromRedis(RedisUtil.PORTFOLIO_LIKE_KEY);
List<Long> topThreeView = getTopThreeViewFromRedis(RedisUtil.PORTFOLIO_VIEW_KEY, topThreeLike); List<Long> topThreeView = getTopThreeViewFromRedis(RedisUtil.PORTFOLIO_VIEW_KEY, topThreeLike);
// 获取前三点赞的作品集 // 获取前三点赞的作品集
if (!CollectionUtils.isEmpty(topThreeLike)) { if (!CollectionUtils.isEmpty(topThreeLike)) {
QueryWrapper<Portfolio> queryLike = new QueryWrapper<>(); QueryWrapper<Portfolio> queryLike = new QueryWrapper<>();
@@ -495,7 +493,6 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
topThree.addAll(topThreeLikePortfolio); topThree.addAll(topThreeLikePortfolio);
excludeIds.addAll(topThreeLike); // 添加到排除 ID 列表 excludeIds.addAll(topThreeLike); // 添加到排除 ID 列表
} }
// 获取前三浏览的作品集 // 获取前三浏览的作品集
if (!CollectionUtils.isEmpty(topThreeView)) { if (!CollectionUtils.isEmpty(topThreeView)) {
QueryWrapper<Portfolio> queryView = new QueryWrapper<>(); QueryWrapper<Portfolio> queryView = new QueryWrapper<>();
@@ -505,29 +502,23 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
excludeIds.addAll(topThreeView); // 添加到排除 ID 列表 excludeIds.addAll(topThreeView); // 添加到排除 ID 列表
} }
} }
// 在正常分页查询中排除前三点赞和前三浏览的作品集 // 在正常分页查询中排除前三点赞和前三浏览的作品集
if (!CollectionUtils.isEmpty(excludeIds)) { if (!CollectionUtils.isEmpty(excludeIds)) {
qw.lambda().notIn(Portfolio::getId, excludeIds); qw.lambda().notIn(Portfolio::getId, excludeIds);
} }*/
// 按更新时间排序
qw.lambda().orderByDesc(Portfolio::getUpdateDate);
// 执行分页查询 // 执行分页查询
page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw); IPage<Portfolio> page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
// 如果前三点赞和浏览不为空,将它们添加到分页查询的结果最前面 /*// 如果前三点赞和浏览不为空,将它们添加到分页查询的结果最前面
if (!topThree.isEmpty()) { if (!topThree.isEmpty()) {
List<Portfolio> records = page.getRecords(); List<Portfolio> records = page.getRecords();
if (!CollectionUtils.isEmpty(records)) {
records.addAll(0, topThree); // 添加到查询结果的开头 records.addAll(0, topThree); // 添加到查询结果的开头
}else {
records = topThree;
}
page.setRecords(records); page.setRecords(records);
} }*/
}else {
// 执行分页查询
page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
}
// 将 Portfolio 转换为 PortfolioVO 并进行相关处理 // 将 Portfolio 转换为 PortfolioVO 并进行相关处理
IPage<PortfolioVO> convert = page.convert((Function<Portfolio, PortfolioVO>) portfolio -> { IPage<PortfolioVO> convert = page.convert((Function<Portfolio, PortfolioVO>) portfolio -> {