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/vo/MallMemberVo.java | 2 ++ src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java | 2 ++ src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java | 1 + src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 25 +++++++++++++++++++++++-- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java index ffdec99..6d7e4d1 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java @@ -5,6 +5,8 @@ @Getter public enum DataDictionaryEnum { + //卡牌互转手续费 + FCM_INSIDE_NFT_PERCENT("FCM_INSIDE_NFT_PERCENT","FCM_INSIDE_NFT_PERCENT"), //销毁数量 按照比例销毁或者返利给节点 FCM_DESTORY_TOTAL_PERCENT("FCM_DESTORY_TOTAL_PERCENT","FCM_DESTORY_TOTAL_PERCENT"), FCM_DESTORY_POINT_PERCENT("FCM_DESTORY_POINT_PERCENT","FCM_DESTORY_POINT_PERCENT"), diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java index 1112efb..95e17d8 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java @@ -11,6 +11,7 @@ @Getter public enum MoneyFlowTypeNewEnum { + NFT_TRANS_OUT_FEE(31,"卡牌转出手续费"), NFT_TRANS_IN(30,"卡牌转入"), NFT_TRANS_OUT(29,"卡牌转出"), PERK_POINT(28,"节点收益"), 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(), diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java index 16430ae..78b9e28 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java @@ -116,5 +116,7 @@ @ApiModelProperty(value = "收益总额") private BigDecimal totalPerk; + @ApiModelProperty(value = "卡牌互转手续费") + private String insideNFTPercent; } -- Gitblit v1.9.1