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

修改判断是否活跃错误的逻辑

zxiansheng 4 лет назад
Родитель
Сommit
ee29bc6efb
1 измененных файлов с 16 добавлено и 5 удалено
  1. 16 5
      common/helpers/bonus/BonusCalc.php

+ 16 - 5
common/helpers/bonus/BonusCalc.php

@@ -2994,11 +2994,11 @@ class BonusCalc extends BaseObject {
         //         unset($monthSumData, $bonusGxSum, $bonusGlSum);
         //     }
         // }
-
         if( $this->_isCalcMonth ) {
             // 将查看是否复消300的逻辑,改成月结时判断当前月有一周活跃则本月活跃
             // 1. 获取此业绩期的月份
             $periodInfo = Period::getInfoByPeriodNum($this->_periodNum);
+            
             $calcMonth = $periodInfo['CALC_YEAR'].'-'.$periodInfo['CALC_MONTH']; // 2025-7
             // 获取此月的第一天和最后一天时间戳
             $fday = date('Y-m-01', strtotime($calcMonth));
@@ -3006,12 +3006,23 @@ class BonusCalc extends BaseObject {
             $ftime = strtotime($fday);
             $ltime = strtotime($lday.' 23:59:59');
             // 2. 根据业绩期的月份,判断用户是否是活跃状态.
-            // "select `ID`  from `AR_PERF_ACTIVE_USER` where (`SRATR_AT` <= {$ftime}  AND `END_AT` >= {$ftime})"
             $fxPvStatus = PerfActiveUser::findUseDbCalc()
             ->select('USER_ID')
-            ->andFilterWhere(['>=', 'SRATR_AT', $ftime])
-            ->andFilterWhere(['<=', 'END_AT', $ftime])
-            ->find();
+            ->where("USER_ID=:USER_ID ", [':USER_ID' => $userId])
+            ->andWhere(['or',
+                [
+                    'and',
+                    ['>=', 'SRATR_AT', $ftime],
+                    ['<=', 'SRATR_AT', $ltime]
+                ],
+                [
+                    'and',
+                    ['>=', 'END_AT', $ftime],
+                    ['<=', 'END_AT', $ltime]
+                ]
+            ])
+            ->asArray()
+            ->all();
             if ( !empty($fxPvStatus) ) {//加上本期和往期的共享和管理奖
                 $monthSumData = CalcBonus::findUseSlaves()->select('SUM(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, 'CALC_MONTH'=>$this->_calcYearMonth])->asArray()->one();
                 $bonusGxSum = $monthSumData['BONUS_GX_SUM'] ?? 0;