|
|
@@ -307,12 +307,12 @@ class BonusCalc extends BaseObject {
|
|
|
|
|
|
$this->calcBonusVilla();
|
|
|
$t22 = microtime(true);
|
|
|
- echo('计算房奖' . ($this->_sysConfig['openVilla']['VALUE'] ? '完成' : '关闭').',耗时:' . round($t22 - $t21, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL . PHP_EOL);
|
|
|
+ echo('计算房奖' . ($this->_sysConfig['openVilla']['VALUE'] ? '完成' : '关闭').',耗时:' . round($t22 - $t21, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
|
|
|
$this->_updatePercent(69);
|
|
|
|
|
|
$this->calcBonusGarage();
|
|
|
$t23 = microtime(true);
|
|
|
- echo('计算车奖' . ($this->_sysConfig['openGarage']['VALUE'] ? '完成' : '关闭').',耗时:' . round($t23 - $t22, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL . PHP_EOL);
|
|
|
+ echo('计算车奖' . ($this->_sysConfig['openGarage']['VALUE'] ? '完成' : '关闭').',耗时:' . round($t23 - $t22, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
|
|
|
$this->_updatePercent(69);
|
|
|
|
|
|
// 计算季度奖
|
|
|
@@ -1258,15 +1258,15 @@ class BonusCalc extends BaseObject {
|
|
|
//扣除相应的复消积分和管理费
|
|
|
$deductData = $this->deduct($userId, $teamBonus);
|
|
|
|
|
|
- // 把对碰后的奖金存入缓存中
|
|
|
- CalcCache::bonus($userId, $periodNum, 'BONUS_QY', $teamBonus, $deductData);
|
|
|
-
|
|
|
- // TODO:取小腿值
|
|
|
+ // 取小腿值
|
|
|
$payLeg = min([$perfArr['SURPLUS_1L'], $perfArr['SURPLUS_2L']]);
|
|
|
// 计算荣衔星级
|
|
|
$starCrown = StarCrownLevel::getStarCrown($payLeg);
|
|
|
- // 星级放入缓存
|
|
|
- CalcCache::addUserStarCrown($userId, $periodNum, $starCrown['ID']);
|
|
|
+
|
|
|
+ // 是否活跃
|
|
|
+ $isActive = $this->_isMonthPerfLimit($userId);
|
|
|
+ $oriBonus = $isActive ? $teamBonus : 0;
|
|
|
+ $lastCrownLv = $isActive ? $starCrown['ID'] : StarCrownLevel::getDefaultLevelId();
|
|
|
|
|
|
//团队奖流水
|
|
|
$insertBonusData[] = [
|
|
|
@@ -1275,10 +1275,10 @@ class BonusCalc extends BaseObject {
|
|
|
'ORI_CAPPED_BONUS_QY' => $capBonusQy,
|
|
|
'LAST_DEC_LV' => $userBaseInfo['DEC_LV'],
|
|
|
'LAST_EMP_LV' => $userBaseInfo['EMP_LV'],
|
|
|
- 'LAST_CROWN_LV' => $starCrown['ID'],
|
|
|
+ 'LAST_CROWN_LV' => $lastCrownLv,
|
|
|
'LAST_STATUS' => $userBaseInfo['STATUS'],
|
|
|
'AMOUNT' => $deductData['surplus'],
|
|
|
- 'ORI_BONUS' => $teamBonus,
|
|
|
+ 'ORI_BONUS' => $oriBonus,
|
|
|
'RECONSUME_POINTS' => $deductData['reConsumePoints'],
|
|
|
'MANAGE_TAX' => $deductData['manageTax'],
|
|
|
'PERIOD_NUM' => $this->_periodNum,
|
|
|
@@ -1293,8 +1293,18 @@ class BonusCalc extends BaseObject {
|
|
|
'nowDecLevelConfig' => $nowDecLevelConfig,
|
|
|
'decLevel' => $userBaseInfo['DEC_LV'],
|
|
|
]),
|
|
|
+ 'IS_ACTIVE' => (int)$isActive,
|
|
|
+ 'HOPE_CROWN_LV' => $starCrown['ID'],
|
|
|
+ 'HOPE_BONUS' => $teamBonus,
|
|
|
];
|
|
|
|
|
|
+ // 星级放入缓存
|
|
|
+ CalcCache::addUserStarCrown($userId, $periodNum, $lastCrownLv);
|
|
|
+ if ($oriBonus > 0) {
|
|
|
+ // 把对碰后的奖金存入缓存中
|
|
|
+ CalcCache::bonus($userId, $periodNum, 'BONUS_QY', $oriBonus, $deductData);
|
|
|
+ }
|
|
|
+
|
|
|
unset($perfData, $pervSurplusPerf, $perfArr, $oriPerfArr, $touchPerfArr, $userBaseInfo, $decLevelConfig, $touchBonusArr, $userId, $nowDecLevelConfig, $teamBonus, $deductData);
|
|
|
}
|
|
|
CalcBonusQY::batchInsert($insertBonusData);
|
|
|
@@ -2097,19 +2107,35 @@ class BonusCalc extends BaseObject {
|
|
|
$manageTax = $deductData['manageTax']; // 管理费
|
|
|
$point = $deductData['reConsumePoints'] + $user['RECONSUME_POINTS'];// 复消积分
|
|
|
|
|
|
+ // 是否活跃会员
|
|
|
+ $isActive = $this->_isMonthPerfLimit($user['USER_ID']);
|
|
|
+ $oriBonus = $isActive ? $user['ORI_BONUS_MNT'] : 0;
|
|
|
+ $empLv = $isActive ? $user['LEVEL_ID'] : EmployLevel::getDefaultLevelId();
|
|
|
+
|
|
|
// 管理奖钻卡发放
|
|
|
// if (in_array($user['LAST_DEC_LV'], $minDecLevel)) {
|
|
|
+ if ($oriBonus > 0) {
|
|
|
// 把对碰后的奖金存入缓存中
|
|
|
- CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS_MNT', $user['ORI_BONUS_MNT'], $deductData);
|
|
|
+ CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS_MNT', $oriBonus, $deductData);
|
|
|
// 加入月奖的会员
|
|
|
CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
+ }
|
|
|
// }
|
|
|
|
|
|
// 更新蓝星奖金存储过程的实发金额数据
|
|
|
- CalcBonusBS::updateAll([
|
|
|
- 'RECONSUME_POINTS' => $point,
|
|
|
- 'AMOUNT_MNT' => $realBonusBs,
|
|
|
- 'MANAGE_TAX_MNT' => $manageTax],
|
|
|
+ CalcBonusBS::updateAll(
|
|
|
+ [
|
|
|
+ 'ORI_BONUS' => $user['ORI_BONUS'] + $oriBonus,
|
|
|
+ 'RECONSUME_POINTS' => $point,
|
|
|
+ 'AMOUNT_MNT' => $realBonusBs,
|
|
|
+ 'MANAGE_TAX_MNT' => $manageTax,
|
|
|
+ 'IS_ACTIVE' => (int)$isActive,
|
|
|
+ 'HOPE_BONUS' => $user['ORI_BONUS_MNT'] + $user['HOPE_BONUS_ABBR'],
|
|
|
+ 'HOPE_EMP_LV' => $user['LEVEL_ID'],
|
|
|
+ 'HOPE_BONUS_MNT' => $user['ORI_BONUS_MNT'],
|
|
|
+ 'ORI_BONUS_MNT' => $oriBonus,
|
|
|
+ 'LEVEL_ID' => $empLv,
|
|
|
+ ],
|
|
|
'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
|
|
|
[':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum]);
|
|
|
}
|
|
|
@@ -2150,20 +2176,36 @@ class BonusCalc extends BaseObject {
|
|
|
$manageTax = $deductData['manageTax']; // 管理费
|
|
|
$point = $deductData['reConsumePoints'] + $user['RECONSUME_POINTS'];// 复消积分
|
|
|
|
|
|
+ // 是否活跃会员
|
|
|
+ $isActive = $this->_isMonthPerfLimit($user['USER_ID']);
|
|
|
+ $oriBonus = $isActive ? $user['ORI_BONUS_ABBR'] : 0;
|
|
|
+ $empLv = $isActive ? $user['LEVEL_ID'] : EmployLevel::getDefaultLevelId();
|
|
|
+
|
|
|
// 业绩奖金卡、钻卡发放
|
|
|
// if (in_array($user['LAST_DEC_LV'], $minDecLevel)) {
|
|
|
// 把对碰后的奖金存入缓存中
|
|
|
- CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS_ABBR', $user['ORI_BONUS_ABBR'], $deductData);
|
|
|
- // 加入月奖的会员
|
|
|
- CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
+ CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS_ABBR', $oriBonus, $deductData);
|
|
|
+ if ($oriBonus > 0) {
|
|
|
+ // 加入月奖的会员
|
|
|
+ CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
+ }
|
|
|
// }
|
|
|
|
|
|
// 更新蓝星业绩奖金存储过程的实发金额数据
|
|
|
- CalcBonusBS::updateAll([
|
|
|
- 'AMOUNT_ABBR' => $realBonusBs,
|
|
|
- 'MANAGE_TAX_ABBR' => $manageTax,
|
|
|
- 'RECONSUME_POINTS' => $point],
|
|
|
- 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
|
|
|
+ CalcBonusBS::updateAll(
|
|
|
+ [
|
|
|
+ 'ORI_BONUS' => $oriBonus,
|
|
|
+ 'AMOUNT_ABBR' => $realBonusBs,
|
|
|
+ 'MANAGE_TAX_ABBR' => $manageTax,
|
|
|
+ 'RECONSUME_POINTS' => $point,
|
|
|
+ 'IS_ACTIVE' => (int)$isActive,
|
|
|
+ 'HOPE_BONUS' => $user['ORI_BONUS_ABBR'],
|
|
|
+ 'HOPE_EMP_LV' => $user['LEVEL_ID'],
|
|
|
+ 'HOPE_BONUS_ABBR' => $user['ORI_BONUS_ABBR'],
|
|
|
+ 'ORI_BONUS_ABBR' => $oriBonus,
|
|
|
+ 'LEVEL_ID' => $empLv,
|
|
|
+ ],
|
|
|
+ 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
|
|
|
[':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum]);
|
|
|
}
|
|
|
return $this->calcBonusBsYJ($offset + $this->_limit);
|