修改管理后台
This commit is contained in:
@@ -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 - 请求对象
|
||||
|
||||
Reference in New Issue
Block a user