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