exec("SET NAMES 'utf8mb4'"); $offerStatusMap = [ 'OF10001' => '제안', 'OF10002' => '검토중', 'OF10003' => '게시완료', 'OF10004' => '게시불가', ]; $stmtCode = $pdo->prepare(" SELECT base_code, code_name FROM edu_codes WHERE group_code = 'OF100' AND is_active = '1' ORDER BY code "); $stmtCode->execute(); foreach ($stmtCode->fetchAll(PDO::FETCH_ASSOC) as $row) { $offerStatusMap[$row['base_code']] = $row['code_name']; } $stmt = $pdo->prepare(" SELECT co.offer_id, co.status_code, co.created_at FROM edu_content_offer co WHERE co.member_id = :member_id AND co.sys_comp_code = :sys_comp_code ORDER BY CASE co.status_code WHEN 'OF10002' THEN 0 WHEN 'OF10001' THEN 1 WHEN 'OF10003' THEN 2 WHEN 'OF10004' THEN 3 ELSE 9 END, co.created_at DESC LIMIT 20 "); $stmt->execute([ ':member_id' => $memberId, ':sys_comp_code' => $sysCompCode, ]); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); ob_start(); if (!empty($rows)) { foreach ($rows as $row) { $statusCode = (string)($row['status_code'] ?? ''); $statusName = $offerStatusMap[$statusCode] ?? $statusCode; $isConsider = ($statusCode === 'OF10002'); $createdAtDot = !empty($row['created_at']) ? date('y.m.d', strtotime($row['created_at'])) : ''; ?>
  • - 등록된 제안이 없습니다.
  • true, 'html' => $html, ]); } catch (Throwable $e) { response_json([ 'success' => false, 'message' => '제안현황을 불러오지 못했습니다.', 'error' => $e->getMessage(), ]); }