lcly-data-admin/app/Http/Controllers/DeviceWarningController.php

70 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Helpers\Paginator;
use App\Http\Resources\DeviceWarningResource;
use App\Models\DeviceWarning;
use Illuminate\Http\Request;
use Peidikeji\Setting\Models\Setting;
class DeviceWarningController extends Controller
{
/**
* 预计规则
*
* @return void
*/
public function rules()
{
$settings = Setting::where('slug', 'like', 'device_warning_rule%')->get()->toArray();
return $this->json(array_map(function ($item) {
$_value = json_decode($item['value'], true);
return [
'name' => $item['name'],
'slug' => $item['slug'],
'value' => $_value,
];
}, $settings));
}
public function updateRule(Request $request)
{
$slug = $request->input(['slug']);
$ruleValue = $request->input(['value'], []);
$rule = Setting::where('slug', $slug)->first();
//获取提交的规则
if ($rule) {
$oldValue = json_decode($rule->value, true);
foreach ($oldValue as $key => $value) {
foreach ($value as $lv => $item) {
if (isset($ruleValue[$key][$lv])) {
$oldValue[$key][$lv] = $ruleValue[$key][$lv];
}
}
}
$rule->update([
'value' => json_encode($oldValue),
]);
}
return $this->success('更新成功');
}
/**
* 获取警报记录
*
* @return void
*/
public function warningLog(Request $request)
{
$query = DeviceWarning::filter($request->input())->orderBy('created_at', 'desc');
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
return $this->json(DeviceWarningResource::collection($list));
}
}