From 512f368d7d8e71ee72a8f71dd7d2146f4c64f774 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 02 六月 2021 18:54:58 +0800
Subject: [PATCH] 特价相关bug修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java |  144 ++++++++++++++++++++++++++++++------------------
 1 files changed, 90 insertions(+), 54 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
index 5f4ab50..c70caa4 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
@@ -8,6 +8,7 @@
 import javax.annotation.Resource;
 
 import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.lijin.manager.UserLijinMnager;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import org.springframework.stereotype.Service;
 
@@ -33,16 +34,19 @@
     @Resource
     private UserInfoService userInfoService;
 
+    @Resource
+    private UserLijinMnager userLijinMnager;
+
     @Override
     public BigDecimal computeBaseFanliMoney(CommonOrder order) {
         SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
-        return getBaseCommission(order,system);
+        return getBaseCommission(order, system);
     }
 
     @Override
     public BigDecimal computeBaseShareMoney(CommonOrder order) {
         SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
-        return getBaseCommission(order,system);
+        return getBaseCommission(order, system);
     }
 
     private UserLevelEnum getCommonUserLevel(Date time, UserLevelEnum userLevel) {
@@ -68,12 +72,18 @@
     @Override
     public BigDecimal computeFanliMoney(CommonOrder order, UserLevelEnum userLevel) {
         SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
-        BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(),system)
-                .add(getOfficialSubsidyRate(order.getThirdCreateTime(),
-                        getCommonUserLevel(order.getThirdCreateTime(), userLevel), false,system));
-        if (userLevel == UserLevelEnum.normalVIP) {
-            rate = new BigDecimal("61");
+        BigDecimal rate = null;
+        if (system == SystemEnum.yhqjx) {
+            rate = userLijinMnager.getUserFanliRate(order.getUserInfo().getId(), order.getThirdCreateTime());
+        } else {
+            rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(), system)
+                    .add(getOfficialSubsidyRate(order.getThirdCreateTime(),
+                            getCommonUserLevel(order.getThirdCreateTime(), userLevel), false, system));
+            if (userLevel == UserLevelEnum.normalVIP) {
+                rate = new BigDecimal("61");
+            }
         }
+
 
         if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
             return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
@@ -86,13 +96,18 @@
     @Override
     public BigDecimal computeShareMoney(CommonOrder order, UserLevelEnum userLevel) {
         SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
-        BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(),system)
-                .add(getOfficialSubsidyRate(order.getThirdCreateTime(),
-                        getCommonUserLevel(order.getThirdCreateTime(), userLevel), true,system));
 
+        if (system == SystemEnum.yhqjx) {
+            return new BigDecimal(0);
+        }
+
+        BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(), system)
+                .add(getOfficialSubsidyRate(order.getThirdCreateTime(),
+                        getCommonUserLevel(order.getThirdCreateTime(), userLevel), true, system));
         if (userLevel == UserLevelEnum.normalVIP) {
             rate = new BigDecimal("61");
         }
+
 
         if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
             return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
@@ -106,9 +121,12 @@
     public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer,
                                               List<UserTeamLevel> bossLevelList) {
         SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
+        if (system == SystemEnum.yhqjx) {
+            return new BigDecimal(0);
+        }
         BigDecimal rate = null;
         if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
-            rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 1,system).getRate();
+            rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 1, system).getRate();
             if (rate == null)
                 return null;
             if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
@@ -116,12 +134,12 @@
             else if (order.getEstimate() != null)
                 return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
         } else {// 鑰佺殑杩斿埄姣斾緥
-            rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_6", order.getThirdCreateTime().getTime(),system);
+            rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_6", order.getThirdCreateTime().getTime(), system);
             if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
-                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)),
+                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)),
                         new BigDecimal(100));
             else if (order.getEstimate() != null)
-                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)),
+                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)),
                         new BigDecimal(100));
         }
 
@@ -132,9 +150,12 @@
     public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer,
                                                List<UserTeamLevel> bossLevelList) {
         SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId());
