diff --git a/app/Services/BaccaratPredictionService.php b/app/Services/BaccaratPredictionService.php index 1bd9f8e..2c37f88 100644 --- a/app/Services/BaccaratPredictionService.php +++ b/app/Services/BaccaratPredictionService.php @@ -37,6 +37,11 @@ class BaccaratPredictionService */ private const PREFERRED_MODEL = 'glm-5.1-free'; + /** + * AI小班长的用户 ID(惰性加载,首次使用时查询一次) + */ + private ?int $aiUserId = null; + /** * 调用 AI 接口预测百家乐下注方向 * @@ -248,7 +253,7 @@ PROMPT; ): void { try { AiUsageLog::create([ - 'user_id' => null, // AI 系统行为,无对应用户 + 'user_id' => $this->resolveAiUserId(), 'provider' => $config->provider, 'model' => $config->model, 'action' => 'baccarat_predict', @@ -263,4 +268,19 @@ PROMPT; Log::error('百家乐 AI 预测日志记录失败', ['error' => $e->getMessage()]); } } + + /** + * 查询 AI小班长的用户 ID + * + * 加载结果以属性形式缓存,同一个服务实例内只查一次。 + * 查不到时返回 null,避免破坏外键约束。 + */ + private function resolveAiUserId(): ?int + { + if ($this->aiUserId === null) { + $this->aiUserId = \App\Models\User::where('username', 'AI小班长')->value('id'); + } + + return $this->aiUserId; + } }