feat: 扩展 SeekDB 支持联系人、项目、任务的 AI 搜索

- 合并 SeekDBFileSyncTask 到 SeekDBSyncTask
- 统一 AI 搜索 API 入口
This commit is contained in:
kuaifan
2025-12-30 07:47:47 +00:00
parent 23faf28f7f
commit fe7a2a0e73
23 changed files with 3679 additions and 207 deletions

View File

@@ -5,8 +5,9 @@ namespace App\Observers;
use App\Models\Deleted;
use App\Models\ProjectTaskUser;
use App\Models\ProjectUser;
use App\Tasks\SeekDBSyncTask;
class ProjectTaskUserObserver
class ProjectTaskUserObserver extends AbstractObserver
{
/**
* Handle the ProjectTaskUser "created" event.
@@ -20,6 +21,19 @@ class ProjectTaskUserObserver
if ($projectTaskUser->task_pid) {
Deleted::forget('projectTask', $projectTaskUser->task_pid, $projectTaskUser->userid);
}
// 同步任务成员到 SeekDB
self::taskDeliver(new SeekDBSyncTask('task_user_add', [
'task_id' => $projectTaskUser->task_id,
'userid' => $projectTaskUser->userid,
]));
// 如果是子任务,同时添加到父任务
if ($projectTaskUser->task_pid) {
self::taskDeliver(new SeekDBSyncTask('task_user_add', [
'task_id' => $projectTaskUser->task_pid,
'userid' => $projectTaskUser->userid,
]));
}
}
/**
@@ -44,6 +58,12 @@ class ProjectTaskUserObserver
if (!ProjectUser::whereProjectId($projectTaskUser->project_id)->whereUserid($projectTaskUser->userid)->exists()) {
Deleted::record('projectTask', $projectTaskUser->task_id, $projectTaskUser->userid);
}
// 从 SeekDB 删除任务成员关系
self::taskDeliver(new SeekDBSyncTask('task_user_remove', [
'task_id' => $projectTaskUser->task_id,
'userid' => $projectTaskUser->userid,
]));
}
/**