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