From e6be1946f0a669385d5c27743c3d96113af6bf5a Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 14 Jan 2025 09:43:21 +0800 Subject: [PATCH] fix(mall): 修复直推成员缓存逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index af1c944..5391021 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -297,6 +297,7 @@ mallMemberVo.setWithdrawState(runVip.getWithdrawState()); mallMemberVo.setInsideState(runVip.getInsideState()); mallMemberVo.setCommissionState(runVip.getCommissionState()); + mallMemberVo.setGrowState(runVip.getGrowState()); MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); @@ -1723,6 +1724,8 @@ * 1:日榜 2:月榜 * 获取当前日期 */ + + List<ApiChartVo> apiChartVos = new ArrayList<>(); LambdaQueryWrapper<MallMoneyFlow> mallMoneyFlowLambdaQueryWrapper = new LambdaQueryWrapper<>(); if(apiRecordDto.getType() == 1){ DateTime dateTime = DateUtil.beginOfDay(DateUtil.date()); @@ -1731,15 +1734,26 @@ DateTime dateTime = DateUtil.beginOfMonth(DateUtil.date()); mallMoneyFlowLambdaQueryWrapper.ge(MallMoneyFlow :: getCreatedTime , dateTime); } + List<MallMember> mallMembers = this.baseMapper.selectList( + new LambdaQueryWrapper<MallMember>() + .select(MallMember::getId) + ); + if(CollUtil.isEmpty(mallMembers)){ + return apiChartVos; + } + //获取mallMembers的全部id + List<Long> ids = mallMembers.stream().map(MallMember::getId).collect(Collectors.toList()); mallMoneyFlowLambdaQueryWrapper.eq(MallMoneyFlow :: getFlowType, FlowTypeEnum.SCORE.getValue()); mallMoneyFlowLambdaQueryWrapper.in( MallMoneyFlow :: getType, RunVipMoneyFlowTypeEnum.GET_SCORE.getValue(), RunVipMoneyFlowTypeEnum.SYS_SCORE.getValue() ); + mallMoneyFlowLambdaQueryWrapper.in( + MallMoneyFlow :: getMemberId, + ids + ); List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(mallMoneyFlowLambdaQueryWrapper); - - List<ApiChartVo> apiChartVos = new ArrayList<>(); if(CollUtil.isEmpty(mallMoneyFlows)){ return apiChartVos; } @@ -1757,16 +1771,38 @@ // 对 Map 按照 amount 的绝对值之和从大到小排序,并取前十个结果 List<Map.Entry<Long, BigDecimal>> sortedList = sumByMemberId.entrySet().stream() .sorted((entry1, entry2) -> entry2.getValue().compareTo(entry1.getValue())) - .limit(10) + .limit(20) .collect(Collectors.toList()); - sortedList.forEach(entry -> { + + for (Map.Entry<Long, BigDecimal> entry : sortedList){ + if(apiChartVos.size() >= 10){ + break; + } ApiChartVo apiChartVo = new ApiChartVo(); MallMember mallMember = this.baseMapper.selectById(entry.getKey()); + if(null == mallMember){ + continue; + } + apiChartVo.setName(hidePhoneNumber(mallMember.getName())); apiChartVo.setAvatar(mallMember.getAvatar()); apiChartVo.setScore(entry.getValue()); apiChartVos.add(apiChartVo); - }); + } +// sortedList.forEach(entry -> { +// ApiChartVo apiChartVo = new ApiChartVo(); +// MallMember mallMember = this.baseMapper.selectById(entry.getKey()); +// if(null == mallMember){ +// apiChartVo.setName(hidePhoneNumber("runStep")); +// apiChartVo.setAvatar(null); +// apiChartVo.setScore(entry.getValue()); +// }else{ +// apiChartVo.setName(hidePhoneNumber(mallMember.getName())); +// apiChartVo.setAvatar(mallMember.getAvatar()); +// apiChartVo.setScore(entry.getValue()); +// } +// apiChartVos.add(apiChartVo); +// }); return apiChartVos; } -- Gitblit v1.9.1