Files
sbnews/server/app/adminapi/lists/article/ArticleAiCommentTaskLists.php
2026-06-11 12:15:29 +08:00

51 lines
1.5 KiB
PHP

<?php
namespace app\adminapi\lists\article;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsSearchInterface;
use app\common\model\article\ArticleAiCommentTask;
use app\common\model\user\User;
class ArticleAiCommentTaskLists extends BaseAdminDataLists implements ListsSearchInterface
{
public function setSearch(): array
{
return [
'=' => ['article_id', 'status'],
'%like%' => [],
];
}
public function lists(): array
{
$lists = ArticleAiCommentTask::where($this->searchWhere)
->whereNull('delete_time')
->limit($this->limitOffset, $this->limitLength)
->order('id', 'desc')
->select()
->toArray();
$userIds = array_unique(array_column($lists, 'virtual_user_id'));
$users = [];
if (!empty($userIds)) {
$users = User::whereIn('id', $userIds)->column('nickname', 'id');
}
foreach ($lists as &$item) {
$item['virtual_nickname'] = $users[$item['virtual_user_id']] ?? '-';
$item['create_time_text'] = is_numeric($item['create_time']) ? date('Y-m-d H:i:s', $item['create_time']) : $item['create_time'];
$item['run_at_text'] = is_numeric($item['run_at']) ? date('Y-m-d H:i:s', $item['run_at']) : $item['run_at'];
}
return $lists;
}
public function count(): int
{
return ArticleAiCommentTask::where($this->searchWhere)
->whereNull('delete_time')
->count();
}
}