Files
yunhaifinance/backend/routes_backup/executions.js
T

86 lines
3.3 KiB
JavaScript
Raw Normal View History

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 { status } = req.query;
let query = 'SELECT id, user_id, project_id, amount, description, status, created_at,
updated_at FROM executions';
const params = [];
if (status) {
query += ' WHERE status = ?';
params.push(status);
}
query += ' ORDER BY created_at DESC';
const executionsResult = await db.query(query, params);
const executions = executionsResult.rows;
res.json({ success: true, data: executions, count: executions.length });
} catch (error) {
console.error('获取执行列表失败:', error);
res.status(500).json({ success: false, message: '获取执行列表失败' });
}
});
router.get('/pending', authenticate, async (req, res) => {
try {
const pendingResult = await db.query(
'SELECT id, user_id, project_id, amount, description, status, created_at, updated_at FROM executions WHERE status = ? ORDER BY created_at DESC',
['pending']
);
const pending = pendingResult.rows;
res.json({ success: true, data: pending, count: pending.length });
} catch (error) {
console.error('获取待执行列表失败:', error);
res.status(500).json({ success: false, message: '获取待执行列表失败' });
}
});
router.get('/executed', authenticate, async (req, res) => {
try {
const executedResult = await db.query(
'SELECT id, user_id, project_id, amount, description, status, created_at, updated_at FROM executions WHERE status = ? ORDER BY created_at DESC',
['executed']
);
const executed = executedResult.rows;
res.json({ success: true, data: executed, count: executed.length });
} catch (error) {
console.error('获取已执行列表失败:', error);
res.status(500).json({ success: false, message: '获取已执行列表失败' });
}
});
router.post('/', authenticate, async (req, res) => {
try {
const { user_id, project_id, amount, description } = req.body;
if (!user_id || !project_id || !amount) {
return res.status(400).json({ success: false,
message: '用户ID、项目ID和金额为必填项' });
}
const result = await db.query(
'INSERT INTO executions (user_id, project_id, amount, description, status, created_at, updated_at) VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)',
[user_id, project_id, amount, description || '', 'pending']
);
const newExecutionResult = await db.query('SELECT id, user_id, project_id, amount, description, status, created_at, updated_at FROM executions WHERE id = ?', [result.lastID]);
const newExecution = newExecutionResult.rows[0];
console.log(`执行创建成功,由 ${req.user.username} 操作`);
res.json({ success: true, data: newExecution });
} catch (error) {
console.error('创建执行失败:', error);
res.status(500).json({ success: false, message: '创建执行失败' });
}
});
app.use('/api/executions', router);
};