+        if (system == SystemEnum.yhqjx) {
+            return new BigDecimal(0);
+        }
         BigDecimal rate = null;
         if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
-            rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 2,system).getRate();
+            rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 2, system).getRate();
             if (rate == null)
                 return null;
             if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
@@ -142,12 +163,12 @@
             else if (order.getEstimate() != null)
                 return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
         } else {// 鑰佺殑杩斿埄姣斾緥
-            rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_7", order.getThirdCreateTime().getTime(),system);
+            rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_7", order.getThirdCreateTime().getTime(), system);
             if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
-                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)),
+                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)),
                         new BigDecimal(100));
             else if (order.getEstimate() != null)
-                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)),
+                return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)),
                         new BigDecimal(100));
         }
 
@@ -165,7 +186,10 @@
      * @Title: getOfficialSubsidyRate
      * @Description:
      */
-    private BigDecimal getOfficialSubsidyRate(Date date, UserLevelEnum userLevel, boolean share,SystemEnum system) {
+    private BigDecimal getOfficialSubsidyRate(Date date, UserLevelEnum userLevel, boolean share, SystemEnum system) {
+        if (system == SystemEnum.yhqjx) {
+            return new BigDecimal(0);
+        }
         String key = null;
         if (share)
             key = String.format("official_subsidy_share_%s", userLevel.getLevel());
@@ -174,24 +198,30 @@
         BigDecimal rate = null;
         if (date != null)
             rate = hongBaoManageService.getByKeyAndMaxTimeCache(key, TimeUtil
-                    .convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"),system);
+                    .convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"), system);
         else
-            rate = new BigDecimal(hongBaoManageService.get(key,system));
+            rate = new BigDecimal(hongBaoManageService.get(key, system));
         return rate;
     }
 
-    private BigDecimal getRateByLevel(UserLevelEnum level, Date date,SystemEnum system) {
+    private BigDecimal getRateByLevel(UserLevelEnum level, Date date, SystemEnum system) {
+        if (system == SystemEnum.yhqjx) {
+            return new BigDecimal(0);
+        }
         BigDecimal baseRate = hongBaoManageService.getBaseFanliRateCache(
-                TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"),system);
+                TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"), system);
 
-        BigDecimal subsidyRate = getOfficialSubsidyRate(date, level, false,system);
+        BigDecimal subsidyRate = getOfficialSubsidyRate(date, level, false, system);
 
         return baseRate.add(subsidyRate);
     }
 
     @Override
     public UserTeamRate getTeamRewardRate(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList, Date date,
-                                          int deep,SystemEnum system) {
+                                          int deep, SystemEnum system) {
+        if (system == SystemEnum.yhqjx) {
+            return null;
+        }
         if (deep == 1) {// 鐩存帴閭�璇蜂汉濂栭噾
             UserTeamLevel boss = bossLevelList.get(0);
             BigDecimal rate = null;
@@ -199,12 +229,12 @@
                 return null;
 
             if (buyerLevel == UserLevelEnum.daRen && boss.getLevel() == UserLevelEnum.daRen) {
-                rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(),system);
+                rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(), system);
             } else if (buyerLevel == UserLevelEnum.normalVIP && boss.getLevel() == UserLevelEnum.normalVIP) {
-                rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(),system);
+                rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(), system);
             } else {
-                BigDecimal bossRate = getRateByLevel(boss.getLevel(), date,system);
-                BigDecimal buyerRate = getRateByLevel(buyerLevel, date,system);
+                BigDecimal bossRate = getRateByLevel(boss.getLevel(), date, system);
+                BigDecimal buyerRate = getRateByLevel(buyerLevel, date, system);
                 rate = bossRate.subtract(buyerRate);
                 if (rate.compareTo(new BigDecimal(0)) < 0)
                     rate = new BigDecimal(0);
@@ -216,34 +246,34 @@
             if (bossLevelList == null || bossLevelList.size() < 2)
                 return null;
 
-            BigDecimal buyerRate = getRateByLevel(buyerLevel, date,system);
-            BigDecimal firstRate = getTeamRewardRate(buyerLevel, bossLevelList, date, 1,system).getRate();
+            BigDecimal buyerRate = getRateByLevel(buyerLevel, date, system);
+            BigDecimal firstRate = getTeamRewardRate(buyerLevel, bossLevelList, date, 1, system).getRate();
 
             UserTeamLevel boss = bossLevelList.get(1);
             UserTeamLevel firstBoss = bossLevelList.get(0);
             BigDecimal rate = null;
             if (buyerLevel == UserLevelEnum.daRen && firstBoss.getLevel() == UserLevelEnum.daRen) {
                 if (boss.getLevel() == UserLevelEnum.daRen)
-                    rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(),system);
+                    rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(), system);
                 else {
                     rate = null;
                 }
             } else if (buyerLevel == UserLevelEnum.normalVIP && firstBoss.getLevel() == UserLevelEnum.normalVIP) {
                 if (boss.getLevel() == UserLevelEnum.normalVIP)
-                    rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(),system);
+                    rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(), system);
                 else {
                     rate = null;
                 }
             } else if (buyerLevel == UserLevelEnum.daRen && firstBoss.getLevel() == UserLevelEnum.normalVIP) {
                 if (boss.getLevel() == UserLevelEnum.normalVIP)
-                    rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(),system);
+                    rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(), system);
                 else {
                     rate = null;
                 }
             }
             // 鏋佸樊璁$畻娉�
             if (rate == null) {
-                rate = getRateByLevel(boss.getLevel(), date,system).subtract(buyerRate).subtract(firstRate);
+                rate = getRateByLevel(boss.getLevel(), date, system).subtract(buyerRate).subtract(firstRate);
                 if (rate.compareTo(new BigDecimal(0)) < 0)
                     rate = new BigDecimal(0);
             }
