From a580b5a79d7d00872455d5d12c4e15b0aaac224c Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 18 Mar 2024 11:22:58 +0800 Subject: [PATCH] 抽奖 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 25 +++++++++++++++++++++++-- 1 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index 60bf5ca..a89a75c 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -315,6 +315,12 @@ 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); } @@ -573,9 +579,16 @@ 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"); @@ -587,11 +600,19 @@ 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(), -- Gitblit v1.9.1