获取指定用户的个人主页作品

This commit is contained in:
2024-10-06 14:27:55 +08:00
parent 8899a3a6bb
commit b8d64f1f28

View File

@@ -430,7 +430,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
// 查询用户的作品集 // 查询用户的作品集
if (query.getGetMyPortfolio() == 1) { if (query.getGetMyPortfolio() == 1) {
qw.lambda().eq(Portfolio::getAccountId, userHolder.getId()); qw.lambda().eq(Portfolio::getAccountId, userHolder.getId());
} else if (!Objects.isNull(query.getAccountId())) { } else if (!Objects.isNull(query.getAccountId()) && !query.getAccountId().equals(0L)) {
qw.lambda().eq(Portfolio::getAccountId, query.getAccountId()); qw.lambda().eq(Portfolio::getAccountId, query.getAccountId());
} }
@@ -444,6 +444,10 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
} }
} }
// 按更新时间排序
qw.lambda().orderByDesc(Portfolio::getUpdateDate);
IPage<Portfolio> page;
if (Objects.isNull(query.getAccountId()) && query.getGetMyPortfolio() != 1 && query.getGetLikePortfolio() != 1) {
List<Portfolio> topThree = new ArrayList<>(); List<Portfolio> topThree = new ArrayList<>();
List<Long> excludeIds = new ArrayList<>(); // 存放需要排除的 ID 列表 List<Long> excludeIds = new ArrayList<>(); // 存放需要排除的 ID 列表
@@ -477,18 +481,23 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
qw.lambda().notIn(Portfolio::getId, excludeIds); qw.lambda().notIn(Portfolio::getId, excludeIds);
} }
// 按更新时间排序
qw.lambda().orderByDesc(Portfolio::getUpdateDate);
// 执行分页查询 // 执行分页查询
IPage<Portfolio> page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw); page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
// 如果前三点赞和浏览不为空,将它们添加到分页查询的结果最前面 // 如果前三点赞和浏览不为空,将它们添加到分页查询的结果最前面
if (!topThree.isEmpty() && (query.getGetMyPortfolio() != 1 && query.getGetLikePortfolio() != 1)) { 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 -> {