xiaoyong931011
2023-06-05 6bebd32b8a5b4ff9a9b32012a6f6d96a53dde5a2
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -12,6 +12,8 @@
import cc.mrbird.febs.dapp.dto.*;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
import cc.mrbird.febs.dapp.enumerate.FundFlowEnum;
import cc.mrbird.febs.dapp.enumerate.MemberLevelEnum;
import cc.mrbird.febs.dapp.enumerate.PoolEnum;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.DappMemberService;
@@ -135,11 +137,14 @@
        DappMemberEntity member = dappMemberDao.selectByAddress(connectDto.getAddress(), null);
        if (member == null) {
            String referenceID = null;
            if (!"asdf4321".equals(connectDto.getInviteId())) {
                DappMemberEntity parent = dappMemberDao.selectMemberInfoByInviteId(connectDto.getInviteId());
//                DappMemberEntity parent = dappMemberDao.selectMemberInfoByInviteId(connectDto.getInviteId());
                DappMemberEntity parent = dappMemberDao.selectByAddress(connectDto.getInviteId(), null);
                if (parent == null) {
                    throw new FebsException("recommender is not exist");
                }
                referenceID = parent.getInviteId();
//                List<DappMemberEntity> child = dappMemberDao.selectChildMemberDirectOrNot(connectDto.getInviteId(), 1, null);
//                if (child.size() == 6) {
@@ -148,7 +153,7 @@
            } else {
                connectDto.setInviteId(null);
            }
            member = insertMember(connectDto.getAddress(), connectDto.getInviteId());
            member = insertMember(connectDto.getAddress(), referenceID);
            //升级用户的代理等级
//            DappMemberEntity dappMemberEntity = dappMemberDao.selectMemberInfoByInviteId(connectDto.getInviteId());
//            chainProducer.sendAgentUpMsg(dappMemberEntity.getId());
@@ -510,6 +515,28 @@
    public FebsResponse getMemberInfo() {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        DappMemberInfoVo dappMemberInfoVo = dappMemberDao.selectByMemberId(member.getId());
        if(StrUtil.isNotEmpty(dappMemberInfoVo.getAccountType())){
            String levelDescription = MemberLevelEnum.MEMBER.getLevelDescription(dappMemberInfoVo.getAccountType());
            dappMemberInfoVo.setAccountType(levelDescription);
        }
        BigDecimal amountPerkTotal = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(member.getId(),
                FundFlowEnum.MEMBER_AMOUNT_PERK_TOTAL.getCode(), 2);
        dappMemberInfoVo.setAmountPerkTotal(amountPerkTotal);
        DataDictionaryCustom ausdPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PoolEnum.TRANSFER_A_AUSD_PERCENT.getType(),
                PoolEnum.TRANSFER_A_AUSD_PERCENT.getCode()
        );
        BigDecimal ausdPercent = new BigDecimal(ausdPercentDic.getValue());
        dappMemberInfoVo.setAusdtFee(ausdPercent);
        DataDictionaryCustom aroundFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PoolEnum.ANDAO_MEMBER_TO_MENBER_PERCENT.getType(),
                PoolEnum.ANDAO_MEMBER_TO_MENBER_PERCENT.getCode()
        );
        BigDecimal aroundFee = new BigDecimal(aroundFeeDic.getValue());
        dappMemberInfoVo.setAroundFee(aroundFee);
        //ausd价格
        DataDictionaryCustom ausdPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PoolEnum.TRANSFER_A_AUSD_PRICE.getType(),
@@ -533,8 +560,16 @@
                PoolEnum.COIN_A_PRICE.getType(),
                PoolEnum.COIN_A_PRICE.getCode()
        );
        dappMemberInfoVo.setCoinAPrice(ObjectUtil.isEmpty(coinAPriceDic) ? new BigDecimal("1") : new BigDecimal(coinAPriceDic.getValue()));
        dappMemberInfoVo.setCoinAPrice((ObjectUtil.isEmpty(coinAPriceDic) ? new BigDecimal("1") : new BigDecimal(coinAPriceDic.getValue()))
                .setScale(12,BigDecimal.ROUND_DOWN));
        return new FebsResponse().success().data(dappMemberInfoVo);
    }
    public static void main(String[] args) {
        BigDecimal bigDecimal = new BigDecimal(1).setScale(10, BigDecimal.ROUND_DOWN);
        System.out.println(bigDecimal);
    }
    @Override
