优化:排行榜显示人数改为后台可配置
- 新增 sysparam leaderboard_limit 配置项,默认 20 - 后台修改后清缓存即可生效
This commit is contained in:
@@ -29,47 +29,50 @@ class LeaderboardController extends Controller
|
||||
// 管理员等级阈值,排行榜中隐藏管理员
|
||||
$superLevel = (int) \App\Models\Sysparam::getValue('superlevel', '100');
|
||||
|
||||
// 排行榜显示人数(后台可配置)
|
||||
$topN = (int) \App\Models\Sysparam::getValue('leaderboard_limit', '20');
|
||||
|
||||
// 1. 境界榜 (以 user_level 为尊)
|
||||
$topLevels = Cache::remember('leaderboard:top_levels', $ttl, function () use ($superLevel) {
|
||||
$topLevels = Cache::remember('leaderboard:top_levels', $ttl, function () use ($superLevel, $topN) {
|
||||
return User::select('id', 'username', 'usersf', 'user_level', 'sex')
|
||||
->where('user_level', '>', 0)
|
||||
->where('user_level', '<', $superLevel)
|
||||
->orderByDesc('user_level')
|
||||
->orderBy('id')
|
||||
->limit(20)
|
||||
->limit($topN)
|
||||
->get();
|
||||
});
|
||||
|
||||
// 2. 修为榜 (以 exp_num 为尊)
|
||||
$topExp = Cache::remember('leaderboard:top_exp', $ttl, function () use ($superLevel) {
|
||||
$topExp = Cache::remember('leaderboard:top_exp', $ttl, function () use ($superLevel, $topN) {
|
||||
return User::select('id', 'username', 'usersf', 'exp_num', 'sex', 'user_level')
|
||||
->where('exp_num', '>', 0)
|
||||
->where('user_level', '<', $superLevel)
|
||||
->orderByDesc('exp_num')
|
||||
->orderBy('id')
|
||||
->limit(20)
|
||||
->limit($topN)
|
||||
->get();
|
||||
});
|
||||
|
||||
// 3. 财富榜 (以 jjb-交友币 为尊)
|
||||
$topWealth = Cache::remember('leaderboard:top_wealth', $ttl, function () use ($superLevel) {
|
||||
$topWealth = Cache::remember('leaderboard:top_wealth', $ttl, function () use ($superLevel, $topN) {
|
||||
return User::select('id', 'username', 'usersf', 'jjb', 'sex', 'user_level')
|
||||
->where('jjb', '>', 0)
|
||||
->where('user_level', '<', $superLevel)
|
||||
->orderByDesc('jjb')
|
||||
->orderBy('id')
|
||||
->limit(20)
|
||||
->limit($topN)
|
||||
->get();
|
||||
});
|
||||
|
||||
// 4. 魅力榜 (以 meili 为尊)
|
||||
$topCharm = Cache::remember('leaderboard:top_charm', $ttl, function () use ($superLevel) {
|
||||
$topCharm = Cache::remember('leaderboard:top_charm', $ttl, function () use ($superLevel, $topN) {
|
||||
return User::select('id', 'username', 'usersf', 'meili', 'sex', 'user_level')
|
||||
->where('meili', '>', 0)
|
||||
->where('user_level', '<', $superLevel)
|
||||
->orderByDesc('meili')
|
||||
->orderBy('id')
|
||||
->limit(20)
|
||||
->limit($topN)
|
||||
->get();
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user