From bfa8ebd37423d4669bc4fc2cd53675ebd83e7835 Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Tue, 29 Oct 2024 14:18:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E7=89=B9=E8=89=B2=E4=B8=93=E5=8C=BA?= =?UTF-8?q?=E4=B8=93=E9=A1=B9=E9=A1=B9=E7=9B=AE):=20=E5=AE=9A=E5=88=B6?= =?UTF-8?q?=E6=B3=9B=E5=9C=A8=E4=B8=93=E5=8C=BA=E5=BC=80=E6=BA=90=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=B1=95=E7=A4=BA=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 项目根据活跃度排名列表需支持根据项目分类筛选 Signed-off-by: OTTO <731554297@qq.com> --- .../common/redis/service/RedisService.java | 11 ++---- .../common/controller/OpenController.java | 4 ++- .../project/service/IZoneProjectService.java | 2 +- .../service/impl/ZoneProjectServiceImpl.java | 36 +++++++++---------- 4 files changed, 23 insertions(+), 30 deletions(-) diff --git a/microservices-common/microservices-common-redis/src/main/java/com/microservices/common/redis/service/RedisService.java b/microservices-common/microservices-common-redis/src/main/java/com/microservices/common/redis/service/RedisService.java index 5d413ae18..dc45ff385 100644 --- a/microservices-common/microservices-common-redis/src/main/java/com/microservices/common/redis/service/RedisService.java +++ b/microservices-common/microservices-common-redis/src/main/java/com/microservices/common/redis/service/RedisService.java @@ -43,15 +43,8 @@ public class RedisService redisTemplate.opsForZSet().remove(key, value); } - public Set getSortSetBySize(final String key, final Integer offset, final Integer count) { - RedisZSetCommands.Limit limit = new RedisZSetCommands.Limit(); - if (offset != null && count != null) { - limit.offset(offset); - limit.count(count); - } else { - limit = RedisZSetCommands.Limit.unlimited(); - } - return redisTemplate.opsForZSet().reverseRangeByLex(key, RedisZSetCommands.Range.unbounded(), limit); + public Set getSortSetBySize(final String key) { + return redisTemplate.opsForZSet().reverseRangeByLex(key, RedisZSetCommands.Range.unbounded(), RedisZSetCommands.Limit.unlimited()); } public Long getSortSetRank(final String key, final T value) { diff --git a/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/common/controller/OpenController.java b/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/common/controller/OpenController.java index 3f83d1881..3845a6eb0 100644 --- a/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/common/controller/OpenController.java +++ b/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/common/controller/OpenController.java @@ -175,7 +175,9 @@ public class OpenController extends BaseController { ZoneProjectOpenSearchVo zoneProjectOpenSearchVo, Integer pageNum, Integer pageSize) { ZoneProjectSearchVo zoneProjectSearchVo = zoneProjectOpenSearchVo.toZoneProjectSearchVo(zoneId); - return zoneProjectService.selectZoneProjectByScoreList(zoneProjectSearchVo, true, pageNum, pageSize); + return getAllGenericsDataTableToPage( + zoneProjectService.selectZoneProjectByScoreList(zoneProjectSearchVo, true, pageNum, pageSize) + ); } /** diff --git a/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/IZoneProjectService.java b/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/IZoneProjectService.java index c4faf3e72..914ceef6e 100644 --- a/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/IZoneProjectService.java +++ b/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/IZoneProjectService.java @@ -111,5 +111,5 @@ public interface IZoneProjectService { */ Integer selectHomepageCount(Long zoneId); - GenericsTableDataInfo selectZoneProjectByScoreList(ZoneProjectSearchVo zoneProjectSearchVo, boolean isOpen, Integer pageNum, Integer pageSize); + List selectZoneProjectByScoreList(ZoneProjectSearchVo zoneProjectSearchVo, boolean isOpen, Integer pageNum, Integer pageSize); } diff --git a/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/impl/ZoneProjectServiceImpl.java b/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/impl/ZoneProjectServiceImpl.java index be55925c6..d1fbeff2e 100644 --- a/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/impl/ZoneProjectServiceImpl.java +++ b/microservices-modules/microservices-modules-zone/src/main/java/com/microservices/zone/project/service/impl/ZoneProjectServiceImpl.java @@ -620,33 +620,32 @@ public class ZoneProjectServiceImpl implements IZoneProjectService { } @Override - public GenericsTableDataInfo selectZoneProjectByScoreList(ZoneProjectSearchVo zoneProjectSearchVo, boolean isOpen, Integer pageNum, Integer pageSize) { + public List selectZoneProjectByScoreList(ZoneProjectSearchVo zoneProjectSearchVo, boolean isOpen, Integer pageNum, Integer pageSize) { if (isOpen && zoneProjectSearchVo.getZoneId() == null) { throw new ServiceException("查询项目列表时,请指定专区Id"); } - List zoneProjectList = new ArrayList<>(); - List zoneProjectDataList = new ArrayList<>(); zoneDetailService.selectZoneDetailById(zoneProjectSearchVo.getZoneId()); - zoneProjectSearchVo.setIsOpen(isOpen); + + // 获取专区下活跃度列表 Date now = DateUtils.getNowDate(); String lastWeekMonday = DateUtils.mondayOfLastWeek(now, 1); String lastWeekKey = CacheConstants.getZoneProjectSortByScore(lastWeekMonday, zoneProjectSearchVo.getZoneId()); String secondLastWeekMonday = DateUtils.mondayOfLastWeek(now, 2); String secondLastWeekKey = CacheConstants.getZoneProjectSortByScore(secondLastWeekMonday, zoneProjectSearchVo.getZoneId()); - Integer offset = null; - Integer limit = null; - if (pageNum != null && pageSize != null) { - offset = (pageNum - 1) * pageSize; - limit = pageSize; - } - Set gitlinkProjectIdSet = redisService.getSortSetBySize(lastWeekKey, offset, limit); + Set gitlinkProjectIdSet = redisService.getSortSetBySize(lastWeekKey); + + zoneProjectSearchVo.setIsOpen(isOpen); + List zoneProjectList = zoneProjectMapper.selectZoneProjectList(zoneProjectSearchVo); + List zoneProjectAndScoreList = new ArrayList<>(); + for (Long gitlinkProjectId : gitlinkProjectIdSet) { - ZoneProject zoneProject = zoneProjectMapper.selectZoneProjectByGitLinkProjectIdAndZoneId(gitlinkProjectId, zoneProjectSearchVo.getZoneId()); - if (zoneProject != null) { - zoneProjectList.add(zoneProject); - } + zoneProjectList.stream().filter(x -> gitlinkProjectId.equals(x.getGitlinkProjectId())).findFirst().ifPresent(zoneProjectAndScoreList::add); } - List zoneProjectDataVoList = toZoneProjectDataVoList(zoneProjectList); + + List zoneProjectJSONList = new ArrayList<>(); + + + List zoneProjectDataVoList = toZoneProjectDataVoList(zoneProjectAndScoreList); for (ZoneProjectDataVo zoneProjectDataVo : zoneProjectDataVoList) { Long gitlinkProjectId = zoneProjectDataVo.getGitlinkProjectId(); JSONObject jsonObject = JSONObject.from(zoneProjectDataVo); @@ -660,9 +659,8 @@ public class ZoneProjectServiceImpl implements IZoneProjectService { } catch (Exception e) { logger.error("获取项目gitlink信息失败", e); } - zoneProjectDataList.add(jsonObject); + zoneProjectJSONList.add(jsonObject); } - Long count = redisService.getSortSetCount(lastWeekKey); - return new GenericsTableDataInfo<>(zoneProjectDataList, count); + return zoneProjectJSONList; } }