From 0478dd656cb551b6d94d1b124fcd2ee7987807c5 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 19 Mar 2024 10:09:06 +0800
Subject: [PATCH] 抽奖

---
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index 392321b..c18c8a4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -66,6 +66,7 @@
     private final MallProductSellRecordMapper mallProductSellRecordMapper;
     private final MallMemberAmountMapper mallMemberAmountMapper;
     private final IMallMoneyFlowService iMallMoneyFlowService;
+    private final MallProductNftMapper mallProductNftMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -1262,9 +1263,20 @@
             BigDecimal nftCntTotalBuy = mallProductBuyRecords.stream().map(MallProductBuyRecord::getPickNftCnt).reduce(BigDecimal.ZERO, BigDecimal::add);
             MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId);
             if(nftCntTotalBuy.compareTo(mallProductBuy.getNftTotal()) >= 0){
+
+                Long productNftId = mallProductBuy.getProductNftId();
+                MallProductNft mallProductNft = mallProductNftMapper.selectById(productNftId);
+                BigDecimal perkTime = mallProductNft.getPerkTime();
+                BigDecimal totalPerk = perkTime.multiply(mallProductBuy.getNftTotal()).setScale(2, BigDecimal.ROUND_DOWN);
+
+                mallProductBuy.setTotalPerk(totalPerk);
                 mallProductBuy.setState(ProductEnum.PRODUCT_BUY_SUCCESS.getValue());
                 mallProductBuy.setPayTime(DateUtil.date());
                 mallProductBuyMapper.updateById(mallProductBuy);
+
+                MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
+                mallMemberAmount.setTotalPerk(mallMemberAmount.getTotalPerk().add(totalPerk));
+                mallMemberAmountMapper.updateTotalPerkById(mallMemberAmount);
             }
         }
     }

--
Gitblit v1.9.1