Преглед на файлове

Merge branch 'feature/dd-1935-lastemlv' into new-version

theo преди 3 години
родител
ревизия
c5f1b1e0ca
променени са 2 файла, в които са добавени 66 реда и са изтрити 60 реда
  1. 30 8
      common/helpers/bonus/BonusCalc.php
  2. 36 52
      frontendApi/modules/v1/controllers/BonusController.php

+ 30 - 8
common/helpers/bonus/BonusCalc.php

@@ -3409,21 +3409,43 @@ class BonusCalc extends BaseObject {
 
     // 奖金入库完成,将各个奖金计算流水会员聘级,更新成蓝星奖当时计算的聘级
     public function loopCalcBlueEmpLv($offset = 0) {
-        if( !$this->_isCalcMonth ) {
-            // 不是结算月,则不需要进行聘级调整
-            return false;
-        }
-        // 从缓存获取分页有收入的会员信息
-        $allData = CalcBonusBS::findUseDbCalc()
+        $allData = CalcBonus::findUseDbCalc()
             ->where('PERIOD_NUM=:PERIOD_NUM', [':PERIOD_NUM' => $this->_periodNum])
-            ->groupBy('USER_ID')
             ->offset($offset)
             ->limit($this->_limit)
             ->asArray()
             ->all();
         if ($allData) {
             foreach ($allData as $data) {
-                $nowBsEmpLv = $data['LEVEL_ID']; // 当前蓝星奖计算(即管理奖) 的等级
+                // 会员的最新级别,查看上一期,如果无数据,则就是无级别。 上一期到下一期结算月之间,都显示上一期的最新级别。
+                if ($this->_isCalcMonth) {
+                    // 如果是结算月,则直接获取当期结算结果
+                    $blueBsInfo = CalcBonusBS::findOneAsArray(
+                        'PERIOD_NUM=:PERIOD_NUM  AND USER_ID=:USER_ID', 
+                        [':PERIOD_NUM'=>$this->_periodNum, ':USER_ID'=>$data['USER_ID']]
+                    );
+                    if (!empty($blueBsInfo)) {
+                        $nowBsEmpLv = $blueBsInfo['LEVEL_ID']; // 当前蓝星奖计算(即管理奖) 的等级
+                    } else {
+                        $nowBsEmpLv = EmployLevel::NO_LEVEL_ID;
+                    }
+                } else {
+                    // 如果不是结算月,则找上一期的结算月数据
+                    $forwardMonthPeriod = Period::find()
+                    ->where('IS_MONTH=1 AND PERIOD_NUM<:PERIOD_NUM', [':PERIOD_NUM'=>$this->_periodNum])
+                    ->asArray()
+                    ->one();
+                    $forwardPeriodNum = $forwardMonthPeriod['PERIOD_NUM'];
+                    $blueBsInfo = CalcBonusBS::findOneAsArray(
+                        'PERIOD_NUM=:PERIOD_NUM  AND USER_ID=:USER_ID', 
+                        [':PERIOD_NUM'=>$forwardPeriodNum, ':USER_ID'=>$data['USER_ID']]
+                    );
+                    if (!empty($blueBsInfo)) {
+                        $nowBsEmpLv = $blueBsInfo['LEVEL_ID']; // 当前蓝星奖计算(即管理奖) 的等级
+                    } else {
+                        $nowBsEmpLv = EmployLevel::NO_LEVEL_ID;
+                    }
+                }
                 // 修改AR_CALC_BONUS的LAST_EMP_LV聘级,修改奖金流水的聘级AR_FLOW_BONUS表的LAST_EMP_LV
                 // 期结算结果
                 CalcBonus::updateAll(['LAST_EMP_LV' => $nowBsEmpLv], 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 

+ 36 - 52
frontendApi/modules/v1/controllers/BonusController.php

@@ -321,7 +321,7 @@ class BonusController extends BaseController {
     }
 
     /**
-     * 期数对应的奖金
+     * 期数对应的奖金-已挂网
      * @param $periodNum
      * @param $detailSwitch
      * @return array
@@ -330,16 +330,47 @@ class BonusController extends BaseController {
     private function _periodBonus($periodNum,$detailSwitch=1) {
         $period = Period::instance();
         $yearMonth = $period->getYearMonth($periodNum);
+        $sysConfig = Cache::getSystemConfig();
         if(!$calcBonus = CalcBonus::find()
         ->yearMonth($yearMonth)
         ->where('USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',[':USER_ID'=>\Yii::$app->user->id,':PERIOD_NUM'=>$periodNum])
         ->asArray()
         ->one()){
-            return [
-
-            ];
+            if($detailSwitch) {
+                $userInfo = User::getEnCodeInfo(\Yii::$app->user->id);
+                $data[] = ['name' => '期数', 'value' => $periodNum];
+                $data[] = ['name' => '级别', 'value' => Cache::getDecLevelConfig()[$userInfo['DEC_LV']]['LEVEL_NAME']];
+                $data[] = ['name' => '最新聘级', 'value' => Cache::getEmpLevelConfig()[EmployLevel::NO_LEVEL_ID]['LEVEL_NAME']];
+                if ($sysConfig['openTG']['VALUE']) {
+                    // 销售奖金 就是 原来的推广奖
+                    $data[] = ['name' => '销售奖金', 'value' => Tool::formatPrice(0)];
+                }
+                if ($sysConfig['openQY']['VALUE']) {
+                    $data[] = ['name' => '绩效奖金', 'value' => Tool::formatPrice(0)];
+                }
+                // 管理奖金 就是新的蓝星奖
+                $data[] = ['name' => '管理奖金', 'value' => Tool::formatPrice(0)];
+                if ($sysConfig['openGX']['VALUE']) {
+                    $data[] = ['name' => '周共享奖金', 'value' => Tool::formatPrice(0)];
+                    $data[] = ['name' => '月共享奖金', 'value' => Tool::formatPrice(0)];
+                }
+                if ($sysConfig['openStore']['VALUE']) {
+                    // 店服务奖
+                    $data[] = ['name' => '店服务奖金', 'value' => Tool::formatPrice(0)];
+                }
+                if ($sysConfig['openFW']['VALUE']) {
+                    $data[] = ['name' => '服务奖金', 'value' => Tool::formatPrice(0)];
+                }
+                $data[] = ['name' => '总奖金', 'value' => Tool::formatPrice(0)];
+                $data[] = ['name' => '管理费', 'value' => Tool::formatPrice(0)];
+                $data[] = ['name' => '实发奖金', 'value' => Tool::formatPrice(0)];
+                $data[] = ['name' => '复销点数', 'value' => Tool::formatPrice(0)];
+                $data[] = ['name' => '兑换点数', 'value' => Tool::formatPrice(0)];
+            } else {
+                $data[] = ['name' => '总奖金', 'value' => '0.00'];
+            }
+            return $data;
         }
-        $sysConfig = Cache::getSystemConfig();
         if($detailSwitch) {
             $data[] = ['name' => '期数', 'value' => $periodNum];
             $data[] = ['name' => '级别', 'value' => Cache::getDecLevelConfig()[$calcBonus['LAST_DEC_LV']]['LEVEL_NAME']];
@@ -401,53 +432,6 @@ class BonusController extends BaseController {
             $data[] = ['name' => '一市场结余业绩', 'value' => Tool::formatFrontPerf($calcBonus['SURPLUS_1L'])];
             $data[] = ['name' => '二市场结余业绩', 'value' => Tool::formatFrontPerf($calcBonus['SURPLUS_2L'])];
             $data[] = ['name' => '三市场结余业绩', 'value' => Tool::formatFrontPerf($calcBonus['SURPLUS_3L'])];
-
-
-
-            // if ($sysConfig['openYC']['VALUE']) {
-            //     $data[] = ['name' => '荣衔奖', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_YC'])];
-            // }
-            // if ($sysConfig['openVIP']['VALUE']) {
-            //     $data[] = ['name' => 'VIP奖', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_VIP'])];
-            // }
-            
-            
-            // if ($sysConfig['openXF']['VALUE']) {
-            //     $data[] = ['name' => '消费奖', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_XF'])];
-            // }
-            // if ($sysConfig['openYJ']['VALUE']) {
-            //     $data[] = ['name' => '业绩奖', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_YJ'])];
-            // }
-            
-            // if ($sysConfig['openGL']['VALUE']) {
-            //     $data[] = ['name' => '管理奖', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_GL'])];
-            // }
-            
-            // if ($sysConfig['openJXS']['VALUE']) {
-            //     $data[] = ['name' => '团队成长奖', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_STANDARD'])];
-            // }
-//        if($sysConfig['openLS']['VALUE']) {
-//            $data[] = ['name' => '零售奖', 'value' => Tool::formatPrice($calcBonus['BONUS_LS'])];
-//        }
-//        $data[]=['name'=>'责任业绩扣除','value'=>Tool::formatPrice($calcBonus['DEDUCT_ZR'])];
-            
-            
-//        $data[]=['name'=>'总奖金','value'=>Tool::formatPrice($calcBonus['BONUS_TOTAL'])];
-            
-//        if($sysConfig['openLX']['VALUE']) {
-//            $data[] = ['name' => '福利积分二', 'value' => Tool::formatPrice($calcBonus['BONUS_LX'])];
-//        }
-            
-//        $data[]=['name'=>'四市场新增业绩','value'=>Tool::formatFrontPerf($calcBonus['PV_4L'])];
-//        $data[]=['name'=>'五市场新增业绩','value'=>Tool::formatFrontPerf($calcBonus['PV_5L'])];
-//        $data[]=['name'=>'虚拟市场新增业绩','value'=>Tool::formatFrontPerf($calcBonus['PV_LS_TOUCH'])];
-            //查看剩余区域是哪个区
-//        $surplusArr=[$calcBonus['SURPLUS_1L'],$calcBonus['SURPLUS_2L'],$calcBonus['SURPLUS_3L']];
-//        $bigLocation = array_search(max($surplusArr), $surplusArr);
-//        $bigLocationName = ['一市场','二市场','三市场'][$bigLocation];
-//        $data[]=['name'=>'剩余业绩市场','value'=>$bigLocationName];
-//        $data[]=['name'=>'剩余业绩','value'=>Tool::formatFrontPerf($surplusArr[$bigLocation])];
-
         }else{
             $data[] = ['name' => '总奖金', 'value' => Tool::formatPrice($calcBonus['BONUS_TOTAL'])];
         }