File manager - Edit - /home/webapp69.cm.in.th/u69319090033/Shop/api/admin_seller_applications.php
Back
<?php header('Content-Type: application/json; charset=utf-8'); require_once '../db.php'; // ตรวจสอบสิทธิ์ผู้ดูแลระบบ (Admin) if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'admin') { http_response_code(403); echo json_encode(['success' => false, 'message' => 'Access denied. Admin only.']); exit; } $method = $_SERVER['REQUEST_METHOD']; $adminId = (int)$_SESSION['user_id']; // ---- GET: ดึงรายการคำขอทั้งหมดหรือตามสถานะ ---- if ($method === 'GET') { $status = $_GET['status'] ?? 'pending'; $allowedStatuses = ['pending', 'approved', 'rejected', 'all']; if (!in_array($status, $allowedStatuses)) $status = 'pending'; if ($status === 'all') { $sql = "SELECT sa.application_id, sa.shop_name, sa.status, sa.applied_at, sa.reviewed_at, u.user_id, u.full_name, u.email, u.phone, u.seller_status FROM seller_applications sa JOIN users u ON u.user_id = sa.user_id ORDER BY sa.applied_at DESC"; $stmt = $conn->prepare($sql); } else { $sql = "SELECT sa.application_id, sa.shop_name, sa.status, sa.applied_at, sa.reviewed_at, u.user_id, u.full_name, u.email, u.phone, u.seller_status FROM seller_applications sa JOIN users u ON u.user_id = sa.user_id WHERE sa.status = ? ORDER BY sa.applied_at DESC"; $stmt = $conn->prepare($sql); $stmt->bind_param('s', $status); } $stmt->execute(); $result = $stmt->get_result(); $applications = []; while ($row = $result->fetch_assoc()) { $applications[] = $row; } $stmt->close(); echo json_encode(['success' => true, 'applications' => $applications]); exit; } // ---- POST: อนุมัติ (approve) หรือ ปฏิเสธ (reject) คำขอ ---- if ($method === 'POST') { $input = json_decode(file_get_contents('php://input'), true); $appId = (int)($input['application_id'] ?? 0); $targetUserId = (int)($input['user_id'] ?? 0); $action = $input['action'] ?? ''; // 'approve' หรือ 'reject' if ((!$appId && !$targetUserId) || !in_array($action, ['approve', 'reject'])) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'พารามิเตอร์ไม่ถูกต้อง']); exit; } $newStatus = ($action === 'approve') ? 'approved' : 'rejected'; $now = date('Y-m-d H:i:s'); // ถ้าส่ง application_id มา ให้หา user_id if ($appId) { $stmt = $conn->prepare("SELECT user_id FROM seller_applications WHERE application_id = ?"); $stmt->bind_param('i', $appId); $stmt->execute(); $app = $stmt->get_result()->fetch_assoc(); $stmt->close(); if ($app) { $targetUserId = (int)$app['user_id']; } } if (!$targetUserId) { http_response_code(404); echo json_encode(['success' => false, 'message' => 'ไม่พบข้อมูลผู้ใช้งานหรือคำขอ']); exit; } if ($action === 'approve') { // อนุมัติ: เปลี่ยน role เป็น seller, seller_status เป็น approved, บันทึก approved_at และ approved_by $stmt = $conn->prepare("UPDATE users SET role = 'seller', seller_status = 'approved', approved_at = ?, approved_by = ? WHERE user_id = ? AND role != 'admin'"); $stmt->bind_param('sii', $now, $adminId, $targetUserId); $stmt->execute(); $stmt->close(); // อัปเดต seller_applications ด้วย if ($appId) { $stmtApp = $conn->prepare("UPDATE seller_applications SET status = 'approved', reviewed_at = ? WHERE application_id = ?"); $stmtApp->bind_param('si', $now, $appId); $stmtApp->execute(); $stmtApp->close(); } else { $conn->query("UPDATE seller_applications SET status = 'approved', reviewed_at = '$now' WHERE user_id = $targetUserId"); } $msg = 'อนุมัติคำขอและเลื่อนระดับเป็น Seller เรียบร้อยแล้ว'; } else { // ปฏิเสธ: คง role เดิม (หรือ user), ปรับ seller_status เป็น rejected $stmt = $conn->prepare("UPDATE users SET seller_status = 'rejected' WHERE user_id = ? AND role != 'admin'"); $stmt->bind_param('i', $targetUserId); $stmt->execute(); $stmt->close(); if ($appId) { $stmtApp = $conn->prepare("UPDATE seller_applications SET status = 'rejected', reviewed_at = ? WHERE application_id = ?"); $stmtApp->bind_param('si', $now, $appId); $stmtApp->execute(); $stmtApp->close(); } else { $conn->query("UPDATE seller_applications SET status = 'rejected', reviewed_at = '$now' WHERE user_id = $targetUserId"); } $msg = 'ปฏิเสธคำขอเรียบร้อยแล้ว'; } echo json_encode(['success' => true, 'message' => $msg]); exit; } http_response_code(405); echo json_encode(['success' => false, 'message' => 'Method Not Allowed']); ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.22 |
proxy
|
phpinfo
|
Settings