KKSU
2024-03-18 3baddff99987a5a98b5d55504853f4995018533b
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -83,7 +83,8 @@
        if (mallMember != null) {
            throw new FebsException("账号已使用,请重新注册。");
        }
        String userKey = registerDto.getUserKey();
        Integer selectCount = this.baseMapper.selectCount(null);
        String userKey = ShareCodeUtil.toSerialNumberCode(selectCount);
        MallMember mallMemberKey = this.baseMapper.selectByUserKey(userKey);
        if (mallMemberKey != null) {
            throw new FebsException("账号已使用,请重新注册。");
@@ -298,6 +299,7 @@
        mallMemberVo.setFcmCntFrozen(mallMemberAmount.getFcmCntFrozen());
        mallMemberVo.setTokenAva(mallMemberAmount.getTokenAva());
        mallMemberVo.setTokenFrozen(mallMemberAmount.getTokenFrozen());
        mallMemberVo.setTotalPerk(mallMemberAmount.getTotalPerk());
        DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.YU_YUE_START_TIME.getType(),
                DataDictionaryEnum.YU_YUE_START_TIME.getCode()
@@ -312,8 +314,14 @@
        Integer pickCount = mallProductBuyMapper.selectListByMemberIdAndState(id);
        mallMemberVo.setPickCount(pickCount);
        BigDecimal totalPerk = mallProductBuyMapper.selectTotalPerkByMemberId(mallMember.getId());
        mallMemberVo.setTotalPerk(totalPerk);
//        BigDecimal totalPerk = mallProductBuyMapper.selectTotalPerkByMemberId(mallMember.getId());
//        mallMemberVo.setTotalPerk(totalPerk);
        DataDictionaryCustom insideNFTPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getType(),
                DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getCode()
        );
        mallMemberVo.setInsideNFTPercent(insideNFTPercentDic.getValue());
        return new FebsResponse().success().data(mallMemberVo);
    }
@@ -427,15 +435,17 @@
                myTeamDirectVo.setMemberId(mallMembersDirect.getId());
                myTeamDirectVo.setAccountLogin(mallMembersDirect.getAccountLogin());
                myTeamDirectVo.setIsFrozen(mallMembersDirect.getIsFrozen());
                myTeamDirectVo.setLevelName(MemberLevelNewEnum.ZERO_LEVEL.getLevelName(mallMembersDirect.getLevel()));
                myTeamDirectVo.setLevelName(
                        dataDictionaryCustomMapper.selectDicDataByTypeAndCode(mallMembersDirect.getLevel(),mallMembersDirect.getLevel()).getDescription()
                );
                BigDecimal myAchieveBuyDirect = this.baseMapper.selectAchieveBuyByMemberId(mallMember.getInviteId(), 1);
                BigDecimal myAchieveBuyDirect = this.baseMapper.selectAchieveBuyByMemberId(mallMembersDirect.getInviteId(), 1);
                myTeamDirectVo.setMyAchieveBuy(myAchieveBuyDirect);
                BigDecimal myAchieveSellDirect = this.baseMapper.selectAchieveSellByMemberId(mallMember.getInviteId(), 1);
                BigDecimal myAchieveSellDirect = this.baseMapper.selectAchieveSellByMemberId(mallMembersDirect.getInviteId(), 1);
                myTeamDirectVo.setMyAchieveSell(myAchieveSellDirect);
                BigDecimal myTeamAchieveBuyDirect = this.baseMapper.selectAchieveBuyByMemberId(mallMember.getInviteId(), 2);
                BigDecimal myTeamAchieveBuyDirect = this.baseMapper.selectAchieveBuyByMemberId(mallMembersDirect.getInviteId(), 2);
                myTeamDirectVo.setMyTeamAchieveBuy(myTeamAchieveBuyDirect.add(myAchieveBuyDirect));
                BigDecimal myTeamAchieveSellDirect = this.baseMapper.selectAchieveSellByMemberId(mallMember.getInviteId(), 2);
                BigDecimal myTeamAchieveSellDirect = this.baseMapper.selectAchieveSellByMemberId(mallMembersDirect.getInviteId(), 2);
                myTeamDirectVo.setMyTeamAchieveSell(myTeamAchieveSellDirect.add(myAchieveSellDirect));
                myTeamDirectVo.setMyTeamMemberCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMembersDirect.getInviteId()).size());
                Integer buyCntDirect = this.baseMapper.selectAchieveBuyOrderCntByMemberId(mallMembersDirect.getInviteId());
