|
|
@@ -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,
|