58 lines
1.8 KiB
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]);
|
|
}
|
|
}
|