|
|
@@ -432,7 +432,7 @@ class BonusSend extends BaseObject {
|
|
|
public function updateEmpLevel(int $offset = 0) {
|
|
|
if ($this->_isCalcMonth) {
|
|
|
$empLv = EmployLevel::getIdConvertLevelSortCache();
|
|
|
- $allData = CalcBonusBS::findUseDbCalc()
|
|
|
+ $allData = CalcBonus::findUseDbCalc()
|
|
|
->yearMonth($this->_calcYearMonth)
|
|
|
->where(
|
|
|
'CALC_MONTH=:CALC_MONTH AND PERIOD_NUM=:PERIOD_NUM',
|
|
|
@@ -442,7 +442,6 @@ class BonusSend extends BaseObject {
|
|
|
]
|
|
|
)
|
|
|
->orderBy('CREATED_AT DESC')
|
|
|
- ->groupBy('USER_ID')
|
|
|
->offset($offset)
|
|
|
->limit($this->_limit)
|
|
|
->all();
|
|
|
@@ -453,15 +452,15 @@ class BonusSend extends BaseObject {
|
|
|
try {
|
|
|
foreach ($allData as $data) {
|
|
|
//@todo 用户级别不变则不更新
|
|
|
- if( $data['LEVEL_ID'] === $defaultEmpLv ) continue;
|
|
|
- $nowBsEmpLv = $data['LEVEL_ID']; // 当前蓝星奖计算(即管理奖) 的等级
|
|
|
+ if( $data['LAST_EMP_LV'] === $defaultEmpLv ) continue;
|
|
|
+ $nowBsEmpLv = $data['LAST_EMP_LV']; // 当前蓝星奖计算(即管理奖) 的等级
|
|
|
$user = CalcCache::getUserInfo($data['USER_ID'], $this->_periodNum);
|
|
|
$userEmpLv = $user['EMP_LV']; // 用户的历史最高聘级
|
|
|
$userEmpLvSort = $empLv[$userEmpLv]; // 历史最高聘级的 级别值
|
|
|
$nowBsEmpLvSort = $empLv[$nowBsEmpLv]; // 当前蓝星计算的聘级 级别值
|
|
|
if ($nowBsEmpLvSort > $userEmpLvSort) {
|
|
|
// 如果当前期的级别值大于历史最高级别,则更新用户表里的最高聘级
|
|
|
- User::updateAll(['EMP_LV' => $data['LEVEL_ID']], 'ID=:USER_ID', [':USER_ID' => $data['USER_ID']]);
|
|
|
+ User::updateAll(['EMP_LV' => $nowBsEmpLv], 'ID=:USER_ID', [':USER_ID' => $data['USER_ID']]);
|
|
|
User::deleteBaseInfoFromRedis($data['USER_ID']);
|
|
|
unset($data);
|
|
|
} else {
|