Files
2026-08-08 18:28:49 +08:00

103 lines
2.2 KiB
PHP

<?php
namespace app\models;
use core\base\Model;
/**
* 昂盛达设备模型
*/
class AsdDevice extends Model
{
protected $table = 'asd_device';
/**
* 获取 PDO 实例
*/
private function db()
{
return \core\db\Db::pdo();
}
/**
* 根据设备编码查找
*/
public function findByCode($device_code)
{
return $this->where(['device_code = :code'], [':code' => $device_code])->fetch();
}
/**
* 检查设备是否存在且启用
*/
public function isActive($device_code)
{
$device = $this->where([
'device_code = :code',
'status = 1'
], [':code' => $device_code])->fetch();
return $device ? $device : false;
}
/**
* 根据设备编码和组别校验
*/
public function validate($device_code, $group_name = '')
{
$conditions = ['device_code = :code', 'status = 1'];
$params = [':code' => $device_code];
if (!empty($group_name)) {
$conditions[] = 'group_name = :group';
$params[':group'] = $group_name;
}
return $this->where($conditions, $params)->fetch();
}
/**
* 获取所有启用设备
*/
public function getAllActive()
{
return $this->where(['status = 1'])->order(['group_name ASC', 'device_code ASC'])->fetchAll();
}
/**
* 添加设备
*/
public function addDevice($data)
{
return $this->add($data);
}
/**
* 更新设备
*/
public function updateDevice($id, $data)
{
return $this->where(['id = :id'], [':id' => $id])->update($data);
}
/**
* 根据 IP 查找设备
*/
public function findByIp($device_ip)
{
return $this->where(['device_ip = :ip'], [':ip' => $device_ip])->fetch();
}
/**
* 根据 ID 查找设备
*/
public function findById($id)
{
return $this->where(['id = :id'], [':id' => intval($id)])->fetch();
}
/**
* 获取全部设备(调试页用,含禁用设备)
*/
public function getAll()
{
return $this->order(['group_name ASC', 'device_code ASC'])->fetchAll();
}
}