修改bug。新增牛只,超链接
This commit is contained in:
197
backend/controllers/iotJbqClientController.js
Normal file
197
backend/controllers/iotJbqClientController.js
Normal file
@@ -0,0 +1,197 @@
|
||||
/**
|
||||
* 智能耳标客户端控制器
|
||||
* 处理iot_jbq_client表的CRUD操作
|
||||
*/
|
||||
|
||||
const { sequelize } = require('../config/database-simple')
|
||||
|
||||
class IotJbqClientController {
|
||||
/**
|
||||
* 获取所有智能耳标设备
|
||||
*/
|
||||
async getAllClients(req, res) {
|
||||
try {
|
||||
const { cid, page = 1, pageSize = 10 } = req.query
|
||||
|
||||
let whereClause = ''
|
||||
let params = []
|
||||
|
||||
if (cid) {
|
||||
whereClause = `WHERE cid = '${cid}'`
|
||||
}
|
||||
|
||||
const offset = (page - 1) * pageSize
|
||||
|
||||
// 获取总数
|
||||
const [countResult] = await sequelize.query(
|
||||
`SELECT COUNT(*) as total FROM iot_jbq_client ${whereClause}`
|
||||
)
|
||||
|
||||
// 获取数据
|
||||
const [clients] = await sequelize.query(
|
||||
`SELECT * FROM iot_jbq_client ${whereClause} ORDER BY id DESC LIMIT ${parseInt(pageSize)} OFFSET ${offset}`
|
||||
)
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: clients,
|
||||
pagination: {
|
||||
current: parseInt(page),
|
||||
pageSize: parseInt(pageSize),
|
||||
total: countResult[0].total
|
||||
},
|
||||
message: '获取智能耳标设备列表成功'
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('获取智能耳标设备列表失败:', error)
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '获取智能耳标设备列表失败',
|
||||
error: error.message
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据CID获取智能耳标设备
|
||||
*/
|
||||
async getClientByCid(req, res) {
|
||||
try {
|
||||
const { cid } = req.params
|
||||
const [clients] = await sequelize.query(`SELECT * FROM iot_jbq_client WHERE cid = '${cid}'`)
|
||||
|
||||
if (clients.length === 0) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: '智能耳标设备不存在'
|
||||
})
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: clients[0],
|
||||
message: '获取智能耳标设备成功'
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('获取智能耳标设备失败:', error)
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '获取智能耳标设备失败',
|
||||
error: error.message
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID获取智能耳标设备
|
||||
*/
|
||||
async getClientById(req, res) {
|
||||
try {
|
||||
const { id } = req.params
|
||||
const [clients] = await sequelize.query(`SELECT * FROM iot_jbq_client WHERE id = ${id}`)
|
||||
|
||||
if (clients.length === 0) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: '智能耳标设备不存在'
|
||||
})
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: clients[0],
|
||||
message: '获取智能耳标设备成功'
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('获取智能耳标设备失败:', error)
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '获取智能耳标设备失败',
|
||||
error: error.message
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新智能耳标设备
|
||||
*/
|
||||
async updateClient(req, res) {
|
||||
try {
|
||||
const { id } = req.params
|
||||
const updateData = req.body
|
||||
|
||||
// 构建更新字段
|
||||
const updateFields = []
|
||||
|
||||
Object.keys(updateData).forEach(key => {
|
||||
if (updateData[key] !== undefined) {
|
||||
const value = typeof updateData[key] === 'string' ? `'${updateData[key]}'` : updateData[key]
|
||||
updateFields.push(`${key} = ${value}`)
|
||||
}
|
||||
})
|
||||
|
||||
if (updateFields.length === 0) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '没有要更新的字段'
|
||||
})
|
||||
}
|
||||
|
||||
const [result] = await sequelize.query(
|
||||
`UPDATE iot_jbq_client SET ${updateFields.join(', ')} WHERE id = ${id}`
|
||||
)
|
||||
|
||||
if (result.affectedRows === 0) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: '智能耳标设备不存在'
|
||||
})
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: { id: parseInt(id), ...updateData },
|
||||
message: '更新智能耳标设备成功'
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('更新智能耳标设备失败:', error)
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '更新智能耳标设备失败',
|
||||
error: error.message
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除智能耳标设备
|
||||
*/
|
||||
async deleteClient(req, res) {
|
||||
try {
|
||||
const { id } = req.params
|
||||
|
||||
const [result] = await sequelize.query('DELETE FROM iot_jbq_client WHERE id = ?', [id])
|
||||
|
||||
if (result.affectedRows === 0) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: '智能耳标设备不存在'
|
||||
})
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: '删除智能耳标设备成功'
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('删除智能耳标设备失败:', error)
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '删除智能耳标设备失败',
|
||||
error: error.message
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new IotJbqClientController()
|
||||
Reference in New Issue
Block a user