From bc26bbd27b75ab2f8ffc79a5a5fe25206f15abc7 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 28 Nov 2023 17:39:07 +0800
Subject: [PATCH] 匹配

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java
index 6324278..842f7b9 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java
@@ -89,6 +89,11 @@
          * 预约,验证交易密码、预约产品是否开启状态、该产品是否已经预约、token是否足够
          * 冻结对应的令牌数量、生成预约记录、生成流水记录
          */
+        Integer isFrozen = mallMember.getIsFrozen();
+        if(ProductEnum.MEMBER_UNFROZEN.getValue() != isFrozen){
+            throw new FebsException("账户无法预约");
+        }
+
         DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date()));
         DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                 DataDictionaryEnum.YU_YUE_START_TIME.getType(),
@@ -114,7 +119,7 @@
             throw new FebsException("预约超时");
         }
         MallProductBuy mallProductBuy = mallProductBuyMapper.selectMemberIdAndNFTIdAndStateAndMateState(
-                memberId,productNFTId,ProductEnum.PRODUCT_BUY_ON_GOING.getValue(),null);
+                memberId,productNFTId,ProductEnum.PRODUCT_BUY_ON_GOING.getValue(),ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue());
         if(ObjectUtil.isNotEmpty(mallProductBuy)){
             throw new FebsException("不可重复预约");
         }
@@ -216,8 +221,9 @@
                 FlowTypeNewEnum.FCM_COIN.getValue(),
                 MoneyFlowTypeNewEnum.FCM_OUT_FEE.getDescrition());
 
-        mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(nftCnt));
-        mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount);
+        MallMemberAmount mallMemberAmountNft = mallMemberAmountMapper.selectByMemberId(memberId);
+        mallMemberAmountNft.setTrendsNft(mallMemberAmountNft.getTrendsNft().add(nftCnt));
+        mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountNft);
         String orderNoNFT = MallUtils.getOrderNum("NFT");
         iMallMoneyFlowService.addMoneyFlow(
                 memberId,
@@ -288,8 +294,13 @@
         mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().subtract(nftCnt));
         mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount);
 
-        mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().add(nftCntAva));
-        mallMemberAmountMapper.updateFrozenNftById(mallMemberAmount);
+        MallMemberAmount mallMemberAmountFcm = mallMemberAmountMapper.selectByMemberId(memberId);
+        mallMemberAmountFcm.setFcmCntAva(mallMemberAmountFcm.getFcmCntAva().subtract(fcmFeeCnt));
+        mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmountFcm);
+
+        MallMemberAmount mallMemberAmountFrozenNFT = mallMemberAmountMapper.selectByMemberId(memberId);
+        mallMemberAmountFrozenNFT.setFrozenNft(mallMemberAmountFrozenNFT.getFrozenNft().add(nftCntAva));
+        mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountFrozenNFT);
         iMallMoneyFlowService.addMoneyFlow(
                 memberId,
                 nftCnt.negate(),
@@ -300,6 +311,14 @@
                 MoneyFlowTypeNewEnum.NFT_OUT.getDescrition());
         iMallMoneyFlowService.addMoneyFlow(
                 memberId,
+                fcmFeeCnt.negate(),
+                MoneyFlowTypeNewEnum.NFT_OUT_FEE_FCM.getValue(),
+                orderNo,
+                mallMember.getId(),
+                FlowTypeNewEnum.FCM_COIN.getValue(),
+                MoneyFlowTypeNewEnum.NFT_OUT_FEE_FCM.getDescrition());
+        iMallMoneyFlowService.addMoneyFlow(
+                memberId,
                 nftFee.negate(),
                 MoneyFlowTypeNewEnum.NFT_OUT_FEE.getValue(),
                 orderNo,

--
Gitblit v1.9.1