Merge remote-tracking branch 'origin/dev/dev' into dev/dev

This commit is contained in:
shahaibo
2024-10-06 14:33:44 +08:00
4 changed files with 51 additions and 46 deletions

View File

@@ -6,9 +6,7 @@ public enum SketchStyle implements IEnumDisplay{
MEDIUM("2"),
THIN("3"),
CUSTOM("Custom");
THIN("3");
private String value;

View File

@@ -430,7 +430,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
// 查询用户的作品集
if (query.getGetMyPortfolio() == 1) {
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());
}
@@ -444,50 +444,59 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
}
}
List<Portfolio> topThree = new ArrayList<>();
List<Long> excludeIds = new ArrayList<>(); // 存放需要排除的 ID 列表
// 获取前三点赞和前三浏览的作品集,并将其排除在分页查询之外
if (query.getPage() == 1 && (query.getGetMyPortfolio() != 1 && query.getGetLikePortfolio() != 1)) {
// 获取前三点赞的作品集 ID
List<Long> topThreeLike = getTopThreeLikeFromRedis(RedisUtil.PORTFOLIO_LIKE_KEY);
List<Long> topThreeView = getTopThreeViewFromRedis(RedisUtil.PORTFOLIO_VIEW_KEY, topThreeLike);
// 获取前三点赞的作品集
if (!CollectionUtils.isEmpty(topThreeLike)) {
QueryWrapper<Portfolio> queryLike = new QueryWrapper<>();
queryLike.in("id", topThreeLike);
List<Portfolio> topThreeLikePortfolio = baseMapper.selectList(queryLike);
topThree.addAll(topThreeLikePortfolio);
excludeIds.addAll(topThreeLike); // 添加到排除 ID 列表
}
// 获取前三浏览的作品集
if (!CollectionUtils.isEmpty(topThreeView)) {
QueryWrapper<Portfolio> queryView = new QueryWrapper<>();
queryView.in("id", topThreeView);
List<Portfolio> topThreeViewPortfolio = baseMapper.selectList(queryView);
topThree.addAll(topThreeViewPortfolio);
excludeIds.addAll(topThreeView); // 添加到排除 ID 列表
}
}
// 在正常分页查询中排除前三点赞和前三浏览的作品集
if (!CollectionUtils.isEmpty(excludeIds)) {
qw.lambda().notIn(Portfolio::getId, excludeIds);
}
// 按更新时间排序
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<Long> excludeIds = new ArrayList<>(); // 存放需要排除的 ID 列表
// 执行分页查询
IPage<Portfolio> page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
// 获取前三点赞和前三浏览的作品集,并将其排除在分页查询之外
if (query.getPage() == 1 && (query.getGetMyPortfolio() != 1 && query.getGetLikePortfolio() != 1)) {
// 获取前三点赞的作品集 ID
List<Long> topThreeLike = getTopThreeLikeFromRedis(RedisUtil.PORTFOLIO_LIKE_KEY);
List<Long> topThreeView = getTopThreeViewFromRedis(RedisUtil.PORTFOLIO_VIEW_KEY, topThreeLike);
// 如果前三点赞和浏览不为空,将它们添加到分页查询的结果最前面
if (!topThree.isEmpty() && (query.getGetMyPortfolio() != 1 && query.getGetLikePortfolio() != 1)) {
List<Portfolio> records = page.getRecords();
records.addAll(0, topThree); // 添加到查询结果的开头
page.setRecords(records);
// 获取前三点赞的作品集
if (!CollectionUtils.isEmpty(topThreeLike)) {
QueryWrapper<Portfolio> queryLike = new QueryWrapper<>();
queryLike.in("id", topThreeLike);
List<Portfolio> topThreeLikePortfolio = baseMapper.selectList(queryLike);
topThree.addAll(topThreeLikePortfolio);
excludeIds.addAll(topThreeLike); // 添加到排除 ID 列表
}
// 获取前三浏览的作品集
if (!CollectionUtils.isEmpty(topThreeView)) {
QueryWrapper<Portfolio> queryView = new QueryWrapper<>();
queryView.in("id", topThreeView);
List<Portfolio> topThreeViewPortfolio = baseMapper.selectList(queryView);
topThree.addAll(topThreeViewPortfolio);
excludeIds.addAll(topThreeView); // 添加到排除 ID 列表
}
}
// 在正常分页查询中排除前三点赞和前三浏览的作品集
if (!CollectionUtils.isEmpty(excludeIds)) {
qw.lambda().notIn(Portfolio::getId, excludeIds);
}
// 执行分页查询
page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
// 如果前三点赞和浏览不为空,将它们添加到分页查询的结果最前面
if (!topThree.isEmpty()) {
List<Portfolio> records = page.getRecords();
if (!CollectionUtils.isEmpty(records)) {
records.addAll(0, topThree); // 添加到查询结果的开头
}else {
records = topThree;
}
page.setRecords(records);
}
}else {
// 执行分页查询
page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
}
// 将 Portfolio 转换为 PortfolioVO 并进行相关处理

View File

@@ -214,7 +214,6 @@ POCKET=Pocket
THICK=Thick Lines
MEDIUM=Medium Lines
THIN=Thin lines
CUSTOM=Custom
GENERATE=Generate Sketch
EXTRACT=Extract Sketch

View File

@@ -207,7 +207,6 @@ POCKET=口袋
THICK=粗线条
MEDIUM=中线条
THIN=细线条
CUSTOM=自定义
GENERATE=生成线稿
EXTRACT=提取线稿