@@ -255,25 +285,28 @@
 
     @Override
     public List<UserTeamRate> getTeamRewardMoreThan2LevelRates(UserLevelEnum buyerLevel,
-                                                               List<UserTeamLevel> bossLevelList, Date date,SystemEnum system) {
+                                                               List<UserTeamLevel> bossLevelList, Date date, SystemEnum system) {
+        if (system == SystemEnum.yhqjx) {
+            return null;
+        }
         if (bossLevelList == null || bossLevelList.size() < 3)
             return null;
 
-        UserTeamRate firstBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 1,system);
+        UserTeamRate firstBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 1, system);
         if (firstBoss == null)
             return null;
-        UserTeamRate secondBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 2,system);
+        UserTeamRate secondBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 2, system);
         if (secondBoss == null)
             return null;
 
-        BigDecimal buyerRate = getRateByLevel(buyerLevel, date,system);
+        BigDecimal buyerRate = getRateByLevel(buyerLevel, date, system);
 
         BigDecimal totalRate = firstBoss.getRate().add(secondBoss.getRate()).add(buyerRate);
 
         List<UserTeamRate> rateList = new ArrayList<>();
 
         for (int i = 2; i < bossLevelList.size(); i++) {
-            BigDecimal rate = getRateByLevel(bossLevelList.get(i).getLevel(), date,system);
+            BigDecimal rate = getRateByLevel(bossLevelList.get(i).getLevel(), date, system);
             if (rate.compareTo(totalRate) > 0) {
                 BigDecimal subRate = rate.subtract(totalRate);
                 totalRate = subRate.add(totalRate);// 绱鍒嗘垚姣斾緥
@@ -287,7 +320,10 @@
     // 鍥㈤槦鍒嗙孩
     @Override
     public List<UserTeamRate> getTeamDividentsRates(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList,
-                                                    Date date,SystemEnum system) {
+                                                    Date date, SystemEnum system) {
+        if (system == SystemEnum.yhqjx) {
+            return null;
+        }
         List<UserTeamRate> rateList = new ArrayList<>();
 
         List<UserTeamLevel> levelList = new ArrayList<>();
@@ -318,9 +354,9 @@
         }
 
         BigDecimal highTotalRate = hongBaoManageService.getByKeyAndMaxTime("dividents_rate_same_level_high",
-                date.getTime(),system);
+                date.getTime(), system);
         BigDecimal vipTotalRate = hongBaoManageService.getByKeyAndMaxTime("dividents_rate_same_level_super",
-                date.getTime(),system);
+                date.getTime(), system);
 
         if (vipList.size() > 0 && highList.size() > 0) {
 
@@ -364,7 +400,7 @@
         for (UserTeamLevel level : bossLevelList) {
             if (level.getLevel() == UserLevelEnum.tearcher) {
                 rateList.add(new UserTeamRate(level,
-                        hongBaoManageService.getByKeyAndMaxTime("dividents_rate_tearcher", date.getTime(),system)));
+                        hongBaoManageService.getByKeyAndMaxTime("dividents_rate_tearcher", date.getTime(), system)));
                 break;
             }
         }
