|  |  | 
 |  |  |  | 
 |  |  |         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); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |                     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"); | 
 |  |  | 
 |  |  |                     mallMember.getId(), | 
 |  |  |                     FlowTypeNewEnum.NFT.getValue(), | 
 |  |  |                     MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getDescrition()); | 
 |  |  |             mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(amount)); | 
 |  |  |             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(), | 
 |  |  |                     amount, | 
 |  |  |                     amountReal, | 
 |  |  |                     MoneyFlowTypeNewEnum.NFT_TRANS_IN.getValue(), | 
 |  |  |                     orderNo, | 
 |  |  |                     loginMember.getId(), |