2024-01-09 15:59:23 +08:00
|
|
|
|
<?php
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
|
|
|
|
// | 开源版本可自由商用,可去除界面版权logo
|
|
|
|
|
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
|
|
|
|
// | github下载:https://github.com/likeshop-github/likeadmin
|
|
|
|
|
// | 访问官网:https://www.likeadmin.cn
|
|
|
|
|
// | likeadmin团队 版权所有 拥有最终解释权
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | author: likeadminTeam
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace app\adminapi\controller\device;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
use app\adminapi\controller\BaseAdminController;
|
|
|
|
|
use app\adminapi\lists\device\DeviceLists;
|
|
|
|
|
use app\adminapi\logic\device\DeviceLogic;
|
|
|
|
|
use app\adminapi\validate\device\DeviceValidate;
|
2024-02-03 16:49:06 +08:00
|
|
|
|
use app\common\model\device\Device;
|
2024-01-29 14:03:07 +08:00
|
|
|
|
use app\common\service\ConfigService;
|
|
|
|
|
use app\common\service\storage\Driver as StorageDriver;
|
|
|
|
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
2024-01-25 16:25:46 +08:00
|
|
|
|
use Symfony\Component\HttpClient\HttpClient;
|
2024-01-29 14:03:07 +08:00
|
|
|
|
use think\facade\Db;
|
2024-01-09 15:59:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Device控制器
|
|
|
|
|
* Class DeviceController
|
|
|
|
|
* @package app\adminapi\controller\device
|
|
|
|
|
*/
|
|
|
|
|
class DeviceController extends BaseAdminController
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 获取列表
|
|
|
|
|
* @return \think\response\Json
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2023/11/24 15:30
|
|
|
|
|
*/
|
|
|
|
|
public function lists()
|
|
|
|
|
{
|
|
|
|
|
return $this->dataLists(new DeviceLists());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function datas()
|
|
|
|
|
{
|
|
|
|
|
$datas = (new DeviceLogic())->datas(input(''));
|
|
|
|
|
return $this->success('', $datas);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 添加
|
|
|
|
|
* @return \think\response\Json
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2023/11/24 15:30
|
|
|
|
|
*/
|
|
|
|
|
public function add()
|
|
|
|
|
{
|
|
|
|
|
$params = (new DeviceValidate())->post()->goCheck('add');
|
|
|
|
|
$result = DeviceLogic::add($params);
|
|
|
|
|
if (true === $result) {
|
|
|
|
|
return $this->success('添加成功', [], 1, 1);
|
|
|
|
|
}
|
|
|
|
|
return $this->fail(DeviceLogic::getError());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 编辑
|
|
|
|
|
* @return \think\response\Json
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2023/11/24 15:30
|
|
|
|
|
*/
|
|
|
|
|
public function edit()
|
|
|
|
|
{
|
|
|
|
|
$params = (new DeviceValidate())->post()->goCheck('edit');
|
|
|
|
|
$result = DeviceLogic::edit($params);
|
|
|
|
|
if (true === $result) {
|
|
|
|
|
return $this->success('编辑成功', [], 1, 1);
|
|
|
|
|
}
|
|
|
|
|
return $this->fail(DeviceLogic::getError());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 删除
|
|
|
|
|
* @return \think\response\Json
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2023/11/24 15:30
|
|
|
|
|
*/
|
|
|
|
|
public function delete()
|
|
|
|
|
{
|
|
|
|
|
$params = (new DeviceValidate())->post()->goCheck('delete');
|
|
|
|
|
DeviceLogic::delete($params);
|
|
|
|
|
return $this->success('删除成功', [], 1, 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 获取详情
|
|
|
|
|
* @return \think\response\Json
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2023/11/24 15:30
|
|
|
|
|
*/
|
|
|
|
|
public function detail()
|
|
|
|
|
{
|
|
|
|
|
$params = (new DeviceValidate())->goCheck('detail');
|
|
|
|
|
$result = DeviceLogic::detail($params);
|
|
|
|
|
return $this->data($result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 获取详情
|
|
|
|
|
* @return \think\response\Json
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2023/11/24 15:30
|
|
|
|
|
*/
|
|
|
|
|
public function monitorData()
|
|
|
|
|
{
|
|
|
|
|
$params = (new DeviceValidate())->goCheck('monitorData');
|
|
|
|
|
$result = DeviceLogic::monitorData($params);
|
|
|
|
|
return $this->data($result);
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-25 16:25:46 +08:00
|
|
|
|
|
|
|
|
|
public function queryDeviceIccid()
|
|
|
|
|
{
|
|
|
|
|
$iccid = $this->request->param('iccid', '');
|
|
|
|
|
$deviceId = $this->request->param('deviceId', '');
|
2024-02-03 16:49:06 +08:00
|
|
|
|
// 判断设备编码是否被使用
|
2024-02-03 16:49:36 +08:00
|
|
|
|
$device = Device::where('code', $deviceId)->find();
|
2024-02-03 16:49:06 +08:00
|
|
|
|
if ($device) {
|
|
|
|
|
return $this->fail('设备编码已被使用');
|
|
|
|
|
}
|
2024-02-03 16:45:24 +08:00
|
|
|
|
$requestResponse = HttpClient::create()->request('GET', env('PROJECT.MQTT_PROJECT_URL'). 'api/xumu/device/query', [
|
2024-01-25 16:25:46 +08:00
|
|
|
|
'query' => ["iccid"=>$iccid, "deviceId"=>$deviceId],
|
|
|
|
|
|
|
|
|
|
]);
|
|
|
|
|
$result = json_decode($requestResponse->getContent(), true);
|
|
|
|
|
$re = $result['data']['values'];
|
|
|
|
|
$datas = [];
|
2024-01-26 14:07:29 +08:00
|
|
|
|
if (!empty($re)) {
|
|
|
|
|
$iccidRow = $re[0];
|
|
|
|
|
$typeRow = $re[1];
|
|
|
|
|
$snRow = $re[2];
|
|
|
|
|
foreach ($iccidRow as $key => $value){
|
|
|
|
|
$datas[$key]['iccid'] = $value;
|
|
|
|
|
$datas[$key]['device_sn'] = $snRow[$key];
|
|
|
|
|
$datas[$key]['type'] = $typeRow[$key];
|
|
|
|
|
}
|
2024-01-25 16:25:46 +08:00
|
|
|
|
}
|
|
|
|
|
return $this->data($datas);
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-29 14:03:07 +08:00
|
|
|
|
public function importRfid()
|
|
|
|
|
{
|
|
|
|
|
$reader = IOFactory::createReader('Xls');
|
|
|
|
|
// 打开文件 载入excel表格
|
|
|
|
|
$spreadsheet = $reader->load($_FILES['file']['tmp_name']);
|
|
|
|
|
|
|
|
|
|
$excelData = $spreadsheet->getActiveSheet()->toArray();
|
|
|
|
|
array_shift($excelData); // 去除表头
|
|
|
|
|
$insertData = [];
|
|
|
|
|
foreach ($excelData as $key =>$row) {
|
|
|
|
|
$insertData[$key]['origin_rfid'] = $row[0];
|
|
|
|
|
$insertData[$key]['rfid'] = $row[1];
|
|
|
|
|
}
|
|
|
|
|
Db::name('animal_rfid')->insertAll($insertData);
|
|
|
|
|
|
|
|
|
|
return $this->success('导入成功');
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-09 15:59:23 +08:00
|
|
|
|
}
|