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

共享奖金,校验原报单管理奖金得时候,业绩980限制改成 得奖人必须有当期得报单管理奖金

zxiansheng 3 лет назад
Родитель
Сommit
38cdb3060e
1 измененных файлов с 49 добавлено и 7 удалено
  1. 49 7
      common/helpers/bonus/BonusCalc.php

+ 49 - 7
common/helpers/bonus/BonusCalc.php

@@ -1410,8 +1410,14 @@ class BonusCalc extends BaseObject {
             foreach ($allData as $userId) {
                 //判断$userId 能否得共享奖
 
-                //判断 是否本期小市场(安置关系)新增980pv 能否得奖
-                if ( !$this->checkSmallMarketPerf($userId) ) {
+                // //判断 是否本期小市场(安置关系)新增980pv 能否得奖
+                // if ( !$this->checkSmallMarketPerf($userId) ) {
+                //     unset($userId);
+                //     continue;
+                // }
+
+                // 20220407 小市场980判断->改成判断此期用户是否有原报单团队奖金
+                if ( !$this->checkHasOriBonusQyBd($userId) ) {
                     unset($userId);
                     continue;
                 }
@@ -1517,11 +1523,13 @@ class BonusCalc extends BaseObject {
                 $userEmpLevel = $userBaseInfo['EMP_LV'];
                 foreach ($bonusUserData as $bonusUserDataEvery) {
                     $bonusUserId = $bonusUserDataEvery['bonusUid'];
-                    //判断 是否本期小市场(安置关系)新增980pv 能否得奖
-                    if ( $bonusUserDataEvery['validMinPv'] && !$this->checkSmallMarketPerf($bonusUserId) ) {
-//                        unset($bonusUserDataEvery, $bonusUserId);
+                    //判断 是否本期小市场(安置关系)新增980pv 能否得奖->20220407改成判断得奖人此期是否有报单团队奖金
+                    // if ( $bonusUserDataEvery['validMinPv'] && !$this->checkSmallMarketPerf($bonusUserId) ) { 20220407
+                    if ( $bonusUserDataEvery['validMinPv'] && !$this->checkHasOriBonusQyBd($bonusUserId) ) {
+//                        unset($bonusUserDataEvery, $bonusUserId); 
 //                        continue;
                         //得奖人不满足980就找一个满足980的人来得这个奖
+                        // 20220407改成判断得奖人此期是否有报单团队奖金,如果没有则找一个此期有报单团队奖金得人
                         $bonusUserId = $this->getMinBdPvNetworkParent($bonusUserId, $openFindLimit, $findLimitTimes);
                         if ( !$bonusUserId ) {
                             unset($bonusUserDataEvery, $bonusUserId);
@@ -2716,6 +2724,19 @@ class BonusCalc extends BaseObject {
         return true;
     }
 
+    /**
+     * 共享奖,判断当期此用户,是否有原报单团队奖金
+     */
+    public function checkHasOriBonusQyBd($userId) {
+        //判断$parent是否有首单团队奖
+        $bonus = CalcCache::bonus($userId, $this->_periodNum);
+        if( isset($bonus['ORI_BONUS_QY_BD']) && $bonus['ORI_BONUS_QY_BD'] > 0 ) {
+            return true;
+        }
+
+        return false;
+    }
+
     /**
      * 判断除大市场外 其它市场的报单业绩
      * @param $userId
@@ -2777,7 +2798,7 @@ class BonusCalc extends BaseObject {
     }
 
     /**
-     * 获取有最小报单PV的用效父级
+     * 获取有最小报单PV的用效父级 20220407修改成是否此期此用户有原报单团队奖金
      * @param $userId
      * @return string
      */
@@ -2785,7 +2806,7 @@ class BonusCalc extends BaseObject {
         $validParentId = '';
         $validDeep = 1;
         $this->loopNetworkParentDo($userId, function ($parent) use(&$validParentId,&$validDeep,$openFindLimit,$findLimitTimes) {
-            if ( $this->checkSmallMarketPerf($parent['PARENT_UID']) ) {
+            if ( $this->checkHasOriBonusQyBd($parent['PARENT_UID']) ) {
                 $validParentId = $parent['PARENT_UID'];
                 unset($parent);
                 return self::LOOP_FINISH;
@@ -2802,6 +2823,27 @@ class BonusCalc extends BaseObject {
 
         return$validParentId;
     }
+    // public function getMinBdPvNetworkParent($userId, $openFindLimit = 1, $findLimitTimes = 5) {
+    //     $validParentId = '';
+    //     $validDeep = 1;
+    //     $this->loopNetworkParentDo($userId, function ($parent) use(&$validParentId,&$validDeep,$openFindLimit,$findLimitTimes) {
+    //         if ( $this->checkSmallMarketPerf($parent['PARENT_UID']) ) {
+    //             $validParentId = $parent['PARENT_UID'];
+    //             unset($parent);
+    //             return self::LOOP_FINISH;
+    //         }
+    //         // 只找5层
+    //         if ( $openFindLimit && $validDeep >= $findLimitTimes ) {
+    //             unset($parent);
+    //             return self::LOOP_FINISH;
+    //         }
+
+    //         $validDeep += 1;
+    //         unset($parent);
+    //     });
+
+    //     return$validParentId;
+    // }
 
     /**
      * 按级别的收入上限