Просмотр исходного кода

feature/NG-28: Adjusting Service Award Settlement.

kevin 1 год назад
Родитель
Сommit
7d49dff0ba
1 измененных файлов с 21 добавлено и 10 удалено
  1. 21 10
      common/helpers/bonus/CalcServeBonusCalc.php

+ 21 - 10
common/helpers/bonus/CalcServeBonusCalc.php

@@ -596,7 +596,9 @@ class CalcServeBonusCalc extends BaseObject {
                 }
                 unset($perfData, $decRoleBonusFrom);
                 LoggerTool::debug(json_encode(['FWBonusPerfData-P2', $userId, $validPvPcs]));
-                if ( $validPvPcs <= 0 ) continue;
+                if ($validPvPcs <= 0) {
+                    continue;
+                }
 
                 // 会员被报单时的报单中心
                 $bonusUserId = DecOrder::find()->where('TO_USER_ID=:TO_USER_ID', [':TO_USER_ID' => $userId])->select('DEC_ID')->orderBy('CREATED_AT DESC')->scalar();
@@ -605,19 +607,31 @@ class CalcServeBonusCalc extends BaseObject {
                 //计算级别之后更新过userInfo的缓存,缓存中级别发生了变化
                 $bonusUserInfo = CalcCache::getUserInfo($bonusUserId, $this->_periodNum);
                 $isDec = $bonusUserInfo['IS_DEC'];
-                if($isDec == 0) return self::LOOP_CONTINUE;
+                if ($isDec == 0) {
+                    continue;
+                }
                 $decRoleId = $bonusUserInfo['DEC_ROLE_ID'];
-                if( !$decRoleId ) return self::LOOP_CONTINUE;
-                if( !isset($this->_decRoleConfig[$decRoleId]) ) return self::LOOP_CONTINUE;
+                if (!$decRoleId ) {
+                    continue;
+                }
+                if (!isset($this->_decRoleConfig[$decRoleId])) {
+                    continue;
+                }
 
+                // 计算奖金比例了
                 $parentDecRoleLevel = $this->_decRoleConfig[$decRoleId];
                 $parentFwBonusPercent = $parentDecRoleLevel['FW_BONUS_PERCENT'] ?? 0;
-                $cacheMaxPercent = CalcCache::fwMaxBonusPercent($userId, $this->_periodNum);
+                $cacheMaxPercent = CalcCache::fwMaxBonusPercent($bonusUserId, $this->_periodNum);
                 $diffPercent = $parentFwBonusPercent - $cacheMaxPercent;
-                if( $diffPercent <= 0 ) return self::LOOP_CONTINUE;
+                if ($diffPercent <= 0) {
+                    continue;
+                }
 
+                // 计算奖金
                 $fwBonus = $validPvPcs * $diffPercent / 100;
-                if( $fwBonus <= 0  ) return self::LOOP_CONTINUE;
+                if ( $fwBonus <= 0) {
+                    continue;
+                }
 
                 //给本人添加服务奖比例
                 CalcCache::fwMaxBonusPercent($bonusUserId, $this->_periodNum, $parentFwBonusPercent);
@@ -625,9 +639,6 @@ class CalcServeBonusCalc extends BaseObject {
                 CalcCache::saveFwBonusList($bonusUserId, $this->_periodNum, $fwBonus, ['fromUid'=>$userId, 'fromPvPcs'=>$validPvPcs]);
                 CalcCache::addHasFwBonusUsers($bonusUserId, $this->_periodNum);
 
-                //达到最大的比例就不在向上找了
-//                unset($bonusUserId, $bonusUserInfo, $isDec, $decRoleId, $parentDecRoleLevel, $parentFwBonusPercent, $cacheMaxPercent, $diffPercent, $fwBonus);
-
 //                unset($userId, $validPvPcs);
             }