@@ -374,16 +410,16 @@
 
     @Override
     public UserTeamRate getTearcherSubsidy(UserLevelEnum buyerLevel, BigDecimal money,
-                                           List<UserTeamLevel> bossLevelList, Date date,SystemEnum system) {
+                                           List<UserTeamLevel> bossLevelList, Date date, SystemEnum system) {
         // TODO Auto-generated method stub
         return null;
     }
 
-    private BigDecimal getFanliRate(Date time, UserLevelEnum userLevel,SystemEnum system) {
+    private BigDecimal getFanliRate(Date time, UserLevelEnum userLevel, SystemEnum system) {
         BigDecimal rate = hongBaoManageService
                 .getBaseFanliRateCache(TimeUtil
-                        .convertToTimeTemp(TimeUtil.getGernalTime(time.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"),system)
-                .add(getOfficialSubsidyRate(time, getCommonUserLevel(time, userLevel), false,system));
+                        .convertToTimeTemp(TimeUtil.getGernalTime(time.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"), system)
+                .add(getOfficialSubsidyRate(time, getCommonUserLevel(time, userLevel), false, system));
 
         if (userLevel == UserLevelEnum.normalVIP)
             rate = new BigDecimal("61");
@@ -392,10 +428,10 @@
 
     @Override
     public GoodsMoneyConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel, SystemEnum system) {
-        BigDecimal fanLiRate = getFanliRate(new Date(), userLevel,system);
+        BigDecimal fanLiRate = getFanliRate(new Date(), userLevel, system);
         BigDecimal shareRate = fanLiRate;
         GoodsMoneyConfigParamsDTO paramsDTO = new GoodsMoneyConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
-                getFanliRate(new Date(), UserLevelEnum.superVIP,system));
+                getFanliRate(new Date(), UserLevelEnum.superVIP, system));
         if (VersionUtil.greaterThan_2_0_5(platform, version)) {
             paramsDTO.setMaxRewardRate(null);
         }
@@ -404,13 +440,13 @@
 
     @Override
     public GoodsMoneyConfigParamsDTO getShowComputeRate(String platform, String version, SystemEnum system) {
-        return getShowComputeRate(platform, version, UserLevelEnum.daRen,system);
+        return getShowComputeRate(platform, version, UserLevelEnum.daRen, system);
     }
 
     @Override
-    public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date,SystemEnum system) {
-        BigDecimal rate = hongBaoManageService.getBaseFanliRate(date.getTime(),system)
-                .add(getOfficialSubsidyRate(date, getCommonUserLevel(date, userLevel), false,system));
+    public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date, SystemEnum system) {
+        BigDecimal rate = hongBaoManageService.getBaseFanliRate(date.getTime(), system)
+                .add(getOfficialSubsidyRate(date, getCommonUserLevel(date, userLevel), false, system));
         return rate;
     }
 

--
Gitblit v1.8.0