From 8654ec54f22fec61a996e024ba4d0105aa7ba3f9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 15 Jun 2022 11:12:32 +0800
Subject: [PATCH] add static profit

---
 src/test/java/cc/mrbird/febs/ProfitTest.java                                |    5 +++++
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java |   10 +++++++++-
 src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java                     |    9 +++++++++
 3 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index 7b18035..aa97eb0 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -53,6 +53,15 @@
         memberProfitService.thankfulProfit();
     }
 
+
+    /**
+     * 静态分红
+     */
+    @Scheduled(cron = "0 30 2 * * ?")
+    public void staticProfitJob() {
+        memberProfitService.staticProfit();
+    }
+
     /**
      * 排名奖 每月1号
      */
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 f460d01..ab73e32 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
@@ -62,7 +62,7 @@
         }
 
         DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.STATIC_BONUS.getType(), DataDictionaryEnum.STATIC_BONUS.getCode());
-        BigDecimal perProfit = totalIncome.divide(new BigDecimal(dic.getValue()), 2, RoundingMode.HALF_UP).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
+        BigDecimal perProfit = totalIncome.multiply(new BigDecimal(dic.getValue()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
 
         for (MallMember member : members) {
             List<MallGoods> goodsList = mallGoodsMapper.selectOrderGoodsList(member.getId(), profitDate);
@@ -72,6 +72,10 @@
             }
 
             for (MallGoods goods : goodsList) {
+                if (goods.getIsNormal() == 1) {
+                    continue;
+                }
+
                 BigDecimal goodsProfit = goods.getStaticProp().multiply(perProfit);
 
                 int reduce = walletService.reduce(goodsProfit, member.getId(), "score");
@@ -308,6 +312,10 @@
             }
 
             BigDecimal reduceProfit = income.multiply(prop);
+            if (reduceProfit.compareTo(BigDecimal.ZERO) > 0) {
+                continue;
+            }
+
             int reduce = walletService.reduce(reduceProfit.negate(), mallMember.getId(), "commission");
             if (reduce == 2) {
                 continue;
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index a457ea4..2c93c7f 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -27,4 +27,9 @@
     public void dynamicProfit() {
         memberProfitService.dynamicProfit(45L);
     }
+
+    @Test
+    public void thankfulProfit() {
+        memberProfitService.thankfulProfit();
+    }
 }

--
Gitblit v1.9.1