root hace 3 años
padre
commit
411c4751cb
Se han modificado 1 ficheros con 25 adiciones y 8 borrados
  1. 25 8
      common/helpers/bonus/BonusCalc.php

+ 25 - 8
common/helpers/bonus/BonusCalc.php

@@ -1551,7 +1551,7 @@ class BonusCalc extends BaseObject {
                     // $deductData = $this->deduct($bonusUserId, $bonus);
                     // CalcCache::bonus($bonusUserId, $this->_periodNum, 'BONUS_GX', $bonus, $deductData,'',true);
 
-                    // // 20220524 共享奖金,前三期只展示原奖金,最后一期月节点,才展示实发还有复消积分
+                    // 
                     // 非月节点,共享奖实发覆盖成0. 只有月节点期的时候,才sum一下总共享奖原奖金,再扣管理费和复消积分
                     CalcCache::bonus($bonusUserId, $this->_periodNum, 'BONUS_GX', $bonus);
                     CalcCache::addHasMonthBonusUsers($bonusUserId, $this->_periodNum);
@@ -1567,10 +1567,10 @@ class BonusCalc extends BaseObject {
                         'LAST_FROM_DEC_LV' => $userBaseInfo['DEC_LV'],
                         'LAST_FROM_EMP_LV' => $userEmpLevel,
                         'LAST_FROM_STATUS' => $userBaseInfo['STATUS'],
-                        'AMOUNT' => $deductData['surplus'],
+                        'AMOUNT' => 0, // $deductData['surplus'], // 20220524 共享奖金,前三期只展示原奖金,最后一期月节点,才展示实发还有复消积分
                         'ORI_BONUS' => $bonus,
-                        'RECONSUME_POINTS' => $deductData['reConsumePoints'],
-                        'MANAGE_TAX' => $deductData['manageTax'],
+                        'RECONSUME_POINTS' => 0, // $deductData['reConsumePoints'],// 20220524 共享奖金,前三期只展示原奖金,最后一期月节点,才展示实发还有复消积分
+                        'MANAGE_TAX' => 0, //$deductData['manageTax'], // 20220524 共享奖金,前三期只展示原奖金,最后一期月节点,才展示实发还有复消积分
                         'PERIOD_NUM' => $this->_periodNum,
                         'CALC_YEAR' => $this->_calcYear,
                         'CALC_MONTH' => $this->_calcYearMonth,
@@ -1589,7 +1589,7 @@ class BonusCalc extends BaseObject {
                         ]),
                     ];
 
-                    unset($bonusUserDataEvery, $bonusUserId, $bonus, $bonusUserBaseInfo, $deductData);
+                    unset($bonusUserDataEvery, $bonusUserId, $bonus, $bonusUserBaseInfo);
                 }
                 unset($userId, $bonusUserData, $userBaseInfo, $userEmpLevel, $bonusPercentOne, $bonusPercentTwo, $incomeBonus, $sharePerson);
 //                echo ('内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
@@ -3285,8 +3285,9 @@ class BonusCalc extends BaseObject {
                 $blueStartAmount = isset($userBS['AMOUNT']) && !empty($userBS['AMOUNT']) ? $userBS['AMOUNT'] : 0; // 奖金
                 $buleStartOriBonus = isset($userBS['ORI_BONUS']) && !empty($userBS['ORI_BONUS']) ? $userBS['ORI_BONUS'] : 0; // 原奖金
                 // $buleStartManageTax = isset($userBS['MANAGE_TAX']) && !empty($userBS['MANAGE_TAX']) ? $userBS['MANAGE_TAX'] : 0; // 管理费
+                // 20220524 共享奖金,前三期只展示原奖金,最后一期月节点,才展示实发还有复消积分.获取总gx原奖金,一起扣除管理费和复消积分
                 $monthSumData = CalcBonus::findUseSlaves()
-                ->select('SUM(BONUS_GX) AS BONUS_GX_SUM, SUM(BONUS_GL) AS BONUS_GL_SUM')
+                ->select('SUM(ORI_BONUS_GX) AS BONUS_GX_SUM, SUM(BONUS_GL) AS BONUS_GL_SUM')
                 ->where('USER_ID=:USER_ID AND CALC_MONTH=:CALC_MONTH', 
                     [
                         'USER_ID'=>$userId, 
@@ -3297,10 +3298,23 @@ class BonusCalc extends BaseObject {
                 ->one();
                 $bonusGxSum = $monthSumData['BONUS_GX_SUM'] ?? 0;
                 $bonusGlSum = $monthSumData['BONUS_GL_SUM'] ?? 0;
-                $realBonusGx += $bonusGxSum + $bonus['BONUS_GX'];
+                $realBonusGx += $bonusGxSum + $bonus['ORI_BONUS_GX'];
+                if ($realBonusGx > 0) {
+                    $gxDeduct = $this->deduct($userId, $realBonusGx); 
+                    // 月共享奖金实发,月共享奖金复消积分,月共享奖金管理费
+                    $gxRealMonth = $gxDeduct['surplus'];
+                    $gxManageMonth = $gxDeduct['manageTax'];
+                    $gxPointMonth = $gxDeduct['reConsumePoints'];
+                } else {
+                    $gxRealMonth = $gxManageMonth = $gxPointMonth = 0;
+                }
+                // 实发共享奖,还需要再扣除管理费和复消积分
+                $bonus['BONUS_GX'] = $gxRealMonth;
+                $bonus['RECONSUME_POINTS'] = $bonus['RECONSUME_POINTS']+$gxPointMonth;
                 $realBonusGl += $bonusGlSum + $bonus['BONUS_GL'];
+                $bonus['MANAGE_TAX'] = $bonus['MANAGE_TAX'] + $gxManageMonth;
                 $realBonusBs = $blueStartAmount; // 蓝星奖直接取数据库中算好的值PRODUCT_POINT
-                $bonusReal += $realBonusGx + $realBonusBs + $realBonusGl;
+                $bonusReal += $gxRealMonth + $realBonusBs + $realBonusGl;
                 $exchangePoints = isset($userBS['PRODUCT_POINT']) && !empty($userBS['PRODUCT_POINT']) ? $userBS['PRODUCT_POINT'] : 0; // 兑换积分
                 unset($monthSumData, $bonusGxSum, $bonusGlSum);
             } else {
@@ -3308,6 +3322,9 @@ class BonusCalc extends BaseObject {
                 $oriBonusBs = isset($bonus['ORI_BONUS_BS']) && $bonus['ORI_BONUS_BS'] > 0 ? $bonus['ORI_BONUS_BS'] : 0;
                 $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] - $oriBonusBs;
             }
+        } else {
+            // 非月节点,共享奖实发覆盖成0. 只有月节点期的时候,才sum一下总共享奖原奖金,再扣管理费和复消积分
+            $bonus['BONUS_GX'] = 0;
         }
         // if( $this->_isCalcMonth ) {
         //     // 将查看是否复消300的逻辑,改成月结时判断当前月有一周活跃则本月活跃