From 0478dd656cb551b6d94d1b124fcd2ee7987807c5 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 19 Mar 2024 10:09:06 +0800 Subject: [PATCH] 抽奖 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 32 +++++++++++++++++++++++++++----- 1 files changed, 27 insertions(+), 5 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..88126a3 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 @@ -299,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() @@ -313,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); } @@ -573,25 +580,40 @@ 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(), - amount.negate(), + amountReal.negate(), MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getValue(), orderNo, 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