KKSU
2024-06-25 dc76fa3e61cc6ed31a82d44002e89059b4ca8a88
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -37,8 +37,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -294,23 +293,70 @@
    }
    @Override
    public IPage<AdminAgentVo> getAgentList(AgentDto agentDto, QueryRequest request) {
        Page<AdminAgentVo> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<AdminAgentVo> adminAgentVos = this.baseMapper.getAgentListInPage(page, agentDto);
        List<AdminAgentVo> records = adminAgentVos.getRecords();
        if(CollUtil.isNotEmpty(records)){
            for(AdminAgentVo adminAgentVo : records){
                String inviteId = adminAgentVo.getInviteId();
                //直接下级
                List<MallMember> mallMembers = mallMemberMapper.selectChildAgentListByInviteId(inviteId);
                adminAgentVo.setMemberNum(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size());
    public FebsResponse getAgentList(AgentDto agentDto, QueryRequest request) {
        List<AdminMallMemberVo> adminMallMemberVos = new ArrayList<>();
        if(StrUtil.isEmpty(agentDto.getAccountLogin())){
            return new FebsResponse().success().data(adminMallMemberVos);
        }
        String accountLogin = agentDto.getAccountLogin();
        MallMember mallMember = this.baseMapper.selectByAccountLogin(accountLogin);
        if(ObjectUtil.isEmpty(mallMember)){
            return new FebsResponse().success().data(adminMallMemberVos);
        }
                //获取总数
                List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId);
                adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size());
        ArrayList<Long> memberIdList = new ArrayList<>();
        memberIdList.add(mallMember.getId());
        QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>();
        objectQueryWrapper.eq("referrer_id",mallMember.getInviteId());
        List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper);
        if(CollUtil.isNotEmpty(mallMembers)){
            for(MallMember directMember : mallMembers){
                //第一代
                memberIdList.add(directMember.getId());
                QueryWrapper<MallMember> directWrapper = new QueryWrapper<>();
                directWrapper.eq("referrer_id",directMember.getInviteId());
                List<MallMember> refMembers = this.baseMapper.selectList(directWrapper);
                if(CollUtil.isNotEmpty(refMembers)){
                    for(MallMember refMember : refMembers){
                        //第二代
                        memberIdList.add(refMember.getId());
                    }
                }
            }
        }
        return adminAgentVos;
        for(Long id : memberIdList){
            AdminMallMemberVo adminMallMemberVo = new AdminMallMemberVo();
            MallMember member = this.baseMapper.selectById(id);
            adminMallMemberVo.setAccountLogin(member.getAccountLogin());
            BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue());
            adminMallMemberVo.setChargeAmount(chargeAmount);
            BigDecimal withDrawAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_WITHDRAW.getValue());
            adminMallMemberVo.setWithDrawAmount(withDrawAmount);
            MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(id);
            adminMallMemberVo.setBalance(mallMemberWallet.getBalance());
            BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue());
            adminMallMemberVo.setAmountBuy(amountBuy);
            BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue());
            BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue());
            BigDecimal add = amountBuy.add(playerPerk).add(ownerPerk);
            adminMallMemberVo.setAmountPerk(add);
            adminMallMemberVos.add(adminMallMemberVo);
        }
        Map<String, Object> data = new HashMap<>(2);
        data.put("rows", adminMallMemberVos);
        data.put("total", adminMallMemberVos.size());
        return new FebsResponse().success().data(data);
    }
    @Override
@@ -893,6 +939,24 @@
    public IPage<AdminMallMemberVo> getFcmMallMemberList(MallMember mallMember, QueryRequest request) {
        Page<AdminMallMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<AdminMallMemberVo> adminMallMemberVoIPage = this.baseMapper.getFcmMallMemberList(page, mallMember);
        List<AdminMallMemberVo> records = adminMallMemberVoIPage.getRecords();
        if(CollUtil.isNotEmpty(records)){
            for(AdminMallMemberVo adminMallMemberVo : records){
                Long id = adminMallMemberVo.getId();
                BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue());
                adminMallMemberVo.setChargeAmount(chargeAmount);
                BigDecimal withDrawAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_WITHDRAW.getValue());
                adminMallMemberVo.setWithDrawAmount(withDrawAmount);
                BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue());
                adminMallMemberVo.setAmountBuy(amountBuy);
                BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue());
                BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue());
                BigDecimal add = amountBuy.add(playerPerk).add(ownerPerk);
                adminMallMemberVo.setAmountPerk(add);
            }
        }
        return adminMallMemberVoIPage;
    }