root 3 лет назад
Родитель
Сommit
cc9b454baf
2 измененных файлов с 26 добавлено и 3 удалено
  1. 8 3
      common/helpers/bonus/PerfCalc.php
  2. 18 0
      common/models/StorePerfLog.php

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

@@ -1214,7 +1214,7 @@ class PerfCalc {
                         'PERIOD_NUM' => $this->_periodNum,
                         'CALC_MONTH' => $this->_calcYearMonth,
                         'CREATE_AT' => time(),
-                        'PARENT_UID' => $userRelation['PARENT_UID']
+                        'PARENT_UID' => ''
                     ],
                     $pv
                 );
@@ -1224,9 +1224,12 @@ class PerfCalc {
                     CalcCache::nowPeriodPerf($userId, $this->_periodNum, [
                         'STORE_PV_GRAND' => $pv,
                     ]);
+                    StorePerfLog::stParendStudio($this->_periodNum,$this->_calcYearMonth, [$userId], $userId);
                 } else {
+                    $allUser = [];
+                    $studioUid = '';
                     // 如果此用户不是店铺,继续上找到店铺并累加上去PV
-                    $this->loopRelationParentDo($userId, function ($parent) use (&$everyData) {
+                    $this->loopRelationParentDo($userId, function ($parent) use (&$everyData,$allUser,$studioUid) {
                         $parentUser = CalcCache::getUserInfo($parent['PARENT_UID'], $this->_periodNum);
                         $userRelation = CalcCache::getUserRelationInfo($parent['PARENT_UID'], $this->_periodNum);
                         StorePerfLog::addOrUpdate(
@@ -1244,17 +1247,19 @@ class PerfCalc {
                             ],
                             $everyData['MONTH_PV']
                         );
+                        array_push($allUser, $parent['PARENT_UID']);
                         if ($parentUser['IS_STUDIO']) {
                             CalcCache::nowPeriodPerf($parent['PARENT_UID'], $this->_periodNum, [
                                 'STORE_PV_GRAND' => $everyData['MONTH_PV']
                             ]);
                             CalcCache::addHasPerfUsers($parent['PARENT_UID'], $this->_periodNum);
-                            
+                            $studioUid = $parent['PARENT_UID'];
                             return self::LOOP_FINISH;
                         }
                         
                         unset($parent);
                     });
+                    StorePerfLog::stParendStudio($this->_periodNum,$this->_calcYearMonth, $allUser, $studioUid);
                 }
             }
             unset($allData);

+ 18 - 0
common/models/StorePerfLog.php

@@ -79,4 +79,22 @@ class StorePerfLog extends \common\components\ActiveRecord
 
         return true;
     }
+
+    // 更新stpefrlog表,用户小组分组工作室ID
+    public static function stParendStudio($periodNum, $calcMonth, $allUidIn, $studioId) {
+        if (!is_array($allUidIn) || empty($allUidIn)) {
+            return false;
+        }
+        $allUidIn = implode(',', $allUidIn);
+        StorePerfLog::updateAll(
+            ['PARENT_UID' => $studioId], 
+            "USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM AND CALC_MONTH=:CALC_MONTH AND ID IN ('".$allUidIn."')", 
+            [
+                ':PERIOD_NUM' => $periodNum,
+                ':CALC_MONTH' => $calcMonth
+            ]
+        );
+
+        return true;
+    }
 }