@@ -490,7 +500,7 @@
        BigDecimal amount = transferDto.getAmount();
        int type = transferDto.getType();
        if(1 != type && 2 != type){
        if(1 != type && 2 != type && 3 != type){
            throw new FebsException("请选择互转类型");
        }
        Integer insideWith = loginMember.getInsideWith() == null ? 2 :loginMember.getInsideWith();
@@ -515,7 +525,6 @@
            throw new FebsException("交易密码错误");
        }
        BigDecimal avaAmount = transferDto.getAmount().setScale(2, BigDecimal.ROUND_DOWN);
        MallMemberAmount mallMemberAmountLogin = mallMemberAmountMapper.selectByMemberId(loginMember.getId());
        MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallMember.getId());
        if(1 == type){
@@ -569,6 +578,47 @@
                    loginMember.getId(),
                    FlowTypeNewEnum.TOKEN.getValue(),
                    MoneyFlowTypeNewEnum.TOKEN_INSIDE_IN.getDescrition());
        }
        if(3 == type){
            DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getType(),
                    DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getCode()
            );
            BigDecimal feePercent = new BigDecimal("0.01").multiply(new BigDecimal(dataDictionaryCustom.getValue()));
            if (amount.compareTo(mallMemberAmountLogin.getTrendsNft()) > 0) {
                throw new FebsException("卡牌不足");
            }
            BigDecimal fee = amount.multiply(feePercent).setScale(2,BigDecimal.ROUND_DOWN);
            BigDecimal amountReal = amount.subtract(fee);
            mallMemberAmountLogin.setTrendsNft(mallMemberAmountLogin.getTrendsNft().subtract(amount));
            mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountLogin);
            String orderNo = MallUtils.getOrderNum("NFT");
            mallMoneyFlowService.addMoneyFlow(
                    loginMember.getId(),
                    amountReal.negate(),
                    MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getValue(),
                    orderNo,
                    mallMember.getId(),
                    FlowTypeNewEnum.NFT.getValue(),
                    MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getDescrition());
            mallMoneyFlowService.addMoneyFlow(
                    loginMember.getId(),
                    fee.negate(),
                    MoneyFlowTypeNewEnum.NFT_TRANS_OUT_FEE.getValue(),
                    orderNo,
                    mallMember.getId(),
                    FlowTypeNewEnum.NFT.getValue(),
                    MoneyFlowTypeNewEnum.NFT_TRANS_OUT_FEE.getDescrition());
            mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(amountReal));
            mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount);
            mallMoneyFlowService.addMoneyFlow(
                    mallMember.getId(),
                    amountReal,
                    MoneyFlowTypeNewEnum.NFT_TRANS_IN.getValue(),
                    orderNo,
                    loginMember.getId(),
                    FlowTypeNewEnum.NFT.getValue(),
                    MoneyFlowTypeNewEnum.NFT_TRANS_IN.getDescrition());
        }
    }
@@ -862,10 +912,10 @@
        MallMemberPayment mallMemberPayment = mallMemberPaymentMapper.selectByMemberId(memberId);
        mallMemberPayment.setWxQrcode(updatePaymentDto.getWxQrcode());
        mallMemberPayment.setAliQrcode(updatePaymentDto.getAliQrcode());
//        mallMemberPayment.setAliQrcode(updatePaymentDto.getAliQrcode());
        mallMemberPayment.setBankName(updatePaymentDto.getBankName());
        mallMemberPayment.setBankNo(updatePaymentDto.getBankNo());
        mallMemberPayment.setBank(updatePaymentDto.getBank());
//        mallMemberPayment.setBankNo(updatePaymentDto.getBankNo());
//        mallMemberPayment.setBank(updatePaymentDto.getBank());
        mallMemberPayment.setPhone(updatePaymentDto.getPhone());
        mallMemberPayment.setUsdtTongdao(updatePaymentDto.getUsdtTongdao());
        mallMemberPayment.setUsdtAddress(updatePaymentDto.getUsdtAddress());