where('note_date', $today) ->whereNull('delete_time') ->find(); if ($existing) { $prev = trim((string) ($existing->content ?? '')); $existing->content = $prev !== '' ? ($prev . "\n" . $line) : $line; $existing->save(); } else { TrackingNote::create([ 'diagnosis_id' => $diagnosisId, 'admin_id' => $adminId, 'note_date' => $today, 'content' => $line, ]); } return true; } catch (\Exception $e) { self::setError($e->getMessage()); return false; } } /** * 按 diagnosis_id 获取跟踪备注列表(note_date DESC) * * @param int $diagnosisId * @param int $limit 最近 N 天 * @return array */ public static function getByDiagnosis(int $diagnosisId, int $limit = 60): array { try { if ($diagnosisId <= 0) { return []; } $records = TrackingNote::where('diagnosis_id', $diagnosisId) ->whereNull('delete_time') ->order('note_date', 'desc') ->limit($limit) ->select() ->toArray(); return $records; } catch (\Exception $e) { self::setError($e->getMessage()); return []; } } }