From 57ac3a35ac056f0a09d8a013e8f3da2ecfe8a7c6 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 18 Mar 2024 11:12:51 +0800
Subject: [PATCH] 抽奖

---
 src/main/java/cc/mrbird/febs/mall/dto/TransferDto.java                       |    2 +-
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java         |    6 +++---
 src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java     |    2 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   29 +++++++++++++++++++++++++++--
 4 files changed, 33 insertions(+), 6 deletions(-)

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 fe34a7b..1112efb 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,8 @@
 @Getter
 public enum MoneyFlowTypeNewEnum {
 
+    NFT_TRANS_IN(30,"卡牌转入"),
+    NFT_TRANS_OUT(29,"卡牌转出"),
     PERK_POINT(28,"节点收益"),
     PERK_CYCLE(27,"收益"),
     GSD_GFA(26,"GFD兑换GFA"),
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/TransferDto.java b/src/main/java/cc/mrbird/febs/mall/dto/TransferDto.java
index fec677f..d654219 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/TransferDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/TransferDto.java
@@ -18,7 +18,7 @@
 @ApiModel(value = "TransferDto", description = "转账接收参数类")
 public class TransferDto {
 
-    @ApiModelProperty(value = "转出类型 1:FCM 2:令牌", example = "1")
+    @ApiModelProperty(value = "转出类型 1:FCM 2:令牌 3:卡牌", example = "1")
     private int type;
 
     @NotBlank(message = "转出账户不能为空")
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index b98fba7..5104bed 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -1201,7 +1201,7 @@
         queryMallMoneyFlow.eq("is_return",AppContants.MEMBER_FLOW_ING);
         queryMallMoneyFlow.eq("flow_type",FlowTypeNewEnum.NFT.getValue());
         List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(queryMallMoneyFlow);
-        if(CollUtil.isNotEmpty(mallMoneyFlows)){
+        if(CollUtil.isEmpty(mallMoneyFlows)){
             return;
         }
 
@@ -1268,7 +1268,7 @@
         queryMallMoneyFlow.eq("is_return",AppContants.MEMBER_FLOW_ING);
         queryMallMoneyFlow.eq("flow_type",FlowTypeNewEnum.NFT.getValue());
         List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(queryMallMoneyFlow);
-        if(CollUtil.isNotEmpty(mallMoneyFlows)){
+        if(CollUtil.isEmpty(mallMoneyFlows)){
             return;
         }
 
@@ -1335,7 +1335,7 @@
         queryMallMoneyFlow.eq("is_return",AppContants.MEMBER_FLOW_ING);
         queryMallMoneyFlow.eq("flow_type",FlowTypeNewEnum.NFT.getValue());
         List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(queryMallMoneyFlow);
-        if(CollUtil.isNotEmpty(mallMoneyFlows)){
+        if(CollUtil.isEmpty(mallMoneyFlows)){
             return;
         }
 
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 49e0d60..60bf5ca 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
@@ -493,7 +493,7 @@
         BigDecimal amount = transferDto.getAmount();
         int type = transferDto.getType();
 
-        if(1 != type && 2 != type){
+        if(1 != type && 2 != type && 3 != type){
             throw new FebsException("请选择互转类型");
         }
         Integer insideWith = loginMember.getInsideWith() == null ? 2 :loginMember.getInsideWith();
@@ -518,7 +518,6 @@
             throw new FebsException("交易密码错误");
         }
 
-        BigDecimal avaAmount = transferDto.getAmount().setScale(2, BigDecimal.ROUND_DOWN);
         MallMemberAmount mallMemberAmountLogin = mallMemberAmountMapper.selectByMemberId(loginMember.getId());
         MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallMember.getId());
         if(1 == type){
@@ -573,6 +572,32 @@
                     FlowTypeNewEnum.TOKEN.getValue(),
                     MoneyFlowTypeNewEnum.TOKEN_INSIDE_IN.getDescrition());
         }
+        if(3 == type){
+            if (amount.compareTo(mallMemberAmountLogin.getTrendsNft()) > 0) {
+                throw new FebsException("卡牌不足");
+            }
+            mallMemberAmountLogin.setTrendsNft(mallMemberAmountLogin.getTrendsNft().subtract(amount));
+            mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountLogin);
+            String orderNo = MallUtils.getOrderNum("NFT");
+            mallMoneyFlowService.addMoneyFlow(
+                    loginMember.getId(),
+                    amount.negate(),
+                    MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getValue(),
+                    orderNo,
+                    mallMember.getId(),
+                    FlowTypeNewEnum.NFT.getValue(),
+                    MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getDescrition());
+            mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(amount));
+            mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount);
+            mallMoneyFlowService.addMoneyFlow(
+                    mallMember.getId(),
+                    amount,
+                    MoneyFlowTypeNewEnum.NFT_TRANS_IN.getValue(),
+                    orderNo,
+                    loginMember.getId(),
+                    FlowTypeNewEnum.NFT.getValue(),
+                    MoneyFlowTypeNewEnum.NFT_TRANS_IN.getDescrition());
+        }
     }
 
     @Override

--
Gitblit v1.9.1