Files
AI-Chat/app/Controllers/MessageController.php

58 lines
1.8 KiB
PHP

<?php
namespace App\Controllers;
use App\Models\Session;
use App\Models\Message;
class MessageController
{
public static function index(int $sessionId): void
{
$user = $GLOBALS['auth_user'];
$session = Session::findById($sessionId);
if (!$session || $session['user_id'] != $user['userId']) {
http_response_code(404);
echo json_encode(['success' => false, 'message' => '会话不存在']);
return;
}
$messages = Message::findBySessionId($sessionId);
echo json_encode(['success' => true, 'data' => $messages]);
}
public static function create(int $sessionId): void
{
$user = $GLOBALS['auth_user'];
$session = Session::findById($sessionId);
if (!$session || $session['user_id'] != $user['userId']) {
http_response_code(404);
echo json_encode(['success' => false, 'message' => '会话不存在']);
return;
}
$input = json_decode(file_get_contents('php://input'), true);
if (empty($input['role']) || !isset($input['content']) || $input['content'] === '') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'role 和 content 为必填字段']);
return;
}
$data = [
'session_id' => $sessionId,
'role' => $input['role'],
'content' => $input['content'],
];
if (isset($input['file_info'])) {
$data['file_info'] = $input['file_info'];
}
if (isset($input['thinking_content'])) {
$data['thinking_content'] = $input['thinking_content'];
}
$message = Message::create($data);
echo json_encode(['success' => true, 'data' => $message]);
}
}