task claimed count on going

This commit is contained in:
xiaomlove
2024-08-09 21:40:00 +08:00
parent d1fd7f63ff
commit 9b83793c93
3 changed files with 4 additions and 4 deletions

View File

@@ -299,7 +299,7 @@ class Exam extends NexusModel
return $this->belongsToMany(User::class, "exam_users", "exam_id", "uid");
}
public function OnGoingUsers()
public function onGoingUsers()
{
return $this->users()->wherePivot("status", ExamUser::STATUS_NORMAL);
}

View File

@@ -392,7 +392,7 @@ class ExamRepository extends BaseRepository
throw new NexusException(nexus_trans('exam.claim_by_yourself_only', [], $locale));
}
if ($exam->max_user_count > 0) {
$claimUserCount = ExamUser::query()->where("exam_id", $examId)->count();
$claimUserCount = $exam->onGoingUsers()->count();
if ($claimUserCount >= $exam->max_user_count) {
throw new NexusException(nexus_trans('exam.reach_max_user_count', [], $locale));
}

View File

@@ -9,7 +9,7 @@ $query = \App\Models\Exam::query()
$total = (clone $query)->count();
$perPage = 20;
list($paginationTop, $paginationBottom, $limit, $offset) = pager($perPage, $total, "?");
$rows = (clone $query)->offset($offset)->take($perPage)->orderBy('id', 'desc')->withCount("users")->get();
$rows = (clone $query)->offset($offset)->take($perPage)->orderBy('id', 'desc')->withCount("onGoingUsers")->get();
$title = nexus_trans('exam.type_task');
$columnNameLabel = nexus_trans('label.name');
$columnIndexLabel = nexus_trans('exam.index');
@@ -75,7 +75,7 @@ foreach ($rows as $row) {
$columns[] = sprintf('<td>%s</td>', $row->filterFormatted);
$columns[] = sprintf('<td>%s</td>', number_format($row->success_reward_bonus));
$columns[] = sprintf('<td>%s</td>', number_format($row->fail_deduct_bonus));
$columns[] = sprintf('<td>%s</td>', sprintf("%s/%s",$row->users_count, $row->max_user_count ?: nexus_trans("label.infinite")));
$columns[] = sprintf('<td>%s</td>', sprintf("%s/%s",$row->on_going_users_count ?? 0, $row->max_user_count ?: nexus_trans("label.infinite")));
$columns[] = sprintf('<td>%s</td>', $row->description);
$columns[] = sprintf('<td>%s</td>', $claimAction);
$table .= sprintf('<tr>%s</tr>', implode("", $columns));