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