@@ -556,7 +591,7 @@
        }else if(4 == type){
            redisKey = AppContants.K_LINE_MONTH;
        }else{
            redisKey = AppContants.K_LINE_HOUR;
            redisKey = AppContants.K_LINE_NOW;
        }
        Object o = redisUtils.get(redisKey);
        if(ObjectUtil.isNotEmpty(o)){
@@ -582,7 +617,7 @@
        myInviteInfoVo.setMemberAchieve(dappUsdtPerkEntity.getAchieveAmount());
        String refererId = dappMemberEntity.getRefererId();
        DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(refererId);
        myInviteInfoVo.setReferenceAddress(parentMember.getAddress());
        myInviteInfoVo.setReferenceAddress(ObjectUtil.isEmpty(parentMember) ? "-" : parentMember.getAddress());
        HashMap<String, BigDecimal> maxMinAchieve = getMaxMinAchieve(memberId);
        myInviteInfoVo.setMaxAchieve(maxMinAchieve.get(AppContants.MAXACHIEVE));
        myInviteInfoVo.setMinAchieve(maxMinAchieve.get(AppContants.MINACHIEVE));
@@ -599,8 +634,12 @@
                    dappUsdtPerkEntity = new DappUsdtPerkEntity();
                    dappUsdtPerkEntity.setMemberId(child.getId());
                    dappUsdtPerkEntityMapper.insert(dappUsdtPerkEntity);
                    myInviteChildInfoVo.setMemberAchieve(BigDecimal.ZERO);
                }else{
                    myInviteChildInfoVo.setMemberAchieve(childUsdtPerkEntity.getAchieveAmount());
                }
                myInviteChildInfoVo.setMemberAchieve(childUsdtPerkEntity.getAchieveAmount());
//                myInviteChildInfoVo.setMemberAchieve(ObjectUtil.isEmpty(childUsdtPerkEntity.getAchieveAmount()) ? BigDecimal.ZERO : childUsdtPerkEntity.getAchieveAmount());
                HashMap<String, BigDecimal> childMaxMinAchieve = getMaxMinAchieve(child.getId());
                myInviteChildInfoVo.setMaxAchieve(childMaxMinAchieve.get(AppContants.MAXACHIEVE));
                myInviteChildInfoVo.setMinAchieve(childMaxMinAchieve.get(AppContants.MINACHIEVE));
