Files
nxxmdata/government-backend/controllers/HarmlessPlaceController.js

199 lines
4.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const { validationResult } = require('express-validator');
const { Op } = require('sequelize');
const HarmlessPlace = require('../models/HarmlessPlace');
// 获取无害化场所列表
exports.getList = async (req, res) => {
try {
const { page = 1, pageSize = 10, keyword = '', status = '' } = req.query;
const offset = (page - 1) * pageSize;
const where = {};
if (keyword) {
where[Op.or] = [
{ name: { [Op.like]: `%${keyword}%` } },
{ licenseNumber: { [Op.like]: `%${keyword}%` } }
];
}
if (status) {
where.status = status;
}
// 移除排序部分避免使用不存在的created_at字段
const result = await HarmlessPlace.findAndCountAll({
where,
attributes: ['id', 'name', 'address', 'contactPerson', 'contactPhone', 'licenseNumber', 'status'],
limit: parseInt(pageSize),
offset: parseInt(offset)
});
res.json({
code: 200,
message: '获取成功',
data: {
list: result.rows,
total: result.count
}
});
} catch (error) {
console.error('获取无害化场所列表失败:', error);
res.status(500).json({
code: 500,
message: '获取失败',
error: error.message
});
}
};
// 获取无害化场所详情
exports.getDetail = async (req, res) => {
try {
const { id } = req.params;
const place = await HarmlessPlace.findByPk(id);
if (!place) {
return res.status(404).json({
code: 404,
message: '无害化场所不存在'
});
}
res.json({
code: 200,
message: '获取成功',
data: place
});
} catch (error) {
console.error('获取无害化场所详情失败:', error);
res.status(500).json({
code: 500,
message: '获取失败',
error: error.message
});
}
};
// 创建无害化场所
exports.create = async (req, res) => {
try {
// 验证请求数据
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({
code: 400,
message: '参数错误',
errors: errors.array()
});
}
const { name, address, contactPerson, contactPhone, licenseNumber, status } = req.body;
// 创建无害化场所
const place = await HarmlessPlace.create({
name,
address,
contactPerson,
contactPhone,
licenseNumber,
status: status || '正常'
});
res.json({
code: 200,
message: '创建成功',
data: place
});
} catch (error) {
console.error('创建无害化场所失败:', error);
res.status(500).json({
code: 500,
message: '创建失败',
error: error.message
});
}
};
// 更新无害化场所
exports.update = async (req, res) => {
try {
// 验证请求数据
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({
code: 400,
message: '参数错误',
errors: errors.array()
});
}
const { id } = req.params;
const { name, address, contactPerson, contactPhone, licenseNumber, status } = req.body;
// 查找无害化场所
const place = await HarmlessPlace.findByPk(id);
if (!place) {
return res.status(404).json({
code: 404,
message: '无害化场所不存在'
});
}
// 更新无害化场所
await place.update({
name,
address,
contactPerson,
contactPhone,
licenseNumber,
status
});
res.json({
code: 200,
message: '更新成功',
data: place
});
} catch (error) {
console.error('更新无害化场所失败:', error);
res.status(500).json({
code: 500,
message: '更新失败',
error: error.message
});
}
};
// 删除无害化场所
exports.delete = async (req, res) => {
try {
const { id } = req.params;
// 查找无害化场所
const place = await HarmlessPlace.findByPk(id);
if (!place) {
return res.status(404).json({
code: 404,
message: '无害化场所不存在'
});
}
// 删除无害化场所
await place.destroy();
res.json({
code: 200,
message: '删除成功'
});
} catch (error) {
console.error('删除无害化场所失败:', error);
res.status(500).json({
code: 500,
message: '删除失败',
error: error.message
});
}
};