KKSU
2025-03-18 664184af3e070dee665ee736caffa0297804975f
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -464,11 +464,19 @@
        myTeamVo.setMyTeamBalance(getTeamBalance(mallMembers).getMyTeamBalance());
        myTeamVo.setMyTeamCommission(getTeamBalance(mallMembers).getMyTeamCommission());
        List<MallMember> mallMembersAll = this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId());
        if(CollUtil.isNotEmpty(mallMembersAll)){
            myTeamVo.setMyTeamCntAll(mallMembersAll.size());
            myTeamVo.setMyTeamBalanceAll(getTeamBalance(mallMembersAll).getMyTeamBalance());
            myTeamVo.setMyTeamCommissionAll(getTeamBalance(mallMembersAll).getMyTeamCommission());
        }
        List<TeamListVo> teamListVos = MallMemberConversion.INSTANCE.entityToTeamListVos(mallMembers);
        teamListVos.forEach(item -> {
            item.setMyBalance(mallMemberWalletMapper.selectWalletByMemberId(item.getId()).getBalance());
            item.setLevelName(runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode,item.getLevel())).getVipName());
            List<MallMember> mallMemberRefs = this.baseMapper.selectByRefererId(item.getInviteId());
//            List<MallMember> mallMemberRefs = this.baseMapper.selectByRefererId(item.getInviteId());
            List<MallMember> mallMemberRefs = this.baseMapper.selectAllChildAgentListByInviteId(item.getInviteId());
            if(CollUtil.isEmpty(mallMemberRefs)){
                item.setMyTeamCnt(0);
                item.setMyTeamBalance(BigDecimal.ZERO);
@@ -1724,6 +1732,8 @@
         * 1:日榜 2:月榜
         * 获取当前日期
         */
        List<ApiChartVo> apiChartVos = new ArrayList<>();
        LambdaQueryWrapper<MallMoneyFlow> mallMoneyFlowLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(apiRecordDto.getType() == 1){
            DateTime dateTime = DateUtil.beginOfDay(DateUtil.date());
@@ -1732,15 +1742,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;
        }
@@ -1758,16 +1779,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;
    }