const express = require('express'); const db = require('../db-sqlite'); const { authenticate } = require('../middleware/auth'); module.exports = function(app) { const router = express.Router(); router.get('/', authenticate, async (req, res) => { try { const projectsResult = await db.query('SELECT id, name, contract_amount, status, created_at, updated_at FROM projects'); const projects = projectsResult.rows; res.json({ success: true, data: projects, count: projects.length }); } catch (error) { console.error('获取项目列表失败:', error); res.status(500).json({ success: false, message: '获取项目列表失败' }); } }); router.get('/:id', authenticate, async (req, res) => { try { const { id } = req.params; const projectResult = await db.query('SELECT id, name, contract_amount, status, created_at, updated_at FROM projects WHERE id = ?', [id]); if (projectResult.rows.length === 0) { return res.status(404).json({ success: false, message: '项目不存在' }); } const project = projectResult.rows[0]; res.json({ success: true, data: project }); } catch (error) { console.error('获取项目详情失败:', error); res.status(500).json({ success: false, message: '获取项目详情失败' }); } }); router.delete('/:id', authenticate, async (req, res) => { try { const { id } = req.params; const existingProject = await db.query('SELECT id FROM projects WHERE id = ?', [id]); if (existingProject.rows.length === 0) { return res.status(404).json({ success: false, message: '项目不存在' }); } await db.query('DELETE FROM projects WHERE id = ?', [id]); res.json({ success: true, message: '项目删除成功' }); } catch (error) { console.error('删除项目失败:', error); res.status(500).json({ success: false, message: '删除项目失败' }); } }); router.put('/:id', authenticate, async (req, res) => { try { const { id } = req.params; const { name, contract_amount, status } = req.body; await db.query( 'UPDATE projects SET name = ?, contract_amount = ?, status = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?', [name, contract_amount, status, id] ); const updatedProjectResult = await db.query('SELECT id, name, contract_amount, status, created_at, updated_at FROM projects WHERE id = ?', [id]); const updatedProject = updatedProjectResult.rows[0]; res.json({ success: true, data: updatedProject }); } catch (error) { console.error('更新项目信息失败:', error); res.status(500).json({ success: false, message: '更新项目信息失败' }); } }); router.put('/:id/contract', authenticate, async (req, res) => { try { const { id } = req.params; const { contract_amount } = req.body; await db.query( 'UPDATE projects SET contract_amount = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?', [contract_amount, id] ); const updatedProjectResult = await db.query('SELECT id, name, contract_amount, status, created_at, updated_at FROM projects WHERE id = ?', [id]); const updatedProject = updatedProjectResult.rows[0]; res.json({ success: true, data: updatedProject }); } catch (error) { console.error('更新项目合同失败:', error); res.status(500).json({ success: false, message: '更新项目合同失败' }); } }); app.use('/api/projects', router); };