Ver Fonte

Merge branch 'bugfix/remainpv-not-negative' into dev

# Conflicts:
#	common/helpers/bonus/BonusSend.php
theo há 3 anos atrás
pai
commit
4b177e46db
2 ficheiros alterados com 18 adições e 14 exclusões
  1. 15 13
      common/helpers/bonus/BonusSend.php
  2. 3 1
      common/helpers/bonus/PerfCalc.php

+ 15 - 13
common/helpers/bonus/BonusSend.php

@@ -243,7 +243,7 @@ class BonusSend extends BaseObject {
             // $this->_updatePercent(95);
             // $t9 = microtime(true);
             // echo('更新会员累计月业绩完成,耗时:' . round($t9 - $t8, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
-            
+
             // 开启子进程去完成下面的循环发放和循环改聘级和循环更新累计业绩
             /*$process = new Process('sendBonus', 3);
             $process->run(function($workId, $pmid){
@@ -274,17 +274,19 @@ class BonusSend extends BaseObject {
      *
      */
     private function _calcRemainPv(){
-        $orders = Order::find()->where('PERIOD_NUM=:PERIOD_NUM AND REMAIN_PV>0 AND IS_DELETE=0',[':PERIOD_NUM'=>$this->_periodNum])->asArray()->all();
+        $sysConfig = Cache::getSystemConfig();
+        $mesureUpCondition =  $sysConfig['monthPcsPvFxCondition']['VALUE']; // 月达标条件 NC默认300
+        $orders = Order::find()->where('PERIOD_NUM=:PERIOD_NUM AND REMAIN_PV>:MESURE_UP AND IS_DELETE=0',[':PERIOD_NUM'=>$this->_periodNum,':MESURE_UP'=>$mesureUpCondition])->asArray()->all();
         foreach($orders as $order){
             $oRemainPv = RemainPv::find()->where(['USER_ID' => $order['USER_ID']])->one();
-
+            $myRemainPv = $oRemainPv?$oRemainPv['REMAIN_PV']:0;
             $transactionRemain = \Yii::$app->db->beginTransaction();
             try{
                 $flowRemainPvModel = new FlowRemainPv();
                 $flowRemainPvModel->ID = $this->_generateSn();
                 $flowRemainPvModel->USER_ID = $order['USER_ID'];
                 $flowRemainPvModel->REMAIN_PV_FLOW = $order['REMAIN_PV'];
-                $flowRemainPvModel->REMAIN_PV_TOTAL = $oRemainPv?$oRemainPv['REMAIN_PV']:0 + $order['REMAIN_PV'];
+                $flowRemainPvModel->REMAIN_PV_TOTAL = $myRemainPv + $order['REMAIN_PV'];
                 $flowRemainPvModel->PERIOD_NUM = $this->_periodNum;
                 $flowRemainPvModel->UPDATED_AT = Date::nowTime();
                 $flowRemainPvModel->ORDER_SN = $order['SN'];
@@ -412,7 +414,7 @@ class BonusSend extends BaseObject {
         $allData = CalcBonus::findUseDbCalc()
         ->yearMonth($this->_calcYearMonth)
         ->where(
-            '(IS_SENT=0 OR IS_SENT=2) AND CALC_MONTH=:CALC_MONTH AND PERIOD_NUM=:PERIOD_NUM', 
+            '(IS_SENT=0 OR IS_SENT=2) AND CALC_MONTH=:CALC_MONTH AND PERIOD_NUM=:PERIOD_NUM',
             [':CALC_MONTH' => $this->_calcYearMonth, ':PERIOD_NUM' => $periodNum]
         )
         ->limit($this->_limit)
@@ -481,12 +483,12 @@ class BonusSend extends BaseObject {
                         ]);
                         // 2022/05/17 复消积分,直接发放到余额账户
                         // Cash::changeUserCash(
-                        //     $data['USER_ID'], 
-                        //     'CASH', 
-                        //     abs($data['RECONSUME_POINTS']), 
+                        //     $data['USER_ID'],
+                        //     'CASH',
+                        //     abs($data['RECONSUME_POINTS']),
                         //     [
                         //     'TRANSFER_SN' => Transfer::generateSN(),
-                        //     'DEAL_TYPE_ID' => DealType::BONUS_SEND, 
+                        //     'DEAL_TYPE_ID' => DealType::BONUS_SEND,
                         //     'REMARK' => '复销点数发放'
                         //     ]
                         // );
@@ -535,7 +537,7 @@ class BonusSend extends BaseObject {
             $allData = CalcBonusBS::findUseDbCalc()
             ->yearMonth($this->_calcYearMonth)
             ->where(
-                'CALC_MONTH=:CALC_MONTH AND PERIOD_NUM=:PERIOD_NUM', 
+                'CALC_MONTH=:CALC_MONTH AND PERIOD_NUM=:PERIOD_NUM',
                 [
                     ':CALC_MONTH' => $this->_calcYearMonth,
                     ':PERIOD_NUM' =>$this->_periodNum
@@ -648,8 +650,8 @@ class BonusSend extends BaseObject {
     public function updateActiveUser() {
         try {
             $ret = PerfActiveUser::updateAll(
-                ['IS_SENT' => 1], 
-                'PERIOD_NUM=:PERIOD_NUM AND IS_SENT=:IS_SENT', 
+                ['IS_SENT' => 1],
+                'PERIOD_NUM=:PERIOD_NUM AND IS_SENT=:IS_SENT',
                 ['IS_SENT'=>0, 'PERIOD_NUM'=>$this->_periodNum]
             );
 
@@ -1079,4 +1081,4 @@ class BonusSend extends BaseObject {
         unset($allData);
         return true;
     }
-}
+}

+ 3 - 1
common/helpers/bonus/PerfCalc.php

@@ -190,7 +190,9 @@ class PerfCalc {
      */
     public static function _createFakeOrder($periodNum){
         echo('假假假'.$periodNum. PHP_EOL);
-        $userHaveRemain = RemainPv::findAllAsArray('REMAIN_PV >0');
+        $sysConfig = Cache::getSystemConfig();
+        $mesureUpCondition =  $sysConfig['monthPcsPvFxCondition']['VALUE']; // 月达标条件 NC默认300
+        $userHaveRemain = RemainPv::findAllAsArray('REMAIN_PV >:MESURE_UP',[':MESURE_UP'=>$mesureUpCondition]);
         $currentPeriod = Period::getInfoByPeriodNum($periodNum);
         $sysConfig = Cache::getSystemConfig();
         $mesureUpCondition =  $sysConfig['monthPcsPvFxCondition']['VALUE']; // 月达标条件 NC默认300