修改管理后台

This commit is contained in:
shenquanyi
2025-09-12 20:08:42 +08:00
parent 39d61c6f9b
commit 80a24c2d60
286 changed files with 75316 additions and 9452 deletions

View File

@@ -30,6 +30,72 @@ exports.getAllAnimals = async (req, res) => {
}
};
/**
* 根据养殖场名称搜索动物
* @param {Object} req - 请求对象
* @param {Object} res - 响应对象
*/
exports.searchAnimalsByFarmName = 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 animals = await Animal.findAll({
where: {
farm_id: {
[require('sequelize').Op.in]: farmIds
}
},
include: [{ model: Farm, as: 'farm', attributes: ['id', 'name', 'location'] }],
order: [['created_at', 'DESC']]
});
console.log(`找到 ${animals.length} 个匹配的动物`);
res.status(200).json({
success: true,
data: animals,
message: `找到 ${animals.length} 个养殖场名称包含 "${farmName}" 的动物`
});
} catch (error) {
console.error('根据养殖场名称搜索动物失败:', error);
res.status(500).json({
success: false,
message: '搜索动物失败',
error: error.message
});
}
};
/**
* 获取单个动物
* @param {Object} req - 请求对象