From d41bbcde17f899035aff34890cafeda2cc23d30e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sat, 08 Apr 2023 12:32:33 +0800
Subject: [PATCH] 设置内转开关

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

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index bde3d03..214b3a8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -278,6 +278,11 @@
                 String levelNormal = MemberLevelEnum.NORMAL.getType();
                 BigDecimal cashPercentNormal = BigDecimal.ZERO;
                 BigDecimal scorePercentNormal = BigDecimal.ZERO;
+
+                DataDictionaryCustom poolScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                        PerkEnum.POOL_SCORE_PRICE.getType(),
+                        PerkEnum.POOL_SCORE_PRICE.getCode());
+                BigDecimal poolScorePrice = new BigDecimal(poolScorePriceDic.getValue() == null ? "1" : poolScorePriceDic.getValue());
                 for(MallMember teamPerkMember : mallMemberTeamPerk){
                     String level = teamPerkMember.getLevel();
                     //比较两个级别的大小,level大于levelNormal返回1
@@ -295,7 +300,10 @@
                         scorePercent = scorePercent.subtract(scorePercentNormal);
 
                         BigDecimal cashAmount = amountTC.multiply(cashPercent).setScale(2, BigDecimal.ROUND_DOWN);
+
+                        //如果是积分,除以当前价格,得到数量。
                         BigDecimal scoreCnt = amountTC.multiply(scorePercent).setScale(2, BigDecimal.ROUND_DOWN);
+                        scoreCnt = scoreCnt.divide(poolScorePrice, 2 ,BigDecimal.ROUND_DOWN);
                         if(cashAmount.compareTo(BigDecimal.ZERO) > 0){
                             addWalletInfoAndMoneyFlow(cashAmount,
                                     teamPerkMemberId,
@@ -340,6 +348,14 @@
             BigDecimal perkEnumDicPercent = new BigDecimal(perkEnumDic.getValue() == null ? "0" : perkEnumDic.getValue());
             //获得数量
             BigDecimal perkEnumDicPercentPerk = perkEnumDicPercent.multiply(AppContants.PERCENTAGE).multiply(amountTC).setScale(2, BigDecimal.ROUND_DOWN);
+            //如果是积分,除以当前价格,得到数量。
+            if(walletField.equals("score")){
+                DataDictionaryCustom poolScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                        PerkEnum.POOL_SCORE_PRICE.getType(),
+                        PerkEnum.POOL_SCORE_PRICE.getCode());
+                BigDecimal poolScorePrice = new BigDecimal(poolScorePriceDic.getValue() == null ? "1" : poolScorePriceDic.getValue());
+                perkEnumDicPercentPerk = perkEnumDicPercentPerk.divide(poolScorePrice, 2 ,BigDecimal.ROUND_DOWN);
+            }
             if(perkEnumDicPercentPerk.compareTo(BigDecimal.ZERO) > 0){
                 addWalletInfoAndMoneyFlow(perkEnumDicPercentPerk,memberId,walletField,type,flowType,orderNo);
             }

--
Gitblit v1.9.1