From c619972c50577bb699be6ee099b5e2741882fabb Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 27 Dec 2023 16:15:59 +0800
Subject: [PATCH] 直推奖励,冻结的用户,则直推奖励销毁,用户未冻结才能领取成功

---
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java |   66 ++++++++++++++++++++++++++++++--
 1 files changed, 61 insertions(+), 5 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 c7990b9..e6c3860 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
@@ -1,9 +1,6 @@
 package cc.mrbird.febs.mall.service.impl;
 
-import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
-import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
-import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
-import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.*;
 import cc.mrbird.febs.common.utils.AppContants;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
@@ -15,8 +12,10 @@
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -46,6 +45,7 @@
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
     private final MallMoneyFlowMapper mallMoneyFlowMapper;
     private final MallAchieveRecordMapper mallAchieveRecordMapper;
+    private final MallMemberWalletMapper mallMemberWalletMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -281,7 +281,7 @@
             }
 
             BigDecimal income = profit.multiply(profitProp).divide(BigDecimal.valueOf(agentMemberList.size()), 2, RoundingMode.HALF_UP);
-            if (income.compareTo(BigDecimal.ZERO) > 0) {
+            if (income.compareTo(BigDecimal.ZERO) < 1) {
                 continue;
             }
 
@@ -477,4 +477,60 @@
         }
         log.info("#####==店补/董事==end==######");
     }
+
+    @Override
+    public void syAppOrderPayDoneQueue(String orderNo) {
+        MallOrderInfo orderInfo = mallOrderInfoMapper.selectByOrderNo(orderNo);
+        if(ObjectUtil.isEmpty(orderInfo)){
+            return;
+        }
+        if (OrderStatusEnum.FINISH.getValue() == orderInfo.getStatus()) {
+            return;
+        }
+        orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
+//        orderInfo.setPayResult(1);
+        orderInfo.setPayTime(DateUtil.date());
+        mallOrderInfoMapper.updateById(orderInfo);
+
+        if(ObjectUtil.isEmpty(orderInfo.getMemberId())){
+            return;
+        }
+        Long memberId = orderInfo.getMemberId();
+        MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+        if(ObjectUtil.isEmpty(mallMemberWallet)){
+            return;
+        }
+        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId());
+        if(ObjectUtil.isEmpty(mallOrderItemList)){
+            return;
+        }
+        /**
+         * 会员增加积分
+         *  (现价-成本价)/现价*支付的金额 = 这个商品可以得到的积分
+         *  然后累加得到总增加的积分数量
+         */
+        BigDecimal totalScoreAdd = BigDecimal.ZERO;
+        for(MallOrderItem mallOrderItem : mallOrderItemList){
+            Long goodsId = mallOrderItem.getGoodsId();
+            MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
+            if(ObjectUtil.isEmpty(mallGoods)){
+                continue;
+            }
+            BigDecimal presentPrice = new BigDecimal(mallGoods.getPresentPrice());
+            BigDecimal costPrice = mallGoods.getCostPrice();
+            BigDecimal subtractPrice = presentPrice.subtract(costPrice);//现价和成本价之间的差价
+            if(subtractPrice.compareTo(BigDecimal.ZERO) <= 0){
+                continue;
+            }
+            BigDecimal multiply = subtractPrice.divide(presentPrice, 2, BigDecimal.ROUND_DOWN).multiply(mallOrderItem.getAmount());
+            totalScoreAdd = totalScoreAdd.add(multiply);
+        }
+        if(totalScoreAdd.compareTo(BigDecimal.ZERO) <= 0){
+            return;
+        }
+        BigDecimal bigDecimal = totalScoreAdd.add(mallMemberWallet.getScore()).setScale(2, BigDecimal.ROUND_DOWN);
+        mallMemberWallet.setScore(bigDecimal);
+        mallMemberWallet.setBalance(mallMemberWallet.getBalance());
+        mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet);
+    }
 }

--
Gitblit v1.9.1