123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- require_once 'conn.php';
- checkLogin();
- $employee_id = $_SESSION['employee_id'];
- $action = $_POST['action'] ?? '';
- $message_id = isset($_POST['message_id']) ? intval($_POST['message_id']) : 0;
- if ($message_id <= 0) {
- header('Content-Type: application/json');
- echo json_encode(['success' => false, 'message' => '无效的消息ID']);
- exit;
- }
- // 检查消息存在且用户有权限
- $check_sql = "SELECT m.id, m.target_type
- FROM messages m
- LEFT JOIN message_recipients mr ON m.id = mr.message_id AND mr.employee_id = $employee_id
- WHERE m.id = $message_id AND (m.target_type = 2 OR mr.employee_id = $employee_id)";
- $check_result = mysqli_query($conn, $check_sql);
- if (mysqli_num_rows($check_result) == 0) {
- header('Content-Type: application/json');
- echo json_encode(['success' => false, 'message' => '消息不存在或无权操作']);
- exit;
- }
- $message = mysqli_fetch_assoc($check_result);
- switch ($action) {
- case 'mark_read':
- $check_recipient_sql = "SELECT id FROM message_recipients WHERE message_id = $message_id AND employee_id = $employee_id";
- $check_recipient_result = mysqli_query($conn, $check_recipient_sql);
- if (mysqli_num_rows($check_recipient_result) > 0) {
- // 更新已有记录
- $update_sql = "UPDATE message_recipients SET is_read = 1, read_time = NOW() WHERE message_id = $message_id AND employee_id = $employee_id";
- $result = mysqli_query($conn, $update_sql);
- } else if ($message['target_type'] == 2) {
- // 全体公告,创建新的接收记录
- $insert_sql = "INSERT INTO message_recipients (message_id, employee_id, is_read, read_time, created_at)
- VALUES ($message_id, $employee_id, 1, NOW(), NOW())";
- $result = mysqli_query($conn, $insert_sql);
- }
- if ($result) {
- header('Content-Type: application/json');
- echo json_encode(['success' => true]);
- } else {
- header('Content-Type: application/json');
- echo json_encode(['success' => false, 'message' => '操作失败: ' . mysqli_error($conn)]);
- }
- break;
- case 'delete':
- $check_recipient_sql = "SELECT id FROM message_recipients WHERE message_id = $message_id AND employee_id = $employee_id";
- $check_recipient_result = mysqli_query($conn, $check_recipient_sql);
- if (mysqli_num_rows($check_recipient_result) > 0) {
- // 更新已有记录,标记为删除
- $update_sql = "UPDATE message_recipients SET is_deleted = 1 WHERE message_id = $message_id AND employee_id = $employee_id";
- $result = mysqli_query($conn, $update_sql);
- } else if ($message['target_type'] == 2) {
- // 全体公告,创建已删除的接收记录
- $insert_sql = "INSERT INTO message_recipients (message_id, employee_id, is_read, is_deleted, created_at)
- VALUES ($message_id, $employee_id, 1, 1, NOW())";
- $result = mysqli_query($conn, $insert_sql);
- }
- if ($result) {
- header('Content-Type: application/json');
- echo json_encode(['success' => true]);
- } else {
- header('Content-Type: application/json');
- echo json_encode(['success' => false, 'message' => '操作失败: ' . mysqli_error($conn)]);
- }
- break;
- default:
- header('Content-Type: application/json');
- echo json_encode(['success' => false, 'message' => '未知操作']);
- }
- ?>
|