修改管理后台
This commit is contained in:
@@ -37,6 +37,75 @@ exports.getAllAlerts = async (req, res) => {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据养殖场名称搜索预警
|
||||
* @param {Object} req - 请求对象
|
||||
* @param {Object} res - 响应对象
|
||||
*/
|
||||
exports.searchAlertsByFarmName = async (req, res) => {
|
||||
try {
|
||||
const { farmName } = req.query;
|
||||
|
||||
if (!farmName) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '请提供养殖场名称参数'
|
||||
});
|
||||
}
|
||||
|
||||
console.log(`开始搜索养殖场名称包含 "${farmName}" 的预警...`);
|
||||
|
||||
// 首先找到匹配的养殖场
|
||||
const farms = await Farm.findAll({
|
||||
where: {
|
||||
name: {
|
||||
[require('sequelize').Op.like]: `%${farmName}%`
|
||||
}
|
||||
},
|
||||
attributes: ['id', 'name']
|
||||
});
|
||||
|
||||
if (farms.length === 0) {
|
||||
return res.status(200).json({
|
||||
success: true,
|
||||
data: [],
|
||||
message: '未找到匹配的养殖场'
|
||||
});
|
||||
}
|
||||
|
||||
const farmIds = farms.map(farm => farm.id);
|
||||
|
||||
// 根据养殖场ID查找预警
|
||||
const alerts = await Alert.findAll({
|
||||
where: {
|
||||
farm_id: {
|
||||
[require('sequelize').Op.in]: farmIds
|
||||
}
|
||||
},
|
||||
include: [
|
||||
{ model: Farm, as: 'farm', attributes: ['id', 'name', 'location'] },
|
||||
{ model: Device, as: 'device', attributes: ['id', 'name', 'type'] }
|
||||
],
|
||||
order: [['created_at', 'DESC']]
|
||||
});
|
||||
|
||||
console.log(`找到 ${alerts.length} 个匹配的预警`);
|
||||
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
data: alerts,
|
||||
message: `找到 ${alerts.length} 个养殖场名称包含 "${farmName}" 的预警`
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('根据养殖场名称搜索预警失败:', error);
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '搜索预警失败',
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取单个预警
|
||||
* @param {Object} req - 请求对象
|
||||
|
||||
Reference in New Issue
Block a user