@@ -612,6 +651,108 @@
        return myInviteInfoVo;
    }
    @Override
    public FebsResponse getFundFlowInfo() {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        Long memberId = member.getId();
        FundFlowInfoVo fundFlowInfoVo = new FundFlowInfoVo();
        BigDecimal myDonateCnt = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(member.getId(),
                FundFlowEnum.BUY_A_COIN.getCode(), 2);
        fundFlowInfoVo.setMyDonateCnt(myDonateCnt.abs());
        fundFlowInfoVo.setMyDonateCntNum(FundFlowEnum.BUY_A_COIN.getCode());
        BigDecimal amountPerkTotal = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(member.getId(),
                FundFlowEnum.MEMBER_AMOUNT_PERK_TOTAL.getCode(), 2);
        fundFlowInfoVo.setAmountPerkTotal(amountPerkTotal.abs());
        fundFlowInfoVo.setAmountPerkTotalNum(FundFlowEnum.MEMBER_AMOUNT_PERK_TOTAL.getCode());
        DappUsdtPerkEntity dappUsdtPerkEntity = dappUsdtPerkEntityMapper.selectByMemberId(memberId);
        fundFlowInfoVo.setAmountPerkAva(ObjectUtil.isEmpty(dappUsdtPerkEntity) ? BigDecimal.ZERO : dappUsdtPerkEntity.getAmount());
        BigDecimal directAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.DIRECT_A_PERCENT.getCode(), 2);
        fundFlowInfoVo.setDirectAmount(directAmount);
        fundFlowInfoVo.setDirectAmountNum(FundFlowEnum.DIRECT_A_PERCENT.getCode());
        BigDecimal staticAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.POOL_MEMBER_A_CNT.getCode(), 2);
        fundFlowInfoVo.setStaticAmount(staticAmount);
        fundFlowInfoVo.setStaticAmountNum(FundFlowEnum.POOL_MEMBER_A_CNT.getCode());
        BigDecimal nodeAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode(), 2);
        fundFlowInfoVo.setNodeAmount(nodeAmount);
        fundFlowInfoVo.setNodeAmountNum(FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode());
        BigDecimal levelEqualAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode(), 2);
        fundFlowInfoVo.setLevelEqualAmount(levelEqualAmount);
        fundFlowInfoVo.setLevelEqualAmountNum(FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode());
        BigDecimal levelAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.LEVEL_A_PERCENT_CNT_MEMBER.getCode(), 2);
        fundFlowInfoVo.setLevelAmount(levelAmount);
        fundFlowInfoVo.setLevelAmountNum(FundFlowEnum.LEVEL_A_PERCENT_CNT_MEMBER.getCode());
        BigDecimal daoThreeAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.DAO_3_NODE_PERK.getCode(), 2);
        fundFlowInfoVo.setDaoThreeAmount(daoThreeAmount);
        fundFlowInfoVo.setDaoThreeAmountNum(FundFlowEnum.DAO_3_NODE_PERK.getCode());
        BigDecimal daoFourAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.DAO_4_NODE_PERK.getCode(), 2);
        fundFlowInfoVo.setDaoFourAmount(daoFourAmount);
        fundFlowInfoVo.setDaoFourAmountNum(FundFlowEnum.DAO_4_NODE_PERK.getCode());
        BigDecimal daoFiveAmount = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,
                FundFlowEnum.DAO_5_NODE_PERK.getCode(), 2);
        fundFlowInfoVo.setDaoFiveAmount(daoFiveAmount);
        fundFlowInfoVo.setDaoFiveAmountNum(FundFlowEnum.DAO_5_NODE_PERK.getCode());
        return new FebsResponse().success().data(fundFlowInfoVo);
    }
    @Override
    public FebsResponse insideWithYes(Long id) {
        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(id);
        if(ObjectUtil.isEmpty(dappMemberEntity)) {
            return new FebsResponse().fail().message("会员信息不存在");
        }
        dappMemberEntity.setNodeType(1);
        dappMemberEntity.setAccountType(MemberLevelEnum.NODE_5.getType());
        dappMemberDao.updateById(dappMemberEntity);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse insideWithNo(Long id) {
        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(id);
        if(ObjectUtil.isEmpty(dappMemberEntity)) {
            return new FebsResponse().fail().message("会员信息不存在");
        }
        dappMemberEntity.setNodeType(2);
        dappMemberEntity.setAccountType(MemberLevelEnum.MEMBER.getType());
        dappMemberDao.updateById(dappMemberEntity);
        return new FebsResponse().success();
    }
    @Override
    public List<AdminAgentLevelOptionTreeVo> getAgentLevelOption() {
        return dataDictionaryCustomMapper.getAgentLevelOption();
    }
    @Override
    public FebsResponse agentLevelSetUpdate(AgentLevelSetUpdateDto agentLevelSetUpdateDto) {
        Long memberId = agentLevelSetUpdateDto.getId();
        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
        if(ObjectUtil.isEmpty(dappMemberEntity)){
            return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
        }
        dappMemberEntity.setAccountType(agentLevelSetUpdateDto.getLevelCode());
        dappMemberDao.updateById(dappMemberEntity);
        return new FebsResponse().success();
    }
    /**
     * 获取用户的大小区业绩
     * @param memberId