|
@@ -403,6 +403,7 @@ class UserLevelServices extends BaseServices
|
|
|
$data = [];
|
|
|
$data['add_time'] = time();
|
|
|
$userLevel = $this->dao->getColumn(['uid' => $uid, 'status' => 1, 'is_del' => 0], 'level_id');
|
|
|
+ $max_level = 0;
|
|
|
foreach ($userAllLevel as $vipinfo) {
|
|
|
if (in_array($vipinfo['id'], $userLevel)) {
|
|
|
continue;
|
|
@@ -422,6 +423,7 @@ class UserLevelServices extends BaseServices
|
|
|
if ($vipinfo['sub_grade_num'] > $num) {
|
|
|
break;
|
|
|
}
|
|
|
+ $max_level = $vipinfo['id'];
|
|
|
|
|
|
$data['mark'] = '尊敬的用户' . $user['nickname'] . '在' . date('Y-m-d H:i:s', time()) . '成为了' . $vipinfo['name'];
|
|
|
$uservip = $this->dao->getOne(['uid' => $uid, 'level_id' => $vipinfo['id']]);
|
|
@@ -448,7 +450,11 @@ class UserLevelServices extends BaseServices
|
|
|
}
|
|
|
$data['add_time'] += 1;
|
|
|
}
|
|
|
- if (!$userServices->update($uid, ['level' => end($userAllLevel)['id']], 'uid')) {
|
|
|
+ $res = true;
|
|
|
+ if ($user['level'] < $max_level) {
|
|
|
+ $res = $userServices->update($uid, ['level' => $max_level], 'uid');
|
|
|
+ }
|
|
|
+ if (!$res) {
|
|
|
throw new ValidateException('检测升级失败');
|
|
|
}
|
|
|
return true;
|