Files
smalltown/app/api/owner/houses/route.ts
2026-03-24 22:54:24 +08:00

51 lines
1.5 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server';
import pool from '@/lib/db';
export async function GET(request: NextRequest) {
let connection;
try {
const token = request.cookies.get('auth_token')?.value;
if (!token) {
return NextResponse.json({ error: '请先登录' }, { status: 401 });
}
connection = await pool.getConnection();
const [users] = await connection.query<any[]>('SELECT username FROM users WHERE token = ?', [token]);
if (users.length === 0) {
connection.release();
return NextResponse.json({ error: '用户不存在' }, { status: 401 });
}
const [rows] = await connection.query<any[]>(
'SELECT * FROM houses WHERE owner = ? ORDER BY created_at DESC',
[users[0].username]
);
const houses = rows.map((row: any) => ({
id: row.id,
owner: row.owner,
title: row.title,
description: row.description,
price: row.price,
district: row.district,
address: row.address,
phone: row.phone,
images: row.images ? JSON.parse(row.images) : [],
status: row.status,
reject_reason: row.reject_reason,
reviewed_at: row.reviewed_at,
createdAt: row.created_at
}));
connection.release();
return NextResponse.json({ houses });
} catch (error) {
console.error('Get my houses error:', error);
return NextResponse.json({ error: '获取房屋列表失败' }, { status: 500 });
} finally {
if (connection) connection.release();
}
}