KKSU
2024-08-22 7a372033d44ba48383d9d1bc97e5d583b26a266f
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -7,6 +7,7 @@
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.entity.MallNewsInfo;
@@ -37,8 +38,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;
/**
@@ -77,6 +77,7 @@
    private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper;
    private final NBYHService nbyhService;
    private final MallMemberAmountMapper mallMemberAmountMapper;
    private final RedisUtils redisUtils;
    @Override
    public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -294,23 +295,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
@@ -475,7 +523,12 @@
        } else {
            iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType);
        }
        mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type);
        mallMoneyFlowService.addMoneyFlow(
                memberId,
                bigDecimal,
                GameFlowTypeEnum.PLAYER_CHARGE.getValue(),
                MallUtils.getOrderNum("CZ"),
                GameFlowTypeEnum.PLAYER_CHARGE.getDescrition());
        return new FebsResponse().success();
    }
@@ -888,6 +941,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;
    }
@@ -900,6 +971,16 @@
        }
        mallMember.setIsFrozen(i);
        mallMemberMapper.updateById(mallMember);
        String redisKey = AppContants.APP_LOGIN_PREFIX + mallMember.getId();
        String existToken = redisUtils.getString(redisKey);
        if (StrUtil.isNotBlank(existToken)) {
            Object o = redisUtils.get(existToken);
            if (ObjectUtil.isNotEmpty(o)) {
                redisUtils.del(existToken);
            }
        }
        return new FebsResponse().success();
    }