From a145c6fc0a8c70774af8b1a4b72984cea2643b6d Mon Sep 17 00:00:00 2001 From: lkddi Date: Sun, 1 Mar 2026 11:16:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D+=E6=94=B9=E8=BF=9B=EF=BC=9A?= =?UTF-8?q?=E8=81=8C=E5=8A=A1=E5=A5=96=E5=8A=B1=E6=AC=A1=E6=95=B0=E4=B8=8A?= =?UTF-8?q?=E9=99=90=E5=92=8C=E5=90=8E=E5=8F=B0=E5=88=97=E8=A1=A8=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复: - recipient_daily_limit 统计逻辑修正:移除 user_id 过滤, 改为统计今日所有职务持有者对同一接收者的累计发放次数 (上限含义:该用户今日最多从所有职务人员处收到 N 次奖励) 改进: - 后台职务列表新增「单日上限」列显示 daily_reward_limit - 「奖励上限」列改名为「单次上限」更准确 - 两列均支持 null(不限)/ 0(禁止)/ 数值 三种状态区分显示 --- .../Controllers/AdminCommandController.php | 9 ++++---- .../views/admin/positions/index.blade.php | 22 +++++++++++++++++-- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/AdminCommandController.php b/app/Http/Controllers/AdminCommandController.php index ce0babb..4b02c65 100644 --- a/app/Http/Controllers/AdminCommandController.php +++ b/app/Http/Controllers/AdminCommandController.php @@ -469,7 +469,7 @@ class AdminCommandController extends Controller // ② 操作人单日累计上限校验 if ($position->daily_reward_limit) { - $todayTotal = PositionAuthorityLog::where('user_id', $admin->id) + $todayTotal = PositionAuthorityLog::where('target_user_id', $target->id) ->where('action_type', 'reward') ->whereDate('created_at', today()) ->sum('amount'); @@ -484,10 +484,9 @@ class AdminCommandController extends Controller } } - // ③ 同一接收者每日次数上限校验 + // ③ 同一接收者每日次数上限校验(统计今日所有职务持有者对该用户的累计发放次数) if ($position->recipient_daily_limit) { - $recipientCount = PositionAuthorityLog::where('user_id', $admin->id) - ->where('target_user_id', $target->id) + $recipientCount = PositionAuthorityLog::where('target_user_id', $target->id) ->where('action_type', 'reward') ->whereDate('created_at', today()) ->count(); @@ -495,7 +494,7 @@ class AdminCommandController extends Controller if ($recipientCount >= $position->recipient_daily_limit) { return response()->json([ 'status' => 'error', - 'message' => "今日已对 {$targetUsername} 发放过 {$position->recipient_daily_limit} 次奖励,已达上限", + 'message' => "{$targetUsername} 今日已由全体职务人员累计发放 {$recipientCount} 次奖励,已达每日上限({$position->recipient_daily_limit})", ], 422); } } diff --git a/resources/views/admin/positions/index.blade.php b/resources/views/admin/positions/index.blade.php index 57d83cd..d1affc4 100644 --- a/resources/views/admin/positions/index.blade.php +++ b/resources/views/admin/positions/index.blade.php @@ -120,7 +120,8 @@ 等级 人数上限 当前在职 - 奖励上限 + 单次上限 + 单日上限 任命权 @php $superLvl = (int) \App\Models\Sysparam::getValue('superlevel', '100'); @endphp @if (Auth::user()->user_level >= $superLvl) @@ -150,7 +151,24 @@ - {{ $pos->max_reward ? number_format($pos->max_reward) . '金币' : '不限' }} + @if ($pos->max_reward === null) + 不限 + @elseif ($pos->max_reward === 0) + 禁止 + @else + {{ number_format($pos->max_reward) }} + @endif + + + @if ($pos->daily_reward_limit === null) + 不限 + @elseif ($pos->daily_reward_limit === 0) + 禁止 + @else + {{ number_format($pos->daily_reward_limit) }} + @endif @if (count($appointableIds) > 0)