suyuan-breed/app/adminapi/controller/device/DeviceController.php

182 lines
5.4 KiB
PHP
Raw Normal View History

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()
{
2024-02-03 16:52:07 +08:00
$iccid = $this->request->param('iccid', '');
$deviceId = $this->request->param('deviceId', '');
2024-02-03 16:53:11 +08:00
if (!empty($deviceId)) {
2024-02-03 16:52:07 +08:00
// 判断设备编码是否被使用
$device = Device::where('code', $deviceId)->find();
if ($device) {
return $this->fail('设备编码已被使用');
}
2024-02-03 16:49:06 +08:00
}
2024-02-03 16:52:07 +08:00
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 = [];
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
}