Преглед изворни кода

蓝星拆分完毕且保留原方法

root пре 3 година
родитељ
комит
d9b92bd962
1 измењених фајлова са 23 додато и 18 уклоњено
  1. 23 18
      common/helpers/bonus/BonusCalc.php

+ 23 - 18
common/helpers/bonus/BonusCalc.php

@@ -280,9 +280,9 @@ class BonusCalc extends BaseObject {
             // 调用存储过程,计算蓝星管理奖金
             $this->calcBsProcedure();
             // 将有蓝星管理奖金的用户加入到有奖金缓存用户中
-            $this->calcBonusBsGLYJ();
             $this->calcBonusBsGL();
-            $this->calcBonusBsYJ();
+            $this->calcBonusBsGLCF();
+            $this->calcBonusBsYJCF();
             $t18temp = microtime(true);
             echo('计算蓝星管理奖'.($this->_sysConfig['openGL']['VALUE']?'完成':'关闭').',耗时:' . round($t18temp - $t18, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
             $this->_updatePercent(65);
@@ -1620,7 +1620,7 @@ class BonusCalc extends BaseObject {
      * @return bool
      * @throws \yii\db\Exception
      */
-    public function calcBonusBsGLYJ(int $offset = 0) {
+    public function calcBonusBsGL(int $offset = 0) {
         if( !$this->_isCalcMonth ) {
             // 不是结算月,则不进行计算
             return false;
@@ -1643,7 +1643,8 @@ class BonusCalc extends BaseObject {
                     //扣除相应的复消积分和管理费
                     $deductData = $this->deduct($user['USER_ID'], $user['ORI_BONUS']);
                     // 把对碰后的奖金存入缓存中
-                    CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS', $user['ORI_BONUS'], $deductData);
+                   // CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS', $user['ORI_BONUS'], $deductData);
+                    CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS', $user['ORI_BONUS']);
                     $realBonusBs = $deductData['surplus']; // 扣除管理费和复消积分后的实发蓝星奖金
                     $manageTax = $deductData['manageTax']; // 管理费
                     $point = $deductData['reConsumePoints'];// 复消积分
@@ -1660,7 +1661,7 @@ class BonusCalc extends BaseObject {
                     'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
                     [':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum]);
             }
-            return $this->calcBonusBsGLYJ($offset + $this->_limit);
+            return $this->calcBonusBsGL($offset + $this->_limit);
         }
         unset($allData);
         return true;
@@ -1672,7 +1673,7 @@ class BonusCalc extends BaseObject {
      * @return bool
      * @throws \yii\db\Exception
      */
-    public function calcBonusBsGL(int $offset = 0) {
+    public function calcBonusBsGLCF(int $offset = 0) {
         if( !$this->_isCalcMonth ) {
             // 不是结算月,则不进行计算
             return false;
@@ -1688,7 +1689,8 @@ class BonusCalc extends BaseObject {
         if ($allData) {
             foreach ($allData as $user) {
                 // 添加到有奖励信息的数据中
-                CalcCache::addHasBonusUsers($user['USER_ID'], $this->_periodNum);
+                // 注释到---
+                //CalcCache::addHasBonusUsers($user['USER_ID'], $this->_periodNum);
                 //CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
 
 
@@ -1702,7 +1704,7 @@ class BonusCalc extends BaseObject {
                     $manageTax = $deductData['manageTax']; // 管理费
                     $point = $deductData['reConsumePoints'];// 复消积分
                     //管理奖管理费存入缓存
-                CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_GLKC', $manageTax);
+                //CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_GLKC', $manageTax);
                 } else {
                     // 如果未满足月消费,则不扣除管理费和复消积分了
                     CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_GL', $user['ORI_BONUS_BU_GL']);
@@ -1713,11 +1715,11 @@ class BonusCalc extends BaseObject {
                 
 
                 // 更新蓝星奖金存储过程的实发金额数据
-                CalcBonusBS::updateAll(['ORI_BONUS_BU_GLSF' => $realBonusBs, 'ORI_BONUS_BU_GLKC' => $manageTax, 'RECONSUME_POINTS' => $point],
+                CalcBonusBS::updateAll(['ORI_BONUS_BU_GLSF' => $realBonusBs, 'ORI_BONUS_BU_GLKC' => $manageTax, 'ORI_BONUS_BU_GLFX' => $point],
                 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
                 [':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum]);
             }
-            return $this->calcBonusBsGL($offset + $this->_limit);
+            return $this->calcBonusBsGLCF($offset + $this->_limit);
         }
         unset($allData);
         return true;
@@ -1729,7 +1731,7 @@ class BonusCalc extends BaseObject {
      * @return bool
      * @throws \yii\db\Exception
      */
-    public function calcBonusBsYJ(int $offset = 0) {
+    public function calcBonusBsYJCF(int $offset = 0) {
         if( !$this->_isCalcMonth ) {
             // 不是结算月,则不进行计算
             return false;
@@ -1745,7 +1747,7 @@ class BonusCalc extends BaseObject {
         if ($allData) {
             foreach ($allData as $user) {
                 // 添加到有奖励信息的数据中
-                CalcCache::addHasBonusUsers($user['USER_ID'], $this->_periodNum);
+                //CalcCache::addHasBonusUsers($user['USER_ID'], $this->_periodNum);
                 //CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
 
 
@@ -1759,7 +1761,7 @@ class BonusCalc extends BaseObject {
                     $manageTax = $deductData['manageTax']; // 管理费
                     $point = $deductData['reConsumePoints'];// 复消积分
                     //管理奖管理费存入缓存
-                    CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_YJKC', $manageTax);
+                    //CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_YJKC', $manageTax);
                 } else {
                     // 如果未满足月消费,则不扣除管理费和复消积分了
                     CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_YJ', $user['ORI_BONUS_BU_YJ']);
@@ -1770,11 +1772,11 @@ class BonusCalc extends BaseObject {
 
 
                 // 更新蓝星奖金存储过程的实发金额数据
-                CalcBonusBS::updateAll(['ORI_BONUS_BU_YJSF' => $realBonusBs, 'ORI_BONUS_BU_YJKC' => $manageTax, 'RECONSUME_POINTS' => $point],
+                CalcBonusBS::updateAll(['ORI_BONUS_BU_YJSF' => $realBonusBs, 'ORI_BONUS_BU_YJKC' => $manageTax, 'ORI_BONUS_BU_YJFX' => $point],
                     'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
                     [':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum]);
             }
-            return $this->calcBonusBsYJ($offset + $this->_limit);
+            return $this->calcBonusBsYJCF($offset + $this->_limit);
         }
         unset($allData);
         return true;
@@ -3401,7 +3403,7 @@ class BonusCalc extends BaseObject {
                         ':USER_ID' => $userId
                     ]
                 )
-                ->select('AMOUNT,ORI_BONUS,MANAGE_TAX,LEVEL_ID,PRODUCT_POINT,ORI_BONUS_BU_YJ,ORI_BONUS_BU_YJKC,ORI_BONUS_BU_YJSF,ORI_BONUS_BU_GL,ORI_BONUS_BU_GLKC,ORI_BONUS_BU_GLSF')
+                ->select('AMOUNT,ORI_BONUS,MANAGE_TAX,LEVEL_ID,PRODUCT_POINT,ORI_BONUS_BU_YJ,ORI_BONUS_BU_YJSF,ORI_BONUS_BU_GL,ORI_BONUS_BU_GLSF')
                 ->limit(1)
                 ->orderBy('CREATED_AT DESC')
                 ->asArray()
@@ -3429,6 +3431,9 @@ class BonusCalc extends BaseObject {
                 $bonusReal += $realBonusGx + $realBonusBs + $realBonusGl;
                 $exchangePoints = isset($userBS['PRODUCT_POINT']) && !empty($userBS['PRODUCT_POINT']) ? $userBS['PRODUCT_POINT'] : 0; // 兑换积分
                 unset($monthSumData, $bonusGxSum, $bonusGlSum);
+                //因为调用两次缓存 所以需要减去多余的蓝星总奖金
+                $oriBonusBs = isset($bonus['ORI_BONUS_BS']) && $bonus['ORI_BONUS_BS'] > 0 ? $bonus['ORI_BONUS_BS'] : 0;
+                $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] - $oriBonusBs;
             } else {
                 // 蓝星奖原奖金在扣管理费的时候被加入到了BONUS_TOTAL,需要再减去原奖金
                 $oriBonusBs = isset($bonus['ORI_BONUS_BS']) && $bonus['ORI_BONUS_BS'] > 0 ? $bonus['ORI_BONUS_BS'] : 0;
@@ -3538,11 +3543,11 @@ class BonusCalc extends BaseObject {
 
             'ORI_BONUS_BU_GL' => $bonus['ORI_BONUS_BU_GL'],
             'ORI_BONUS_BU_GLSF' => $bonus['BONUS_BU_GL'],
-            'ORI_BONUS_BU_GLKC' =>$bonus['BONUS_BU_GLKC'],
+
 
             'ORI_BONUS_BU_YJ' => $bonus['ORI_BONUS_BU_YJ'],
             'ORI_BONUS_BU_YJSF' => $bonus['BONUS_BU_YJ'],
-            'ORI_BONUS_BU_YJKC' =>$bonus['BONUS_BU_YJKC'],
+
 
             //以下没有用
             'BONUS_FW' => 0,