xiaoyong931011
2023-06-08 c28ec8b80eec2c4ccc5a8e7c8ef144e9fe3f05dd
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;
@@ -513,6 +515,14 @@
    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(),
@@ -550,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
@@ -573,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)){
@@ -599,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));
@@ -612,12 +630,14 @@
                myInviteChildInfoVo.setAddress(child.getAddress());
                myInviteChildInfoVo.setAccountType(child.getAccountType());
                DappUsdtPerkEntity childUsdtPerkEntity = dappUsdtPerkEntityMapper.selectByMemberId(child.getId());
                if(ObjectUtil.isEmpty(dappUsdtPerkEntity)){
                    dappUsdtPerkEntity = new DappUsdtPerkEntity();
                    dappUsdtPerkEntity.setMemberId(child.getId());
                    dappUsdtPerkEntityMapper.insert(dappUsdtPerkEntity);
//                BigDecimal achieveAmountByMemberId = dappUsdtPerkEntityMapper.selectAchieveAmountByMemberId(child.getId());
                if(ObjectUtil.isEmpty(childUsdtPerkEntity)){
                    childUsdtPerkEntity = new DappUsdtPerkEntity();
                    childUsdtPerkEntity.setMemberId(child.getId());
                    dappUsdtPerkEntityMapper.insert(childUsdtPerkEntity);
                }
                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));
@@ -629,6 +649,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