From 567df9855e9fb910d6d3f100a96ea5803de45db0 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 30 Nov 2023 11:06:16 +0800
Subject: [PATCH] 预约列表

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java          |   10 +++++++++-
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java |   35 ++++++++++++++++++++++++++++++++---
 src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java         |    2 ++
 3 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
index 8b5cd4b..909d7c7 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallProductService.java
@@ -29,4 +29,6 @@
     FebsResponse orderSellInsure(ApiOrderSellInsureDto apiOrderSellInsureDto);
 
     FebsResponse orderBuyList(ApiOrderBuyDto apiOrderBuyDto);
+
+    Boolean operationPermissionMemberFrozen(Long memberId);
 }
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 a0103a0..5049623 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
@@ -934,7 +934,8 @@
          * 当前时间比结束时间大
          */
         if(nowTime.compareTo(endTime) >= 0){
-            List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListByState(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue());
+            List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListByState(
+                    ProductEnum.PRODUCT_MATE_STATE_PAY.getValue());
             if(CollUtil.isNotEmpty(mallProductSellRecords)){
                 for(MallProductSellRecord mallProductSellRecord : mallProductSellRecords){
                     /**
@@ -986,6 +987,13 @@
                      * 预约记录超时
                      */
                     String orderNo = mallProductBuy.getOrderNo();
+                    /**
+                     * 只要存在匹配记录,则不退回。
+                     */
+                    List<MallProductBuyRecord> mallProductBuyRecords = mallProductBuyRecordMapper.selectRecordListByBuyId(mallProductBuy.getId());
+                    if(CollUtil.isNotEmpty(mallProductBuyRecords)){
+                        continue;
+                    }
                     mallProductBuy.setState(ProductEnum.PRODUCT_BUY_TIMEOUT.getValue());
                     mallProductBuyMapper.updateById(mallProductBuy);
 
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 d77b875..ed4476f 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,9 +89,9 @@
          * 预约,验证交易密码、预约产品是否开启状态、该产品是否已经预约、token是否足够
          * 冻结对应的令牌数量、生成预约记录、生成流水记录
          */
-        Integer isFrozen = mallMember.getIsFrozen();
-        if(ProductEnum.MEMBER_UNFROZEN.getValue() != isFrozen){
-            throw new FebsException("账户无法预约");
+        Boolean aBoolean = operationPermissionMemberFrozen(memberId);
+        if(aBoolean){
+            throw new FebsException("用户已冻结");
         }
 
         DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date()));
@@ -169,6 +169,11 @@
          * 计算手续费、减少用户的fcm余额
          * 增加流水
          */
+
+        Boolean aBoolean = operationPermissionMemberFrozen(memberId);
+        if(aBoolean){
+            throw new FebsException("用户已冻结");
+        }
         if(!tradePassword.equals(mallMember.getTradePassword())){
             throw new FebsException("请输入正确的交易密码");
         }
@@ -249,6 +254,11 @@
          * 计算手续费、减少动态NFT、增加冻结NFT
          * 增加流水
          */
+
+        Boolean aBoolean = operationPermissionMemberFrozen(memberId);
+        if(aBoolean){
+            throw new FebsException("用户已冻结");
+        }
         if(!tradePassword.equals(mallMember.getTradePassword())){
             throw new FebsException("请输入正确的交易密码");
         }
@@ -428,6 +438,11 @@
          * 更新卖单状态
          * 生成流水信息
          */
+
+        Boolean aBoolean = operationPermissionMemberFrozen(memberId);
+        if(aBoolean){
+            throw new FebsException("用户已冻结");
+        }
         if(!tradePassword.equals(mallMember.getTradePassword())){
             throw new FebsException("请输入正确的交易密码");
         }
@@ -486,6 +501,11 @@
          * 更新卖单状态
          * 生成流水信息
          */
+
+        Boolean aBoolean = operationPermissionMemberFrozen(memberId);
+        if(aBoolean){
+            throw new FebsException("用户已冻结");
+        }
         if(!tradePassword.equals(mallMember.getTradePassword())){
             throw new FebsException("请输入正确的交易密码");
         }
@@ -525,4 +545,13 @@
         IPage<ApiOrderBuyVo> apiOrderBuyVoIPage = mallProductBuyMapper.selectBuyListInPage(page, apiOrderBuyDto);
         return new FebsResponse().success().data(apiOrderBuyVoIPage);
     }
+
+    @Override
+    public Boolean operationPermissionMemberFrozen(Long memberId) {
+        MallMember mallMember = memberMapper.selectById(memberId);
+        if(ProductEnum.MEMBER_FROZEN.getValue() == mallMember.getIsFrozen()){
+            return true;
+        }
+        return false;
+    }
 }

--
Gitblit v1.9.1