Explorar el Código

预计算增加 前三期限制,不能直接拿月结的月份

root hace 3 años
padre
commit
89161e5363
Se han modificado 1 ficheros con 5 adiciones y 4 borrados
  1. 5 4
      common/helpers/bonus/PreparePerfCalc.php

+ 5 - 4
common/helpers/bonus/PreparePerfCalc.php

@@ -810,13 +810,13 @@ class PreparePerfCalc {
         }
         // AR_PERF_ORDER_PREPARE\AR_PERF_PERIOD_PREPARE\AR_PERIOD_PREPARE\AR_PERF_MONTH_PREPARE
         // AR_PERIOD_PREPARE 表只需要是结算月的数据
-        // AR_PERF_PERIOD_PREPARE 表特殊,需要增加一个字段,是否存在于前三期中  
+        // AR_PERF_PERIOD_PREPARE 表特殊,需要增加一个字段,是否存在于前三期中  已被第一次算月业绩使用过了
         //  `IS_HAS_USER` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否有此用户,默认为0没有此用户1为有
-        // 如果依旧是0则再次循环此月业绩的时候,需要再次处理'
+        // 如果依旧是0则再次循环此月业绩的时候,需要再次处理' 相当于前三期没有数据,需要单独再添加一次
         //
         // 月业绩由perfperiod表加上perfperiodprepare表之和,其中perfperiod表数据为此月非计算月的期业绩数据
         // 先查询perfperiod表的数据,再查询perfperiodprepare这个表的数据.
-        // 如果查询到了perfperiodprepare的数据,则将此perfperiodprepare表的新增的是否统计到的字段标识为1.
+        // 如果查询到了perfperiodprepare的数据,则将此perfperiodprepare表的新增的是否已经在计算第一次统计到的字段标识为1.
         // 最后再循环 perfperiodprepare 表中标识依旧为0的数据,再次循环.相当于这些数据是此结算月业绩期的新增用户
         echo sprintf("时间:[%s]月业绩,当前offset为:【%s】" . PHP_EOL, date('Y-m-d H:i:s', time()) , $offset);
         // 从缓存列表里面从底层往上倒序获取会员       
@@ -828,7 +828,7 @@ class PreparePerfCalc {
         SUM(PV_5L) AS PV_5L_SUM,SUM(PV_1L_ZC) AS PV_1L_ZC_SUM,
         SUM(PV_2L_ZC) AS PV_2L_ZC_SUM,SUM(PV_3L_ZC) AS PV_3L_ZC_SUM,
         SUM(PV_4L_ZC) AS PV_4L_ZC_SUM,SUM(PV_5L_ZC) AS PV_5L_ZC_SUM')
-        ->where('CALC_MONTH=:CALC_MONTH', [':CALC_MONTH' => $this->_calcYearMonth])
+        ->where('CALC_MONTH=:CALC_MONTH AND PERIOD_NUM!=:PERIOD_NUM', [':CALC_MONTH' => $this->_calcYearMonth,':PERIOD_NUM'=>$this->_periodNum])
         ->groupBy('USER_ID')
         ->orderBy('USER_ID DESC')
         ->offset($offset)
@@ -853,6 +853,7 @@ class PreparePerfCalc {
                 if( $this->_sysConfig['vipBonusGoldDecLevel']['VALUE'] && $userBaseInfo['DEC_LV'] === DeclarationLevel::JIN_ZUAN_LEVEL_ID ) {
                     $isVip = true;
                 }
+                // 查询月节点此期业绩,是否包含此用户
                 // 查询perfperiodprepare表中数据,是否有此用户信息.因为是月提前结算,所以此结算期是只有一个数据
                 $monthPrepare = PerfPeriodPrepare::findUseDbCalc()
                 ->select('USER_ID, SUM(FX_AMOUNT_CASH) AS FX_AMOUNT_CASH_SUM,SUM(PV_PCS) AS PV_PCS_SUM,