179 lines
5.3 KiB
PHP
179 lines
5.3 KiB
PHP
<?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;
|
||
use app\common\model\device\Device;
|
||
use app\common\service\ConfigService;
|
||
use app\common\service\storage\Driver as StorageDriver;
|
||
use PhpOffice\PhpSpreadsheet\IOFactory;
|
||
use Symfony\Component\HttpClient\HttpClient;
|
||
use think\facade\Db;
|
||
|
||
|
||
/**
|
||
* 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);
|
||
}
|
||
|
||
|
||
public function queryDeviceIccid()
|
||
{
|
||
$iccid = $this->request->param('iccid', '');
|
||
$deviceId = $this->request->param('deviceId', '');
|
||
// 判断设备编码是否被使用
|
||
$device = Device::where('sn', $deviceId)->find();
|
||
if ($device) {
|
||
return $this->fail('设备编码已被使用');
|
||
}
|
||
$requestResponse = HttpClient::create()->request('GET', env('PROJECT.MQTT_PROJECT_URL'). 'api/xumu/device/query', [
|
||
'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];
|
||
}
|
||
}
|
||
return $this->data($datas);
|
||
}
|
||
|
||
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('导入成功');
|
||
}
|
||
|
||
} |